Ser2Net настройка: Конвертируем rs-485 в TCP-IP

Проброс COM-порта в гостевую ОС под управлением Citrix XenServer

Так сложилось что всё же Я решил настроить коммутируемый доступ на ноде сети ФИДОНЕТ да, конечно Dial-Up модем в 2014 году немного пошловато, но да и само ФИДО в наше время звучит как то странно, но мы же интузиасты, и не забываем традиций. Пусть с 2:5064/54 хоть линк будет ночами по модему, настольгия по романтичному шуму и писку коннекта ))

Нашёл Я свой старенький Dial-Up модем Acorp emsf2 c COM интерфейсом, запитал его, поставил планку COM порта на сервер и подключил к материнской плате. Сама нода у меня работает под управлением Debian Linux wheezy, развернутой в роли гостевой ОС на сервере виртуализации. В качестве гипервизора для виртуалицации используется Citrix XenServer 6.2. Понятно что нужно каким то образом пробросить COM порт в виртуальную машину, но к сожалениюю Citrix XenServer этого не умеет. С часик гугления привели к тому выводу что нормальных решений нет, и единствееное возможно рабочее решение это проброс COM порта через сеть в гостевую ОС.

Выбор пал на утилиту ser2net.
Поключаемся по ssh к нашему Хост-серверу Citrix Xenserver и поехали:
Ну что ж, собираем, для начала нам нужно вклчить репозитории дабы скачать необходимые для компиляции утилиты, для этого переходим в директорию /etc/yum.repos.d

#cd /etc/yum.repos.d

и редактируем /etc/yum.repod.s/CentOs-Base.repo

#vi /etc/yum.repod.s/CentOs-Base.repo

Далее в каждом необходимом репозитории выставляем enabled=1

«сейвимся» и выходим командой :wq

Сначала надо исталлировать gcc, make и automake на ваш xenserver:

#yum install gcc make automake

Далее надо скачать, скомпилировать и инсталлировать ser2net из проекта sourceforge http://sourceforge.net/projects/ser2net/

#cd /usr/local/src
#yum install wget
#wgеt http://sourceforge.net/projects/ser2net/files/latest/download?source=files
#tar -xzf ser2net*.tar.gz
#cd ser2net*
#./configure

#make
#make install
#cp ./ser2net.conf /etc
#cd /etc

Но при сборке пакета у меня вылезли ошибки и мне не хотелось в них разбираться, Я решил скачать ser2net с репозитория, но в стандартных нужного пакета не оказалось

Подключаем epel репозиторий
#rpm -Uvh http://dl. fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

и устанавливаем ser2net
#yum install ser2net

Для начала узнаем имя нашего COM порта
#dmesg | grep tty

Выводом команды был результат

[   22.465635] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[   22.469919] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

Как видим наш порт ttyS0.
Кстати проверим, определяется ли нормально системой наш модем. Для этого есть неплохая утилита minicom, устанавливаем её с репозитория:

#yum install minicom
Первый шаг в применении minicom — создание глобального конфигурационного файла. Для этого надо запустить minicom с флажком -s, войдя в систему как корневой пользователь

# minicom -s По этой команде происходит запуск конфигурационной среды minicom
Перемещение по меню осуществляется при помощи клавиш со стрелками вверх и вниз, выбор позиции меню — нажатием Enter.
Наиболее важные параметры скрываются за командой меню Serial Port Setup (Установка последовательного порта) в диалоговом окне Serial Port Setup
Чтобы изменить какое-либо значение, нажмите клавишу с соответствующей буквой. Прежде всего необходимо установить последовательное устройство, нажав клавишу «A» (Serial Device) и указав подходящий файл устройства. В моём случае это /dev/ ttyS0.
Если последовательный порт уже подсоединен к /dev/modem, можно проверить его связи с помощью команды ls -i /dev/modem. Если будет отображено подсоединение к определенному последовательному порту, то никакие изменения не нужны.

Необходимо также конфигурировать параметр Е (bps/Par/bits — Скорость/Четность/Стоп-биты) в соответствии с требованиями модема и системы, к которой предстоит подключаться. Для нас это пока не столь критично.

