Eu tenho a seguinte configuração:
Computador - > Programador - > Microcontrolador
E eu interface com o micro controlador através de um terminal serial. A localização do dispositivo é /dev/cu.usbmodem401311 e uma taxa de transmissão é especificada.
Agora, gostaria de mover o Microcontrolador para um local remoto e conectá-lo via USB a um Raspberry Pi. Então, agora eu preciso de um caminho para o Pi agir como uma ponte entre o terminal no meu computador e o programador. Eu preciso de um dispositivo "virtual" para me conectar, e os dados que normalmente fluiriam pelo meu cabo USB precisam ser roteados pela rede.
Eu sou capaz de usar o SSH no meu computador a partir do Pi e vice-versa, então pensei socat seria a ferramenta a ser usada para isso. Ele ainda dá o seguinte exemplo no manual:
socat PTY,link=$HOME/dev/vmodem0,rawer,wait-slave \
EXEC:'"ssh modemserver.us.org socat - /dev/ttyS0,nonblock,rawer"'
O que supostamente faz o que eu quero e torna uma "porta serial virtual" disponível em / dev / vmodem0. No entanto, estou tendo alguns problemas. Primeiro, não posso especificar um nome de dispositivo. Isso:
sudo socat PTY,link=/dev/vmodem0,rawer,wait-slave \
EXEC:'"ssh [email protected] socat - /dev/ttyACM0,nonblock,rawer"'
Me dá um strong:
socat[6608] E symlink("/dev/ttys002", "/dev/vmodem0"): Operation not permitted
Estou executando o OS X, então removi o link=...
para que ele descobrisse seu próprio nome. Em seguida, tive que adicionar um -t 10
porque o tempo limite antes de me permitir fornecer uma senha para a conta que estou acessando no pi do framboesa. Agora, este comando:
sudo socat -t 10 PTY,rawer,wait-slave EXEC:'"ssh [email protected] socat - /dev/ttyACM0,nonblock,rawer"'
Dá o seguinte:
socat[6613] E write(5, 0x7fccc0801800, 259): Input/output error
Existe uma maneira melhor de fazer isso, em vez de usar o SSH? A primeira resposta aqui sugere o uso de TCP, mas isso não está funcionando: Como posso configurar um" proxy USB "para / dev / ttyUSB0 pela rede?
Obrigado!
Tags networking tty terminal socat