serielle Daten über Ethernet auf einer Linux-Box

7

Ich versuche, ein Widget (192.168.1.214:20108) über Ethernet (seriell zu Ethernet) mit einer Linux-Box zu verbinden.

Unter Windows kann ich mithilfe einer Treiberzuordnung für virtuelle Geräte die seriellen Daten anzeigen, sodass ich weiß, dass das Widget Serial to Ethernet funktioniert.

Wenn ich jetzt auf eine Linux-Box zeige, bekomme ich nur einen Verbindungsversuch, wenn ich tcpdump verwende:

21: 00: 07.322019 IP 192.168.1.214.20108> development.local.8234: Flags [R], Seq. 4096, Win 0, Länge 0

Die Ethernet-Pakete werden also durchgestellt, aber ich kann keine Möglichkeit finden, die seriellen Daten (über Port 8234 Ethernet) einem Gerät zuzuordnen. Viele Variationen von socaterzeugen keine Daten auf dem Bildschirm, zum Beispiel:

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

oder versuchen, es an einen Entwickler zu binden:

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

Dies ergibt eine Ausgabe von:

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

Ich weiß nicht genau, wie ich diese seriellen Daten über Ethernet auf einer Linux-Box lesen soll.

Craig Jones
quelle

Antworten:

6

Beim Durchsuchen von Stackoverflow fand ich folgende Fragen und Antworten mit dem Titel: Konvertieren von Daten der seriellen Schnittstelle in TCP / IP in einer Linux-Umgebung . In einer der Antworten auf diese Frage wurden zwei Tools hervorgehoben, die genau so klingen, wie Sie es suchen:

  • ser2net - Seriell zum Netzwerkproxy (ser2net)

    Mit ser2net kann ein Benutzer eine Verbindung von einer Netzwerkverbindung zu einer seriellen Schnittstelle herstellen. Ich habe alle anderen ausprobiert, die ich finden konnte, und festgestellt, dass sie fehlen, also habe ich meine eigenen geschrieben. Es bietet die gesamte Einrichtung der seriellen Schnittstelle, eine Konfigurationsdatei zum Konfigurieren der Ports, eine Steueranmeldung zum Ändern von Portparametern, Überwachen von Ports und Steuern von Ports.

  • remtty - remote tty

    remtty (kurz für "remote tty") stellt TCP-Verbindungen als Pseudo-ttys zur Verfügung. Sie können Zugriffsserver mit direktem Zugriff auf die Modems (z. B. Cisco NAS) als normale DFÜ-Modems zum Faxen, Senden von SMS oder Besuchen von BBS verwenden. Es bietet ähnliche Funktionen wie das Dialout-Dienstprogramm von Cisco, jedoch unter GNU / Linux anstelle von Windows.

Vielleicht möchten Sie auch einen Blick auf diese Dokumentation werfen, in der die Verwendung erläutert wird. socatIch würde erwarten, dass Sie genau das tun können, was Sie versuchen.

Auszug dieser Seite

- 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
slm
quelle