ля параметра Speed (Скорость) выбераем значение, равное максимальной скорости модема при сжатии данных. Как правило, это значение в четыре раза превышает его номинальную скорость. Для нашего модема со скоростью 56 Кбит/с устанавливается 115 200 бит/с или 230 400 бит/с (если доступно).
Как правило, в современных системах бит четности не используется, используется 8 битов данных и один столовый бит (вариант Q).
Этой информации должно быть достаточно для тестирования модема. Сохраняем модифицированный набор параметров как конфигурацию по умолчанию, выполнив команду меню Save Setup as Dfl (Сохранить параметры как Dfl). Выполнив команду меню Exit (Выход), завершаем работу конфигурационной процедуры и продолжаем работу в окне эмулятора терминала minicom с установленными параметрами.

AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK

Сообщение «ОК» в окне свидетельствует о нормальной работе модема. Чтобы убедиться в этом еще раз, введите AT и нажмите Enter. Ответом должно быть сообщение «OK»
AT OK
попробуем набрать номер и соединиться с удаленной системой.
ATDT1234567

В моем случае
NO DIALTONE

Так как модем пока не подключен к телефонной линии.

На этос с модемом пока закончим и продолжим решать вопрос с пробросом.

редактируем конфигурационный файл /etc/ser2net.conf
#nano /etc/ser2net.conf

Так выглядит фаил настроек до внесения изменений:

/etc/ser2net.conf:
# Банер — эта строчка выдается в TCP порт клиенту при подключении и может содержать порт, скорость
# работы с текущим портом и имя устройства в системе. Вывод банера актуален скорее для telnet метода
# подключения к порту, нам он не нужен. Можно закоментировать строчку, чтоб не мазолила глаз.
BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n
# Параметры для подключения к портам /dev/ttyS0 и /dev/ttyS1
# Конфиг ниже имеет следующий формат:
# TCP port : state : timeout : device : options (option1 option2 — через пробел)
# TCP port — тут все ясно, это порт который будет слушать наш сервер.
# State — может принимать значение raw или rawlp или же telnet. Так же может быть off.
# Timeout — время ( в секундах ) по истечении которого клиент будет
# отсоединен при неактивности.

Значение 0 отключает функцию.
# Device — тот самый девайс который хотим «вывесить» наружу. Пишем тут нечто похожее на:
# /dev/ttyS0 или /dev/ttyUSB0
# Options — устанавливает дополнительные параметры работы с портом. Все параметры приводить не буду
# в конфиге все прекрасно изложено.
# Настройки по-умолчанию:
2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2001:telnet:600:/dev/ttyS1:9600 8DATABITS NONE 1STOPBIT banner
3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner
# Как мы можем видеть, тут настроены 2 физических COM-порта
# И 4 типа подключения к ним на разных скоростях и портах соответственно.

А так настройки выглядят у меня

/etc/ser2net.conf:
2222:raw:0:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL

В нашем случае тип связи с портом будет RAW. Таймаут 0. Скорость необходимая моему устройству 9600.

Четность не проверять. Стоп бит один. Биты данных 8-ми битные. XON/XOFF выключено. Аппаратное управление потоком выключено. Мониторинг модемных линий DTR — как я понял. Конфиг маленький, при возникновении проблем смотрим в syslog.
После внесения необходимых изменений сохраняем фаил настроек и перезагружаем демона:

#sudo service ser2net restart
проверяем статус демона
#service ser2net status
OK

демон запущен, проверим доступен ли 2222 порт на с гостевой системы
для начала опустим фаервол чтобы пока не мешался #service iptables stop
и нмапим айпи нашего хост сервера c виртуальной машины:

#nmap host_ip
root@mail:/home/uzver# nmap 192.168.X.X

