Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


moxa:forwarding-physical-com-port-from-moxa-nport-5610-to-virtual-machine-with-linux-debian-8-jessie

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
moxa:forwarding-physical-com-port-from-moxa-nport-5610-to-virtual-machine-with-linux-debian-8-jessie [15.09.2017 11:14] – создано Алексей Максимовmoxa:forwarding-physical-com-port-from-moxa-nport-5610-to-virtual-machine-with-linux-debian-8-jessie [26.01.2019 19:36] (текущий) – [Установка драйвера Moxa Nport на стороне Linux Debian] Алексей Максимов
Строка 1: Строка 1:
 ===== Трансляция COM-порта с устройства Moxa Nport 5610 в виртуальную машину с Linux Debian 8 (Jessie) ===== ===== Трансляция COM-порта с устройства Moxa Nport 5610 в виртуальную машину с Linux Debian 8 (Jessie) =====
 +
 +В этой статье описан пример того, как **GSM**-модем, подключенный к физическому **COM**-порту (**RS-232**) устройства **Moxa NPort** транслировать в виртуальную машину с гостевой ОС **Linux Debian 8 (Jessie)**. В данном примере используется устройство **Moxa NPort 5610 8-Port RS-232 Device Server** (с прошивкой версии **3.8 Build 17030709**).
 +
 +{{ :moxa:pasted:20170915-113830.png }} 
 +
 +К одному из **COM**-портов устройства (в нашем примере это будет порт **2**) подключаем **GSM**-модем. В данном случае в качестве модема используется терминал **Siemens TC35i Terminal**.
 +
 +{{ :moxa:pasted:20170915-113434.png }}
 +
 +\\
 +==== Настройка COM-порта на устройстве Moxa Nport ====
 +
 +Переходим в веб-консоль управления устройства **Moxa NPort** и в разделе **Serial Settings** > **Port 2** настраиваем параметры порта в соответствии со спецификацией поддерживаемых режимов работы подключенного к порту устройства:
 +
 +{{ :moxa:pasted:20170915-114207.png }}
 +
 +Затем переходим в раздел веб-консоли **Operating Settings** > **Port 2** и устанавливаем режим работы порта как **Real COM Mode**
 +
 +{{ :moxa:pasted:20170915-114456.png }}
 +
 +Далее переходим в раздел веб-консоли **Accessible IP Settings**, включаем опцию **Enable the accessible IP list** и в табличной части указываем IP-адресы хостов, которые могут подключаться к нашему устройству **Moxa NPort** для трансляции **COM**-портов по сети. То есть, в нашем случае, здесь указывается IP-адрес виртуального Linux-сервера, в который мы в дальнейшем будем подключать транслируемые **COM**-порты. Дополнительно о настройке данного ограничивающего доступ списка можно почитать в [[https://www.moxa.com/support/faq/faq_detail.aspx?id=257|Moxa FAQ]].
 + 
 + 
 +{{ :moxa:pasted:20170915-115055.png }}
 +
 +<WRAP center important 100%>
 +**Внимание**! \\
 +Если на устройстве опция **Enable the accessible IP list** ранее не была включена, то при её включении после нажатия кнопки **Submit** устройство **Moxa NPort** будет автоматически перезагружено.
 +</WRAP>
 +
 +\\
 +==== Поиск и получение драйвера Moxa Nport для Linux ====
 +
 +Все драйверы, которые должны устанавливаться в систему, принимающую по сети транслируемые **COM**-порты можно найти на официальном сайте Moxa в разделе **Support**. В частности для Linux-систем драйвер для нашей модели доступен [[https://www.moxa.com/support/sarch_result.aspx?type=soft&prod_id=57&type_id=9|по ссылке]]
 +
 +{{ :moxa:pasted:20170915-120247.png }}
 +
 +
 +На данный момент нам доступен старый драйвер:
 +**NPort Real TTY Driver for Linux  - Edition 1.18 - Released on Mar 20, 2012**
 +\\
 +В заметках к драйверу, которые доступны [[https://www.moxa.com/support/download.aspx?type=support&id=952
 +|по ссылке]] есть информация о том, что данная версия драйвера поддерживает ядро **Linux Kernel** до версии **3.1.0-7**. В нашем же случае используется более новая версия ядра, установленная из официальных репозиториев **Debian Jessie**:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># uname -a
 +
 +Linux ... SMP Debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 GNU/Linux</div></pre></HTML>
 +
 +Сразу скажу, что драйвер со страницы загрузки у меня даже не установился. Поэтому пришлось воспользоваться более свежей версией драйвера, которую удалось обнаружить на форуме Moxa в ветке [[https://www.moxa.ru/forum/index.php?/topic/25155-ustanovka-real-tty-driver-v-debian/|Установка Real TTY Driver в Debian]]. 
 +Действующая на данный момент ссылка на файл, опубликованная в этой ветке: [[https://www.moxa.ru/forum/index.php?app=core&module=attach&section=attach&attach_id=2107|npreal2_1.18.65_build_17062316.tgz]]
 +
 +\\
 +==== Установка драйвера Moxa Nport на стороне Linux Debian ====
 +
 +Переходим на наш виртуальный сервер с **Debian Jessie**, и распаковываем в отдельный каталог загруженный по указанной ранее ссылке драйвер:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># mkdir MoxaNPort
 +# cd MoxaNPort/
 +# tar zxf npreal2_1.18.65_build_17062316.tgz -C ~/MoxaNPort/</div></pre></HTML>
 +
 +Ознакомится с документацией, поставляемой с драйвером можно в файле ''README.TXT'' в распакованном подкаталоге с драйвером:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># nano ~/MoxaNPort/moxa/README.TXT</div></pre></HTML>
 +
 +В этом файле перечислены пакеты, которые могут потребоваться в системе для сборки и установки драйвера. Чтобы установить все сборочные зависимости выполним:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># apt-get install build-essential
 +# apt-get install linux-headers-`uname -r`</div></pre></HTML>
 +
 +Переходим в каталог с распакованным драйвером и запускаем скрипт установки с ключом ''m64'', так как в нашем случае используется 64-битная ОС Linux:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># cd ~/MoxaNPort/moxa/kernel3.x/
 +# ./mxinst m64</div></pre></HTML>
 +
 +Вывод скрипта установки будет примерно таким:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;">===============================================================================
 +Copyright (C) 2002-2015  Moxa Inc.
 +All Rights Reserved.
 +
 +MOXA NPort Server Real TTY Driver Ver1.18.65 Installation.
 +System Information: Kernel 3.16.0-4-amd64; Machine x86_64.
 +===============================================================================
 +
 +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/3.16.0-4-amd64/build SUBDIRS=/root/MoxaNPort/moxa/kernel3.x modules
 +make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
 +make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
 +  CC [M]  /root/MoxaNPort/moxa/kernel3.x/npreal2.o
 +/root/MoxaNPort/moxa/kernel3.x/npreal2.c: In function ‘npreal_net_write’:
 +/root/MoxaNPort/moxa/kernel3.x/npreal2.c:3674:16: warning: 
 +ignoring return value of ‘copy_from_user’, 
 +declared with attribute warn_unused_result [-Wunused-result]
 +  copy_from_user(k_buf, buf, count);
 +                ^
 +  Building modules, stage 2.
 +  MODPOST 1 modules
 +  CC      /root/MoxaNPort/moxa/kernel3.x/npreal2.mod.o
 +  LD [M]  /root/MoxaNPort/moxa/kernel3.x/npreal2.ko
 +make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
 +cp -p npreal2.ko /lib/modules/3.16.0-4-amd64/kernel/drivers/char/
 +depmod -a
 +cc   -c npreal2d.c
 +cc npreal2d.o -o npreal2d
 +strip   npreal2d
 +cc   -c redund_main.c
 +cc   -c redund.c
 +cc      redund_main.o redund.o -lpthread -o npreal2d_redund
 +strip   npreal2d_redund
 +cc   -o mxaddsvr mxaddsvr.c
 +strip mxaddsvr
 +cc   -o mxdelsvr mxdelsvr.c
 +strip mxdelsvr
 +cc   -o mxcfmat mxcfmat.c
 +strip mxcfmat
 +cc   -o mxloadsvr mxloadsvr.c
 +strip mxloadsvr
 +cc   -o mxsetsec mxsetsec.c
 +strip mxsetsec
 +Check Driver...
 +Copying configurations files ... OK!
 +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.
 +===============================================================================</div></pre></HTML>
 +
 +После успешного окончания установки все инструменты управления драйвером мы можем найти в каталоге ''/usr/lib/npreal2/driver''. В частности, нам могут быть полезны утилиты:
 +
 +  * **mxaddsvr** (Add Server, map tty port)
 +  * **mxsetsec** (Set secure communication mode)
 +  * **mxdelsvr** (Delete Server, un-map tty port)
 +  * **mxloadsvr** (Reload Server)
 +  * **mxuninst** (Remove tty port and driver files)
 +
 +<WRAP center important 100%> Обратите внимание на то, что в в последующем, в случае обновления ядра Linux, может потребоваться повторное выполнение утилиты **mxinst**, так как модуль ядра **npreal2** может перестать загружаться. 
 +</WRAP>
 +
 +\\
 +==== Подключение портов Moxa Nport на стороне Linux Debian ====
 +
 +Итак, давайте подключим **COM**-порт c устройства **Nport** с помощью утилиты **mxaddsvr**, передав ей в качестве параметра IP адрес устройства и количество портов, которые мы хотим создать в системе
 + 
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># /usr/lib/npreal2/driver/mxaddsvr 10.1.2.254 8</div></pre></HTML>
 +
 +Вывод должен быть примерно таким:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;">Adding Server...
 +
 +ttyr00, cur00
 +ttyr01, cur01
 +ttyr02, cur02
 +ttyr03, cur03
 +ttyr04, cur04
 +ttyr05, cur05
 +ttyr06, cur06
 +ttyr07, cur07
 +Added RealCom server: ip : 10.1.2.254
 +
 +mknod -m 666 ttyr00 c 33 0
 +mknod -m 666 cur00 c 38 0
 +mknod -m 666 ttyr01 c 33 1
 +mknod -m 666 cur01 c 38 1
 +mknod -m 666 ttyr02 c 33 2
 +mknod -m 666 cur02 c 38 2
 +mknod -m 666 ttyr03 c 33 3
 +mknod -m 666 cur03 c 38 3
 +mknod -m 666 ttyr04 c 33 4
 +mknod -m 666 cur04 c 38 4
 +mknod -m 666 ttyr05 c 33 5
 +mknod -m 666 cur05 c 38 5
 +mknod -m 666 ttyr06 c 33 6
 +mknod -m 666 cur06 c 38 6
 +mknod -m 666 ttyr07 c 33 7
 +mknod -m 666 cur07 c 38 7
 +Complete.</div></pre></HTML>
 + 
 +В результате в нашей Linux-системе должно появится устройство ''/dev/ttyr01'', которое мы будем использовать в дальнейшем для обращения девайсу, подключенному к удалённому **COM**-порту. Конфигурация подключения к устройству **Moxa NPort** при этом будет записана в файл ''/usr/lib/npreal2/driver/npreal2d.cf''.Если вы захотите править этот файл вручную (внимательно читайте инструкции в ''README.TXT''), то после его правки для вступления изменений в силу нужно запускать утилиту ''/usr/lib/npreal2/driver/mxloadsvr''.
 +
 +Теперь нам остаётся убедиться в том, что добавленный в процессе установке драйвера скрипт инициализации ''/etc/init.d/npreals'' успешно отрабатывает в процессе перезагрузки системы. Перезагружаем наш Debian сервер и проверяем наличие информации о загруженном драйвере в **dmesg**
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># dmesg | grep MOXA
 +
 +... MOXA Async/NPort server family Real TTY driver 
 +ttymajor 33 calloutmajor 38 verbose 0 (Ver1.18.65)</div></pre></HTML>
 +
 +Если драйвер по какой-то причине на попал в загрузку, смотрим о способах решения данной проблемы в ''README.TXT''
 +
 +\\
 +==== Проверяем доступность транслированного в Linux устройства ====
 +
 +Проверяем доступность подключенного через Nport и транслируемого в нашу систему GSM-модема. Для этого установим утилиту **screen**:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># apt-get install screen -y</div></pre></HTML>
 +
 +Подключаемся к порту:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># screen /dev/ttyr01</div></pre></HTML>
 +
 +Должен открыться новый пустой экран консольной сессии с модемом. Набираем команду получения информации о модеме
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;">ATI</div></pre></HTML>
 +
 +В ответ мы должны получить от модема его модель. Например, в нашем случае ответ выглядит так:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;">SIEMENS
 +MC35i
 +REVISION 02.00
 +
 +OK</div></pre></HTML>
 +
 +Если ответ получен, значит желаемый результат нами достигнут.
 +
 +Завершаем screen сессию клавишами "**Ctrl**+**a**" затем "**\**"
 +
 +Внизу экрана появится вопрос
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;">Really quit and kill all your windows [y/n]</div></pre></HTML>
 +
 +Жмём "**y**". Сессия **screen** будет завершена и соединение с модемом на порту ''/dev/ttyr0'' будет завершено.
 +
 +\\
 +==== Отключение портов и удаление драйвера Moxa Nport в Linux ====
 +
 +Как удалить подключение к устройству Moxa Nport:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># /usr/lib/npreal2/driver/mxdelsvr 10.1.2.254</div></pre></HTML>
 +
 +Как удалить драйвер Moxa NPort:
 +
 +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># /usr/lib/npreal2/driver/mxuninst</div></pre></HTML>
 +
  
  
 ---- ----
 Проверено на следующих конфигурациях: Проверено на следующих конфигурациях:
-^ Версия ^ Версия ^ +^ Версия Moxa NPort Firmware ^ Версия ОС Linux ^ Версия драйвера Real TTY 
-|||+|3.8 Build 17030709|Linux Debian 8.6 (Jessie) Kernel 3.16.0-4-amd64|1.18.65|
  
 ---- ----
moxa/forwarding-physical-com-port-from-moxa-nport-5610-to-virtual-machine-with-linux-debian-8-jessie.txt · Последнее изменение: 26.01.2019 19:36 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki