uroboros Posted April 27, 2011 Share Posted April 27, 2011 Доброго времени суток!. Имеем Opensuse 11.4 1. #uname -a #Linux linux-kt7j.site 2.6.37.1-1.2-desktop #1 SMP PREEMPT 2011-02-21 10:34:10 +0100 i686 i686 i386 GNU/Linux 2. MOXA DE-311 нужно : подключить на сусе виртуальный COM порт компиляция: linux-kt7j:/tmp/moxa # ./mxinst =============================================================================== Copyright © 2002-2011 Moxa Inc. All Rights Reserved. MOXA NPort Server Real TTY Driver V1.17 Installation. System Imformation: Kernel 2.6.37.1-1.2-desktop; Machine i686. =============================================================================== There is an Real TTY Driver installed in your system. Continue to install will overwrite the old driver. Do you want to continue installing? [y/N]. y Tar files, please wait ... OK! Building driver... If you want to use secure communication with target, you might choose [y] to enable the SSL function. Note: This function support RealCOM with secure mode only. Do you want to enable secure function? [y/N]. N make -C /lib/modules/2.6.37.1-1.2-desktop/build SUBDIRS=/tmp/moxa modules make[1]: Entering directory `/usr/src/linux-2.6.37.1-1.2-obj/i386/desktop' make -C ../../../linux-2.6.37.1-1.2 O=/usr/src/linux-2.6.37.1-1.2-obj/i386/desktop/. modules Building modules, stage 2. MODPOST 1 modules make[1]: Leaving directory `/usr/src/linux-2.6.37.1-1.2-obj/i386/desktop' cp -p npreal2.ko /lib/modules/2.6.37.1-1.2-desktop/kernel/drivers/char/ depmod -a Check Driver... Copying driver files ... OK! Load driver... OK! Loading TTY Driver... Complete. =============================================================================== Installation process is completed. The all driver files are installed on /usr/lib/npreal2/driver. Now you can cd /usr/lib/npreal2/driver and run ./mxaddsvr to add tty port. =============================================================================== создание порта: linux-kt7j:/usr/lib/npreal2/driver # ./mxaddsvr 172.27.80.200 1 Adding Server... ttyr00, cur00 Added RealCom server: ip : 172.27.80.200 rm -f /dev/ttyr00 mknod -m 666 ttyr00 c 33 0 rm -f /dev/cur00 mknod -m 666 cur00 c 38 0 Complete. Процессы: linux-kt7j:/tmp/moxa # ps -A | grep npreal 1128 ? 00:00:00 npreal2d_redund 1130 ? 00:00:00 npreal2d Телнет работает нормально : linux-kt7j:/tmp/moxa # telnet 172.27.80.200 Trying 172.27.80.200... Connected to 172.27.80.200. Escape character is '^]'. Console terminal type (1: ansi/vt100, 2: vt52) : 1 Проблема : при попытке подключиться к порту из скрипта на Python-е linux-kt7j:/windows/F/po_diplom/Diplom # cat ./testcom_2.py import serial ser = serial.Serial('/dev/ttyr00', 115200, timeout=1) ser.write("hello") x = ser.read() # read one byte s = ser.read(10) # read up to ten bytes (timeout) line = ser.readline() # read a '\n' terminated line print "--- ",line ser.close() получаем следующее python ./testcom_2.py po_diplom/Diplom # Traceback (most recent call last): File "./testcom_2.py", line 2, in <module> ser = serial.Serial('/dev/ttyr00', 115200, timeout=1) File "/usr/local/lib/python2.7/site-packages/serial/serialutil.py", line 260, in __init__ self.open() File "/usr/local/lib/python2.7/site-packages/serial/serialposix.py", line 276, in open raise SerialException("could not open port %s: %s" % (self._port, msg)) serial.serialutil.SerialException: could not open port /dev/ttyr00: [Errno 5] Input/output error: '/dev/ttyr00' при этом тоже самое устройство отвечает на запросы из под Windows XP подобному python скрипту import serial ser = serial.Serial('COM5', 115200, timeout=1) ser.write("hello") x = ser.read() # read one byte s = ser.read(10) # read up to ten bytes (timeout) line = ser.readline() # read a '\n' terminated line print "--- ",line ser.close() и в том и в другом случае мониторинг сетевых пакетов показывает что MOXA принимает пакеты из сети и отвечает на них на 950,966 портах. Что я делаю не так? С Уважением Александр. Link to comment
Komantsev Posted April 29, 2011 Share Posted April 29, 2011 Добрый день! Сорри за поздний ответ. Пока общаемся с Тайванем насчет проблемы. Просто последний драйвер MOXA - на версию ядра Linux 2.6.36. У Вас же стоит 2.6.37. Пытаемся понять, какие возможны проблемы. Link to comment
AlexMad Posted May 3, 2011 Share Posted May 3, 2011 Добрый день! Сорри за поздний ответ. Пока общаемся с Тайванем насчет проблемы. Просто последний драйвер MOXA - на версию ядра Linux 2.6.36. У Вас же стоит 2.6.37. Пытаемся понять, какие возможны проблемы. С нетерпением ждем ответа Тайваньских товарищей. Ибо на ядре 2.6.38 такая же проблема: под виндой, даже виртуальной, порт работает, а в линуксе: Can't open COM-Port /dev/ttyr00 ! (Error: 5d (0x5)) Link to comment
uroboros Posted May 4, 2011 Author Share Posted May 4, 2011 Попробовал на OpenSuse 11.3 Linux 2.6.34-12-desktop - Поведение аналогичное , запустить не удалось . В дополнении попробовал открыть порт через setserial linux-8diq:/usr/lib/npreal2/driver # setserial -g /dev/ttyr00 /dev/ttyr00: Input/output error tcpdump сетевых пакетов показывает что MOXA принимает пакеты из сети и отвечает на них на 950,966 портах. Мониторинг пакетов на порту телнетом 0 отправлено 0 принято. Надеюсь помощь не опоздает , горит диплом . Link to comment
uroboros Posted May 4, 2011 Author Share Posted May 4, 2011 в логах вот что cat ./npreal2d.logb/npreal2/driver # 05-04-2011 11:58:40 MOXA Real TTY daemon program starting (Ver1.17 Build 11011413)... 05-04-2011 11:58:40 MOXA Real TTY daemon program starting (Ver1.17 Build 11011413)... 05-04-2011 11:59:47 Socket connect fail (172.27.80.200,TCP port 950) ! 05-04-2011 11:59:47 Socket connect fail (172.27.80.200,TCP port 950) ! огненная стена погашена linux-8diq:/usr/lib/npreal2/driver # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Link to comment
Komantsev Posted May 4, 2011 Share Posted May 4, 2011 Добрый день, А Telnet-соединения (без драйвера) на порты 950 и 966 идут? Что будет, если написать: telnet 172.27.80.200 950 telnet 172.27.80.200 966 Установятся соединения? Link to comment
uroboros Posted May 4, 2011 Author Share Posted May 4, 2011 Добрый день, Имеем такое поведение : linux-8diq:/home/danger # telnet 172.27.80.200 950 Trying 172.27.80.200... telnet: connect to address 172.27.80.200: Connection refused linux-8diq:/home/danger # telnet 172.27.80.200 966 Trying 172.27.80.200... Connected to 172.27.80.200. Escape character is '^]' Файерволл полностью отсутствует. пробовал с Windows на эти порты долгое время вижу просто черный экран и отлуп не дает и не пишет ничего просто мигающий курсор. Спасибо. Link to comment
Komantsev Posted May 4, 2011 Share Posted May 4, 2011 Ну надо тогда разбираться со связью. Почему из Windows у Вас идет соединение на порт 950, а из Linux - нет. Возможно, в настройках DE-311 во вкладке "Accessible IP" (вроде так она называется) у Вас прописан только IP-адрес Windows-машины? Тогда DE-311 не будет принимать соединения с других IP. Лучше список доступных IP оставлять пустым, тогда соединения будут возможны с любого компьютера (лучше это делать хотя бы на время отладки устройства). Link to comment
uroboros Posted May 5, 2011 Author Share Posted May 5, 2011 Ну надо тогда разбираться со связью. Почему из Windows у Вас идет соединение на порт 950, а из Linux - нет. Возможно, в настройках DE-311 во вкладке "Accessible IP" (вроде так она называется) у Вас прописан только IP-адрес Windows-машины? Тогда DE-311 не будет принимать соединения с других IP. Лучше список доступных IP оставлять пустым, тогда соединения будут возможны с любого компьютера (лучше это делать хотя бы на время отладки устройства). Не думаю что дело в связи, не думаю что можно назвать "соединением" когда из Windows на порты 950 и 966 долгое время вижу просто черный экран и отлуп не дает и не пишет ничего просто мигающий курсор в дос окне. Список разрешенных IP посмотрел , пробовал вписать туда свою подсеть , пробовал очистить его , пробовал внести IP своего хоста все это с применением, перезагрузкой МОХА и повторным подсоединением и проверкой установленных параметров - не помогло. И потом на ПК у меня установлено две ОС Suse 11.3 и Windows 7 IP адрес одинаковый (раздается DHCP по MAC-у) из Windows работает из Suse нет . Link to comment
uroboros Posted May 5, 2011 Author Share Posted May 5, 2011 удаленный последовательный порт открылся на OpenSuse 11.2 с ядром linux-w9g2:/tmp/moxa # uname -a Linux linux-w9g2 2.6.31.5-0.1-desktop #1 SMP PREEMPT 2009-10-26 15:49:03 +0100 i686 i686 i386 GNU/Linux драйвер: npreal2_1.17_Build_11011413.tgz полностью работа порта пока не проверена Link to comment
Komantsev Posted May 5, 2011 Share Posted May 5, 2011 На всякий случай: последний драйвер - во вложении. npreal2_1.17.1_Build_11050413.tgz Version.txt Link to comment
uroboros Posted May 5, 2011 Author Share Posted May 5, 2011 На всякий случай: последний драйвер - во вложении. Простите за не быстрый ответ. Устанавливал Suse 11.3 . Получены первые положительные результаты на ядре 2.6.34-12desktop (Через МОХА DE-311 опрашивается модуль i-7017 ICPDAS) питоновским скриптом. Драйвер МОХА последний высланный Вами npreal2_1.17.1_Build_11050413.tgz. БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО ЗА ПОМОЩЬ! Link to comment
AlexMad Posted May 5, 2011 Share Posted May 5, 2011 На всякий случай: последний драйвер - во вложении. Спасибо. С этим драйвером заработало. (ubuntu 11.04 ядро 2.6.38-8-generic) Link to comment
xjorge Posted August 15, 2011 Share Posted August 15, 2011 (edited) Здравствуйте! У меня проблемы с эксплуатацией драйвера на Ubuntu 11.04 (GNU/Linux 2.6.38-10-generic i686): ----------------------------------- 1) Не собрался проект. Для сборки драйвера пришлось внести изменения в исходный код файла npreal2.h: ............ #else #define DBGPRINT(level, fmt, args...) while (0) ; #endif // Scott: 2005-09-13 end #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) // вставлено (не уверен, правильно ли, нашёл в сети Интернет!) # ifndef init_MUTEX // вставлено # define init_MUTEX(_m) sema_init(_m,1); // вставлено # endif // вставлено #endif // вставлено #endif ------------------------------------------- 2) При попытке добавить сервер командой sudo ./mxaddsvr XXX.YYY.ZZZ.VVV 2 получается следующая картина: Adding Server... ttyr00, cur00 sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied ttyr01, cur01 sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied Added RealCom server: ip : XXX.YYY.ZZZ.VVV /bin/sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxrmnod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxmknod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxmknod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxmknod: Permission denied /bin/sh: /usr/lib/npreal2/driver/mxmknod: Permission denied System start/stop links for /etc/init.d/npreals already exist. Complete. Здесь XXX.YYY.ZZZ.VVV - статический IP адрес в локальной сети, прописанный в устройстве NPort 5232 * После некоторых танцев с бубном удалось понять, что необходимо дать права на выполнение всем запускаемым файлам chmod +x mxmknod chmod +x mxrmnod chmod +x killp Связь с устройством была установлена после настройки порта через веб-интерфейс! Надеюсь, что данный пост будет полезен тем, кто испытывает подобные проблемы. Edited August 15, 2011 by xjorge Link to comment
Komantsev Posted August 16, 2011 Share Posted August 16, 2011 Спасибо за информацию! Кстати, появился новый драйвер, поддерживает ядро до 2.6.39. На всякий случай выкладываю его. npreal2_1.17.3_Build_11060916.tgz Version.txt Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now