Starting Nmap 6.00 ( http://nmap.org ) at 2014-11-06 12:20 MSK
Nmap scan report for 192.168.2.230
Host is up (0.00094s latency).
Not shown: 996 closed ports

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
2222/tcp open EtherNet/IP-1
MAC Address: 00:05:5D:71:55:38 (D-Link Systems)

Отлично, порт в сеть пробрасывается, теперь нам нужно с эмулировать виртуальный серийный порт, и предать на него этот сетевой поток.
К сожалению клиентов для подобных решений оказалось множество под Windows, но в случае с клиентской ОС Linux дела обстоят плохо, ещё час гугления привёл в сторону утилиты socat, она к тому же оказалась в стандартных репозиториях дебиана.
Долго разбирался с ключами, решение примерно следующее

#socat pty,link=/dev/virtualcom0,raw tcp:192.168.xxx.xxx

Но с настройкой клиентской части Я продолжу завтра, так как сегодня есть ещё другие дела, к тому же сегодня играем в мафию, и если получиться то и в сопротивление. Всем добра. )))

Проброс последовательного порта по сети в Linux (serial over ip)

Ссылки


Общая информация

  • COM port redirector
  • Converting serial port data to TCP/IP in a linux environment

socat

  • HowTo: Virtual Serial Ports on Linux using socat, and more
  • EXAMPLE FOR REMOTE TTY (TTY OVER TCP) USING SOCAT

RFC 2217

  • Serial port redirection
  • Make RS232 Serial Devices Accessible via Ethernet
  • Как пробросить последовательный порт по сети
  • Using Cyclades-Serial-Client with NetModem Server

 

Входные данные

Есть два хоста:

  • server: компьютер, на котором есть терминал (последовательный порт) /dev/ttyS0
  • client: компьютер, на котором нужно иметь доступ к этому порту

Данные, переданные с клиента, должны быть переданы через сервер тому, кто подключен с другой стороны порта.

Для тестирования можно с помощью qemu создать виртуальную машину с портом RS-232, другой конец которого будет присоединен к символьному устройству на хосте.

 

Способ 1: socat

Самый простой способ – использовать socat. С его помощью можно соединить последовательное устройство и сокет.
На server создаем сокет на tcp-порту 12345, привязанный к /dev/ttyS0:

server$ socat tcp-l:12345 /dev/ttyS0

На client создаем виртуальный терминал в /dev/pts/N и привязываем его к сокету server:12345:

client$ socat tcp:server:12345 pty,raw,echo=0

При такой схеме передаются данные, но не управляющая информация. Настройка виртуального терминала на хосте client никак не отражается на реальном терминале на хосте server. Это значит, что приложения, которые используют ioctl(2) или termios(3), не будут работать так, как ожидается.

Аналогичные решения:

  • remtty
  • remserial
  • conserver

 

Способ 2: RFC 2217

Более сложный способ – использовать RFC 2217 для удаленного управления терминалом. Это расширение telnet, которое описывает передачу управляющей информации для последовательного порта.

 
Сервер


  • sercd
    sercd – еще одна реализация. Он основан на sredird.
 
Клиент


  • cyclades-serial-client


    Версия из Debian Squeeze у меня не заработала, я собирал из SVN.


    cyclades-serial-client – клиент для сервера RFC 2217. Он работает с помощью трюка с LD_PRELOAD.

    Для каждого удаленного терминала создается:

    1. Виртуальный терминал /dev/pts/N.
    2. Символическая ссылка на него /dev/NAME.
    3. Локальный сокет /dev/NAME.control

    Затем пользователь с помощью LD_PRELOAD может заставить приложение, использующее терминал /dev/NAME, перенаправлять вызовы ioctl(2) и tcsetattr(3) в сокет /dev/NAME. control, откуда они будут прочитаны демоном cyclades-ser-cli и отправлены в удаленный терминал.

    Настраиваем конфиг клиента /etc/cyclades-devices (без этого не будет работать трюк с LD_PRELOAD):

    /dev/mytty:prts:SERVER_IP:0:rfc2217:
    
    Запускаем демон, обслуживающий виртуальный терминал:
    client$ cyclades-ser-cli -d 3 -m 1 -x /dev/mytty SERVER_IP 0
    
    Можно также запускать демон с помощью cyclades-serial-client.
    Проверяем передачу данных:
    client$ echo hello > /dev/mytty
    
    Cообщение hello должен получить тот, кто подключен к порту /dev/ttyS0 на хосте server.
    Проверяем настройку baud rate:
    client$ export LD_PRELOAD=/usr/lib/libcyclades-ser-cli.so
    client$ stty -F /dev/mytty 38400
    
    На хосте server у терминала /dev/ttyS0 должно обновиться значение:
    server$ stty -F /dev/ttyS0
    speed 38400 baud; . ...
    
    У меня этот клиент работает с сервером sredird, но не работает с ser2net.

    Другие проблемы:

    • Не все параметры ioctl() реализованы.
    • Подход с использованием LD_PRELOAD для ioctl() и tcgetattr() работает не для всех приложений. У меня так и не заработала команда setserial(8).

 
