Установите соединение socat через ssh для подключения к устройству через удаленный виртуальный COM-порт.

Я ищу комбинацию команд socat для установления соединения через ssh с удаленным виртуальным COM-портом, чтобы локальный виртуальный порт USB вел себя точно так же, как если бы устройство было подключено к локальному порту USB. Я уже пробовал следующие комбинации:

socat -v PTY,link=$HOME/ttyVirt,raw,echo=0,b9600 EXEC:'ssh [email protected] socat - /dev/ttyACM0,pty,raw,echo=0'
socat -v PTY,link=$HOME/ttyVirt,raw,echo=0,icanon=1,b9600,crlf EXEC:'ssh [email protected] socat - /dev/ttyACM0,pty,raw,icanon=1,echo=0,crlf'

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

Кто-нибудь знает, как установить такое «чистое» соединение виртуального COM-порта через ssh с помощью socat?


person El tornillo    schedule 05.11.2020    source источник


Ответы (1)


Насколько я знаю, socat не добавляет в поток никаких управляющих команд. Могу поспорить, что есть некоторые проблемы с синхронизацией (сетевое соединение добавляет много задержек, которые не очень хорошо обрабатываются многими последовательными протоколами).

Возможно, лучше использовать перенаправитель на основе RFC 2217 (который поддерживает больше последовательных вызовов API — например, изменение скорости и т. д.). Я тестировал только ser2net, которые работали достаточно хорошо.

Если вы настаиваете на использовании socat, постарайтесь максимально избегать использования стандартного ввода/вывода:

  • используйте stty для предварительной настройки порта (например, stty -F /dev/ttyACM0 9600 raw), а затем GOPEN:/dev/ttyACM0 в socat

  • рассмотрите возможность использования переадресации портов SSH вместо удаленного запуска socat через ssh. Затем используйте стандартные TCP4-LISTEN и TCP4 в socat

У меня была рабочая установка для этого сценария, но мои команды исчезли (я помню, что PTY использовалось для socat для выделения виртуального последовательного порта).

РЕДАКТИРОВАТЬ>

справочная страница Socat предлагает это (адаптировано для вашего случая ):

socat PTY,link=$HOME/ttyVirt,rawer,wait-slave EXEC:"ssh [email protected] socat - /dev/ttyACM0,nonblock,rawer"

Удачи!

person vlp    schedule 15.11.2020
comment
привет влп. Спасибо за Ваш ответ. ser2net решил мою проблему. - person El tornillo; 15.12.2020