dados seriais através de ethernet em uma caixa linux

7

Eu estou tentando conectar um widget (192.168.1.214:20108) através de Ethernet (serial para Ethernet) para uma caixa Linux.

No Windows, usando um mapeamento de driver de dispositivo virtual, posso ver os dados seriais, portanto, sei que o widget serial para Ethernet está funcionando.

Agora, quando aponto para uma caixa do Linux, tudo que estou obtendo é uma tentativa de conexão quando uso o tcpdump:

21:00:07.322019 IP 192.168.1.214.20108 > development.local.8234: Flags [R], seq 4096, win 0, length 0

Portanto, os pacotes Ethernet estão passando, mas não consigo encontrar uma maneira de mapear os dados seriais (pela porta 8234 Ethernet) para um dispositivo. Muitas variações de socat não produzem nenhum dado na tela, por exemplo:

$ sudo socat readline TCP-LISTEN:8234,bind=127.0.0.1

ou tentando vinculá-lo a um dev:

$ socat -d -d -d tcp-l:127.0.0.1:8234,reuseaddr,fork file:/dev/tty0,nonblock,waitlock=/var/run/tty0.lock

isto dá uma saída de:

2013/11/11 21:19:41 socat[23757] I setting option "so-reuseaddr" to 1
2013/11/11 21:19:41 socat[23757] I setting option "fork" to 1
2013/11/11 21:19:41 socat[23757] I socket(2, 1, 6) -> 3
2013/11/11 21:19:41 socat[23757] I starting accept loop
2013/11/11 21:19:41 socat[23757] N listening on AF=2 0.0.0.0:8234

Eu estou completamente preso em como ler esses dados seriais através de Ethernet em uma caixa Linux.

    
por Craig Jones 12.11.2013 / 03:23

1 resposta

6

Olhando através do Stackoverflow, encontrei este Q & A intitulado: Convertendo dados da porta serial para TCP / IP em um ambiente Linux . Especificamente, uma das respostas a essa pergunta destacou duas ferramentas que parecem com o que você está procurando:

  • ser2net - Serial ao proxy de rede (ser2net)

    ser2net provides a way for a user to connect from a network connection to a serial port. I tried all the other ones I could find and found them lacking, so I wrote my own. It provides all the serial port setup, a configuration file to configure the ports, a control login for modifying port parameters, monitoring ports, and controlling ports.

  • remtty - remoto tty

    remtty (short for "remote tty") makes TCP connections available as pseudo ttys. It allows you to use access servers with direct access to the modems (such as Cisco NAS) as ordinary dial-out modems for faxing, sending sms or visiting BBS'. It offers functionality similar to Cisco's Dialout Utility, but on GNU/Linux instead of Windows.

Você também pode querer dar uma olhada nesta documentação que discute como usar socat , o que eu esperaria poder fazer exatamente o que você está tentando fazer.

trecho dessa página

- You have a host with some serial device like a modem or a bluetooth interface
(modem server)
- You want to make use of this device on a different host. (client)

1) on the modem server start a process that accepts network connections and
links them with the serial device /dev/tty0:

$ socat tcp-l:54321,reuseaddr,fork \
     file:/dev/tty0,nonblock,waitlock=/var/run/tty0.lock

2) on the client start a process that creates a pseudo tty and links it with a
tcp connection to the modem server:

$ socat pty,link=$HOME/dev/vmodem0,waitslave tcp:modem-server:54321

NETWORK CONNECTION

There a some choices if a simple TCPv4 connection does not meet your
requirements:
TCPv6: simply replace the "tcp-l" and "tcp" keywords with "tcp6-l" and "tcp6"
Socks: if a socks server protects the connection, you can replace the
"tcp:modem-server:54321" clause with something like
"socks:socks-server:modem-server:54321" or 
"socks:socks-server:modem-server:54321,socksport=1081,socksuser=nobody"

SECURITY

SSL
If you want to protect your server from misuse or your data from sniffing and
manipulation, use a SSL connection with client and server authentication
(currently only over TCPv4 without socks or proxy). 
See <a href="socat-openssl.txt">socat-openssl.txt</a> for instructions.

IP Addresses
!!! bind=...
!!! range=...
!!! lowport (for root)
!!! sourceport
!!! tcpwrap=

FULL FEATURES
$ socat -d -d ssl-l:54321,reuseaddr,cert=server.pem,cafile=client.crt,fork \
     file:/dev/tty0,nonblock,echo=0,raw,waitlock=/var/run/tty0.lock

TROUBLESHOOTING
-v -x
    
por 12.11.2013 / 04:08