TTYredirector

TTYredirector реализует сервер и клиент RFC 2217, создавая на клиенте виртуальный терминал. Автоматического перенаправления управляющих команд с локального терминала на удаленный нет, его нужно настраивать вручную с помощью специальной утилиты, так что это решение подвержено тем же проблемам, что способ в socat.

 

Способ 3: Serial to Ethernet Converter

Serial to Ethernet Converter – устройство, преобразующее RS-232 (и/или другие протоколы) в Ethernet и обратно.

Есть как минимум два производителя, поставляющие вместе со своими преобразователями драйвер для Linux, который создает виртуальный COM-порт и перенаправляет все запросы к нему в сеть:

  • Tibbo VSPDL (Virtual Serial Port Driver for LINUX)
  • Perle TruePort

Как построить последовательный консольный сервер Raspberry Pi с ser2net — ИТ-блог Джастина передачи с помощью последовательного кабеля к компьютеру во время работы на нем. Как весело было?!?

Недавно друг начал готовиться к экзамену CCNA, и я начал думать, что должен быть способ использовать Raspberry Pi для подключения портов консоли к сети. Конечно, вы можете войти в pi, а затем запустить telnet из pi, но что, если я не хочу входить в систему? Конечно же, есть проект под названием ser2net, который делает именно это. Поэтому я заказал многопортовый последовательный адаптер и откопал старый Pi2 B+, чтобы это произошло!

Аппаратное обеспечение

Вы, вероятно, можете использовать любую модель Raspberry Pi, если она имеет порты USB, у меня был Raspberry Pi 2 B+, поэтому я использую его. (Не забудьте также блок питания и чехол.)

Вам также понадобится адаптер USB-последовательный порт. Я выбрал 4-портовую модель UGREEN, которая довольно дешевая. Вы также можете использовать один или несколько адаптеров с одним портом, но имейте в виду ограниченный бюджет питания USB Pi.

Настройка моего оборудования

Наконец, вам потребуются кабели консоли Cisco, последовательные кабели EMC или любые другие кабели, необходимые для вашего устройства.

Программное обеспечение

Я использую Raspbian, в основном прямо из коробки. На самом деле нам нужно добавить только одну часть программного обеспечения, чтобы этот проект заработал.

Чтобы обновить Pi и установить ser2net, используйте следующие команды:

 sudo apt update
sudo подходящее обновление -y
sudo apt install ser2net -y 

Обнаружение последовательного порта

Прежде чем мы сможем настроить ser2net, нам нужно выяснить, где прослушиваются наши последовательные адаптеры. Обычно последовательные порты — это /dev/ttyS0 или ttyS1, но поскольку мы используем USB-адаптеры, они могут отображаться как /dev/ttyUSB0 и ttyUSB1 и т. д.

Используйте эту команду для поиска:

 dmesg | grep tty 

Вы увидите что-то вроде этого:

обнаружил USB-последовательные порты

Как видите, у меня подключен 4-портовый адаптер, а также мой последовательный кабель Adafruit USB-TTL. С помощью этой информации мы можем настроить наш файл ser2net.conf.

Конфигурация

Когда вы устанавливаете ser2net через apt, он помещает файл конфигурации в /etc. Чтобы отредактировать его, вы можете использовать nano, который уже есть на вашем Pi.

 sudo nano /etc/ser2net.conf 

Внутри вы найдете несколько строк конфигурации по умолчанию в нижней части файла конфигурации. Мы можем легко изменить их в соответствии с нашими потребностями.

