- Saved searches
- Use saved searches to filter your results more quickly
- rchovan/npreal2
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- readme.md
- About
- Вики IT-KB
- Трансляция COM-порта с устройства Moxa Nport 5610 в виртуальную машину с Linux Debian 8 (Jessie)
- Настройка COM-порта на устройстве Moxa Nport
- Поиск и получение драйвера Moxa Nport для Linux
- Установка драйвера Moxa Nport на стороне Linux Debian
- Подключение портов Moxa Nport на стороне Linux Debian
- Проверяем доступность транслированного в Linux устройства
- Отключение портов и удаление драйвера Moxa Nport в Linux
- Обсуждение
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Moxa RealTTY Linux Driver
rchovan/npreal2
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
readme.md
due to lack of time and lot of issues I’ve stopped using MOXA TTY server. I’ve switched to USB-1Wire convertor. If you have issues, look at the AUR repository, it is still maintained, and you can apply patches manually.
This repositary contain several branches for different kernels. All patches are from AUR repository for npreal2 driver (https://aur.archlinux.org/packages/npreal2/) Please use branch "kernel_4.x.x" for kernel version 4.x Please use branch "kernel_5.x.x" for kernel version 5.x
About
Moxa RealTTY Linux Driver
Вики IT-KB
Трансляция 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).
К одному из COM-портов устройства (в нашем примере это будет порт 2) подключаем GSM-модем. В данном случае в качестве модема используется терминал Siemens TC35i Terminal.
Настройка COM-порта на устройстве Moxa Nport
Переходим в веб-консоль управления устройства Moxa NPort и в разделе Serial Settings > Port 2 настраиваем параметры порта в соответствии со спецификацией поддерживаемых режимов работы подключенного к порту устройства:
Затем переходим в раздел веб-консоли Operating Settings > Port 2 и устанавливаем режим работы порта как Real COM Mode
Далее переходим в раздел веб-консоли Accessible IP Settings, включаем опцию Enable the accessible IP list и в табличной части указываем IP-адресы хостов, которые могут подключаться к нашему устройству Moxa NPort для трансляции COM-портов по сети. То есть, в нашем случае, здесь указывается IP-адрес виртуального Linux-сервера, в который мы в дальнейшем будем подключать транслируемые COM-порты. Дополнительно о настройке данного ограничивающего доступ списка можно почитать в Moxa FAQ.
Внимание!
Если на устройстве опция Enable the accessible IP list ранее не была включена, то при её включении после нажатия кнопки Submit устройство Moxa NPort будет автоматически перезагружено.
Поиск и получение драйвера Moxa Nport для Linux
Все драйверы, которые должны устанавливаться в систему, принимающую по сети транслируемые COM-порты можно найти на официальном сайте Moxa в разделе Support. В частности для Linux-систем драйвер для нашей модели доступен по ссылке
На данный момент нам доступен старый драйвер: NPort Real TTY Driver for Linux — Edition 1.18 — Released on Mar 20, 2012
В заметках к драйверу, которые доступны по ссылке есть информация о том, что данная версия драйвера поддерживает ядро Linux Kernel до версии 3.1.0-7. В нашем же случае используется более новая версия ядра, установленная из официальных репозиториев Debian Jessie:
# uname -a Linux . SMP Debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 GNU/Linux
Сразу скажу, что драйвер со страницы загрузки у меня даже не установился. Поэтому пришлось воспользоваться более свежей версией драйвера, которую удалось обнаружить на форуме Moxa в ветке Установка Real TTY Driver в Debian. Действующая на данный момент ссылка на файл, опубликованная в этой ветке: npreal2_1.18.65_build_17062316.tgz
Установка драйвера Moxa Nport на стороне Linux Debian
Переходим на наш виртуальный сервер с Debian Jessie, и распаковываем в отдельный каталог загруженный по указанной ранее ссылке драйвер:
# mkdir MoxaNPort # cd MoxaNPort/ # tar zxf npreal2_1.18.65_build_17062316.tgz -C ~/MoxaNPort/
Ознакомится с документацией, поставляемой с драйвером можно в файле README.TXT в распакованном подкаталоге с драйвером:
# nano ~/MoxaNPort/moxa/README.TXT
В этом файле перечислены пакеты, которые могут потребоваться в системе для сборки и установки драйвера. Чтобы установить все сборочные зависимости выполним:
# apt-get install build-essential # apt-get install linux-headers-`uname -r`
Переходим в каталог с распакованным драйвером и запускаем скрипт установки с ключом m64 , так как в нашем случае используется 64-битная ОС Linux:
# cd ~/MoxaNPort/moxa/kernel3.x/ # ./mxinst m64
Вывод скрипта установки будет примерно таким:
=============================================================================== 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. ===============================================================================
После успешного окончания установки все инструменты управления драйвером мы можем найти в каталоге /usr/lib/npreal2/driver . В частности, нам могут быть полезны утилиты:
Обратите внимание на то, что в в последующем, в случае обновления ядра Linux, может потребоваться повторное выполнение утилиты mxinst, так как модуль ядра npreal2 может перестать загружаться.
Подключение портов Moxa Nport на стороне Linux Debian
Итак, давайте подключим COM-порт c устройства Nport с помощью утилиты mxaddsvr, передав ей в качестве параметра IP адрес устройства и количество портов, которые мы хотим создать в системе
# /usr/lib/npreal2/driver/mxaddsvr 10.1.2.254 8
Вывод должен быть примерно таким:
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.
В результате в нашей 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
# dmesg | grep MOXA . MOXA Async/NPort server family Real TTY driver ttymajor 33 calloutmajor 38 verbose 0 (Ver1.18.65)
Если драйвер по какой-то причине на попал в загрузку, смотрим о способах решения данной проблемы в README.TXT
Проверяем доступность транслированного в Linux устройства
Проверяем доступность подключенного через Nport и транслируемого в нашу систему GSM-модема. Для этого установим утилиту screen:
Должен открыться новый пустой экран консольной сессии с модемом. Набираем команду получения информации о модеме
В ответ мы должны получить от модема его модель. Например, в нашем случае ответ выглядит так:
SIEMENS MC35i REVISION 02.00 OK
Если ответ получен, значит желаемый результат нами достигнут.
Завершаем screen сессию клавишами «Ctrl+a» затем «\»
Внизу экрана появится вопрос
Really quit and kill all your windows [y/n]
Жмём «y». Сессия screen будет завершена и соединение с модемом на порту /dev/ttyr0 будет завершено.
Отключение портов и удаление драйвера Moxa Nport в Linux
Как удалить подключение к устройству Moxa Nport:
# /usr/lib/npreal2/driver/mxdelsvr 10.1.2.254
Как удалить драйвер Moxa NPort:
# /usr/lib/npreal2/driver/mxuninst
Проверено на следующих конфигурациях:
Версия Moxa NPort Firmware | Версия ОС Linux | Версия драйвера Real TTY |
---|---|---|
3.8 Build 17030709 | Linux Debian 8.6 (Jessie) Kernel 3.16.0-4-amd64 | 1.18.65 |
Автор первичной редакции:
Алексей Максимов
Время публикации: 15.09.2017 11:08
Обсуждение
Спасибо за отличную статью.
Пока не понятна проблема таймаута сети, при опросе модема по команде ATI (332 OK) 🙁
moxa/forwarding-physical-com-port-from-moxa-nport-5610-to-virtual-machine-with-linux-debian-8-jessie.txt · Последнее изменение: 26.01.2019 19:36 — Алексей Максимов