Jump to content
Форум по продукции MOXA

DE-311 + Linux (OpenSuse 11.4)


Recommended Posts

Доброго времени суток!.

Имеем 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

Добрый день!

Сорри за поздний ответ. Пока общаемся с Тайванем насчет проблемы.

Просто последний драйвер MOXA - на версию ядра Linux 2.6.36. У Вас же стоит 2.6.37. Пытаемся понять, какие возможны проблемы.

Link to comment

Добрый день!

Сорри за поздний ответ. Пока общаемся с Тайванем насчет проблемы.

Просто последний драйвер MOXA - на версию ядра Linux 2.6.36. У Вас же стоит 2.6.37. Пытаемся понять, какие возможны проблемы.

С нетерпением ждем ответа Тайваньских товарищей. Ибо на ядре 2.6.38 такая же проблема: под виндой, даже виртуальной, порт работает, а в линуксе: Can't open COM-Port /dev/ttyr00 ! (Error: 5d (0x5))

Link to comment

Попробовал на 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

в логах вот что

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

Добрый день,

А Telnet-соединения (без драйвера) на порты 950 и 966 идут?

Что будет, если написать:

telnet 172.27.80.200 950
telnet 172.27.80.200 966

Установятся соединения?

Link to comment

Добрый день,

Имеем такое поведение :

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

Ну надо тогда разбираться со связью. Почему из Windows у Вас идет соединение на порт 950, а из Linux - нет.

Возможно, в настройках DE-311 во вкладке "Accessible IP" (вроде так она называется) у Вас прописан только IP-адрес Windows-машины? Тогда DE-311 не будет принимать соединения с других IP. Лучше список доступных IP оставлять пустым, тогда соединения будут возможны с любого компьютера (лучше это делать хотя бы на время отладки устройства).

Link to comment

Ну надо тогда разбираться со связью. Почему из 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

удаленный последовательный порт открылся на 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

На всякий случай: последний драйвер - во вложении.

Простите за не быстрый ответ. Устанавливал Suse 11.3 . Получены первые положительные результаты на ядре 2.6.34-12desktop

(Через МОХА DE-311 опрашивается модуль i-7017 ICPDAS) питоновским скриптом. Драйвер МОХА последний высланный Вами

npreal2_1.17.1_Build_11050413.tgz.

БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО ЗА ПОМОЩЬ!

Link to comment
  • 3 months later...

Здравствуйте!

У меня проблемы с эксплуатацией драйвера на 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 by xjorge
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...