Для моего 4-портового последовательного адаптера, подходящего к маршрутизаторам и коммутаторам Cisco (которые используют последовательные параметры 9600 8N1), мой файл выглядит следующим образом.

 3000:telnet:600:/dev/ttyUSB0:9600 8DATABITS НЕТ 1STOPBIT баннер
3001:telnet:600:/dev/ttyUSB1:9600 8DATABITS НЕТ 1STOPBIT баннер
3002:telnet:600:/dev/ttyUSB2:9600 8DATABITS NONE 1STOPBIT баннер
3004:telnet:600:/dev/ttyUSB3:9600 8DATABITS NONE 1STOPBIT banner 

Вот скриншот (обратите внимание, что ttyUSB4 — это мой адаптер adafruit. raspberry pi на указанных портах. Эти сеансы telnet будут перенаправлены на наши последовательные порты. ttyUSB0!

Заключение

Вы можете использовать эту настройку для всего, что имеет последовательное соединение. Серверы IPMI, маршрутизаторы, коммутаторы, ПЛК и т. д. и т. д.…

Единственный замеченный мной недостаток, который не имеет большого значения в лаборатории, заключается в отсутствии аутентификации. Таким образом, любой, кто знает параметры подключения (порт IP-адреса telnet), будет иметь доступ к прослушиванию последовательного устройства.

Если вас беспокоит безопасность, я бы просто пропустил программу ser2net, подключился к pi по ssh и запустил screen или cu напрямую в /dev/ttyUSB0 или что-то в этом роде.

Счастливого домашнего обучения!

Нравится:

Нравится Загрузка…

ser2net(8): Серийный сетевой прокси

Имя

ser2net — Серийный сетевой прокси

Краткий обзор

ser2net [-c configfile] [-C configline] [-p controlport] [-n] [-d] [-b] [-v] [-P pidfile]

Описание

Демон ser2net позволяет устанавливать сеансы telnet и tcp с серийным номером устройства. порты.

Программа нормально запускается как демон, открывает порты TCP, указанные в файле конфигурации, и ожидает соединений. Как только происходит соединение, программа пытается установить соединение и открыть последовательный порт. Если другой пользователь уже использует соединение или последовательный порт, в соединении будет отказано. с сообщением об ошибке.

Опции

-c файл конфигурации
Установите для файла конфигурации значение, отличное от значения по умолчанию /etc/ser2net.conf
-C конфигурационная строка
Обработка одной строки конфигурации. Это может быть указано несколько раз для нескольких строк. Это как строка в конфигурационном файле. Это отключает файл конфигурации по умолчанию, вы должны указать -c после последнего -C, чтобы он также читал файл конфигурации.
Не позволяет демону разветвляться и отсоединяться от управляющего терминала. Это полезно для запуска из init.
Аналогично -n, но также отправляет системные журналы на стандартный вывод. Это наиболее полезно для целей отладки.
-P pid-файл
Если указано, поместите идентификатор процесса (pid) ser2net в файл pid, заменив все, что было в этом файле ранее. pidfile не создается по умолчанию, вы необходимо указать это, чтобы создать его. Также обратите внимание, что это имя файла должно содержать полный путь, так как ser2net изменит каталог на «/», когда он станет демон. когда это
Если блокировка UUCP включена, это отключит использование блокировок UUCP.
Cisco IOS использует другой механизм для указания скорости передачи, чем механизм, описанный в RFC2217. Этот параметр устанавливает версию IOS для настройки скорости передачи данных. По умолчанию используется RFC2217.
Распечатывает версию программы и завершает работу.
-p порт управления
Включает порт управления и устанавливает порт TCP для прослушивания порта управления. Номер порта может иметь вид [хост,]порт, например 127.0.0.1,2000 или местный хост, 2000. Если это указано, он будет привязан только к IP-адресу, указанному для порта. В противном случае он будет привязан ко всем адресам на машине.

Если номер порта равен нулю, то это означает, что стандартный ввод/вывод будет использоваться только для ввода/вывода, и в конфиге должен быть указан только один порт. Таким образом, его можно использовать из inetd.

Порт управления

Порт управления предоставляет простой интерфейс для управления портами и просмотра их статус. Для этого у него есть следующие команды:

showport [<порт TCP>]
Показать информацию о порте. Если порт не указан, отображаются все порты.
showshortport [<порт TCP>]
Показать информацию о порте, каждый порт в одной строке. Если порт не указан, отображаются все порты. Это может привести к очень широкому выходу.
помощь
Показать краткий список и сводку команд.
выезд
Отключить от порта управления.
версия
Показать версию этой программы.
монитор <тип> <порт TCP>
Показать все входные данные для заданного порта на вызывающем порту управления. Одновременно может контролироваться только одно направление. Поле типа может быть tcp или термин и указывает, следует ли отслеживать данные через TCP-порт или через последовательный порт. Обратите внимание, что мониторинг данных лучше всего, если порт контроллера не может идти в ногу, данные будут молча удалены. Контроллер может контролировать только одну вещь, а порт может контролироваться только одним контроллером.
стопор монитора
Останов текущего монитора.
отключить <порт TCP>
Отключите TCP-соединение на порту.
setporttimeout <порт TCP> <время ожидания>
Установите количество времени в секундах, по истечении которого соединение порта будет отключено, если на порте не наблюдается никакой активности.
setportconfig <порт TCP> <конфигурация>
Установите конфигурацию порта, как в конфигурации устройства в /etc/ser2net.conf файл. Если указаны конфликтующие параметры, последний параметр будет быть использованным. Обратите внимание, что они не изменятся до тех пор, пока порт не будет отключен и снова подключен. Опции 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 устанавливают различные скорости передачи данных. ЧЕТНЫЕ, НЕЧЕТНЫЕ, НЕТ установить контроль четности. 1STOPBIT, 2STOPBITS устанавливает количество стоповых битов. 7БИТ ДАННЫХ, 8DATABITS устанавливает количество битов данных. [-]XONXOFF включает (- выключает) поддержку XON/XOFF. [-]RTSCTS включает (- выключает) аппаратное управление потоком. [-]LOCAL игнорирует (- проверяет) линии управления модемом (DCD, DTR и т.д.)
setportcontrol <порт TCP> <элементы управления>
Изменить элементы управления динамическим портом. Они не остаются между соединениями. Элементы управления: DTRHI, DTRLO Включает и выключает линию DTR. РТШИ, РЦЛО Включает и выключает линию RTS.
setportenable <порт TCP> <активное состояние>
Устанавливает рабочее состояние порта. Допустимые состояния: off , чтобы отключить TCP-порт, raw , чтобы позволить TCP-порту передавать все операции ввода-вывода как есть, rawlp , чтобы включить ввод порта TCP и вывод устройства без настройки termios, и telnet , чтобы включить порт TCP, запустите согласование telnet протокол на порту.

Конфигурация

Настройка осуществляется через файл /etc/ser2net.conf . Файл с другим имя или путь могут быть указаны с помощью 9Опция 0100 -c или отдельные строки конфигурации могут быть указаны с опцией -C . Этот файл состоит из одного или больше записей в следующем формате:

<порт TCP>:<состояние>:<время ожидания>:<устройство>:<опции>

или

БАННЕР:<название баннера>:<текст баннера>

или

TRACEFILE:<имя файла трассировки>:<файл трассировки>

Поля

TCP-порт
Имя или номер порта TCP/IP, с которого будут приниматься подключения для этого устройства. Номер порта может иметь вид [хост,]порт, например 127.0.0.1,2000 или местный хост, 2000. Если это указано, он будет привязан только к IP-адресу, указанному для порта. В противном случае он будет привязан ко всем портам на машине.
штат
Либо raw , либо rawlp , либо telnet или выкл. off отключает порт от приема соединений. Его можно включить позже из порт управления. raw включает порт и передает все данные как есть между портом и длинным. rawlp включает порт и передает все входные данные данные на устройство, устройство открыто без каких-либо настроек termios. Позволяет использовать устройства /dev/lpX и подключенные к ним принтеры. telnet включает порт и запускает протокол telnet на порту для настройки параметров telnet. Это наиболее полезно для использования telnet.
время ожидания
Время (в секундах), по истечении которого порт будет отключен, если на нем нет активности. Нулевое значение отключает эту функцию.
устройство
Имя устройства для подключения. Это должно быть в формате /dev/ .
варианты конфигурации устройства
Устанавливает рабочие параметры последовательного порта. Значения могут быть разделены пробелами или запятыми. Опции 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 устанавливают различные скорости передачи данных. ЧЕТНЫЕ, НЕЧЕТНЫЕ, НЕТ установить контроль четности. 1STOPBIT, 2STOPBITS устанавливает количество стоповых битов. 7БИТЫ ДАННЫХ, 8DATABITS устанавливает количество битов данных. [-]XONXOFF включает (- выключает) поддержку XON/XOFF. [-]RTSCTS включает (- выключает) аппаратное управление потоком. [-]LOCAL игнорирует (- проверяет) линии управления модемом (DCD, DTR и т.д.) [-]HANGUP_WHEN_DONE понижает (- не понижает) линии управления модемом (DCD, DTR и т. д.), когда соединение закрывается. NOBREAK Отключает автоматическую очистку настройки прерывания порта. remctl позволяет дистанционно управлять параметры последовательного порта через RFC 2217. См. README для получения дополнительной информации. <имя баннера > отображает данный баннер, когда пользователь подключается к порту.

tr= Когда порт открыт, открыть указанный файл трассировки и сохранить все данные, считанные с физического устройства (и, таким образом, записанные на TCP-порт пользователя) в файле. Фактическое имя файла указывается в директиве TRACEFILE. Если файл уже существует, он добавляется. Файл закрывается, когда порт закрыт.

tw= Аналогично tr, но отслеживает данные, записанные на устройство.

tb=<имя файла> трассировка как считанных, так и записанных данных в один и тот же файл. Обратите внимание, что это не зависит от tr и tw, так что вы можете отслеживать чтение, запись, и оба в разные файлы.

имя баннера
Название баннера; это может быть использовано в параметрах порта.
текст баннера
Текст для отображения в качестве баннера. Он использует escape-последовательности для замены строк, подробности см. в разделе «ФОРМАТИРОВАНИЕ ИМЯ ФАЙЛА И БАННЕРА».
имя файла трассировки
Имя файла трассировки, используется в параметрах порта tw, tr и tb.
файл трассировки
Файл для отправки трассировки. Обратите внимание, что для замены строк используются escape-последовательности, подробности см. в разделе «ФОРМАТИРОВАНИЕ ИМЯ ФАЙЛА И БАННЕРА». Примечание что при использовании escape-последовательностей времени время считывается один раз при запуске порта, поэтому, если вы используете как tw, так и tr, они будут иметь одинаковую дату и время.

Пустые строки и строки, начинающиеся с ‘#’, игнорируются.

Форматирование имени файла и баннера

Имена файлов и баннеры могут содержать обычные escape-последовательности «C»:

\a — звонок
\b — возврат
\f — перевод страницы
\n — новая строка
\r — возврат каретки
\t — вкладка
\v — вертикальная вкладка
\\ — \
\? — ?
\’ — ‘
\» — »
\nnn — восьмеричное значение для nnn
\xXX — шестнадцатеричное значение для XX

Они также могут содержать \d для имени устройства и \p для номера порта TCP.

Баннер может содержать \s для параметров последовательного порта (например, 9600N81) данного соединения.

Имя файла может также содержать следующие последовательности:

\Y -> год
\y -> день года (дни с 1 января)
\M -> месяц (январь, февраль, март и т. д.)
\m -> месяц (в виде числа)
\A -> день недели (пн, вт и т. д.)
\D -> день месяца
\e -> эпоха (секунды с 1 января 1970 г.)
\U -> микросекунды в текущей секунде
\p -> номер локального порта
\d -> имя локального устройства
\I -> удаленный IP-адрес (в формате точки)
\H -> час (в 24-часовом формате)
\h -> час (12- час время)
\i -> минуты
\s -> секунды
\q -> am/pm
\P -> AM/PM

Эти последовательности могут использоваться для того, чтобы сделать имя файла уникальным для каждого открытия и определить, какой порт/ устройство, для которого предназначено имя файла. Обратите внимание, что в именах файлов при использовании \d все до и включая последнее / в имени устройства удаляется, потому что у вас не может быть / в имени файла.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *