Seriellen Schnittstelle auf IP-Adresse umbiegen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich bin Raspberry Neuling und habe mit Linux etc. auch noch kaum Erfahrung.
    Ich habe einen Receiver mit COM Schnittstelle, welchen ich mit einem WuT - Com Server über Netzwerk erreiche.
    Unter Windows läuft das bis heute problemlos.

    Den Pi (RP3) habe ich mit dem neusten Image "Jessie" aufgespielt und socat installiert.
    An der Stelle, an der ich die Schnittstelle zu meinem Receiver einstellen muss habe ich nun die Wahl zwischen ttyS0 und ttyAMA0.
    Auf der Seite von WuT habe ich folgenden Befehl gefunden:

    Code
    socat PTY,link=/dev/csTTY1,echo=0,wait-slave  TCP:10.40.21.18:8000,retry=5


    ich habe hier csTTY1 auf ttyS0 geändert....


    Ergebniss:
    Manchmal hängt sich die Konsole sogar auf (putty), ansonsten kommt folgender Fehler:


    Code
    2017/02/23 07:59:58 socat[1201] E connect(6, AF=2 10.40.21.18:8000, 16): Connection refused


    Kann mir jemand da weiterhelfen?
    Das ganze soll, wenn es denn mal funktioniert dauerhaft eingestellt sein. Wo und was muss ich da configurieren?

    Vielen Dank schon mal.

  • Hallo Lammi1988,

    was ist denn die Ausgabe von

    Code
    hostname -I

    auf Deinem Raspberry Pi?

    Ich vermute mal, das es da Probleme mit der genannten IP-Adresse gibt.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (23. Februar 2017 um 08:53)

  • Hallo Andreas,


    Code
    hostname -I

    auf Deinem Raspberry Pi?


    ergibt

    Code
    10.40.21.2 192.168.178.44


    Automatisch zusammengefügt:
    Hallo Fred0815,

    wenn ich ehrlich bin habe ich das nicht ganz verstanden.
    Ich habe jetzt zwar Bluetooth nach Anleitung deaktiviert.
    Aber irgendwie fehlt mir da die Einstellung, das der Pi bei Zuggriff auf ttyS0 oder von mir aus auch ttyAMA0 das wut-Modul mit der IP ... ansprechen soll.

    Einmal editiert, zuletzt von Lammi1988 (23. Februar 2017 um 11:13)

  • Hallo Lammi1988,

    was passiert, wenn Du auf dem Pi folgendes eingibst:

    Code
    ping 10.40.21.18

    eingibst?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • mit socat 'generierst' due ene serielle Schnitstelle auf dem Rechner, um sie mit den entsprechenden seriellen Befehlen abzufragen, wennd as Gerät nur über das Netzwerk erreichbar ist.

    Wichtig zu wissen wäre dazu die IP-Adresse des gerätes und der Port, auf dem es im Netzwerk lauscht.

    Hat das Gerät zum Beispiel die IP 192.168.1.222 und läaushct es auf den Port 12345, dann lautet der Befehl:

    Code
    /usr/bin/socat PTY,link=/dev/XPort1 TCP:192.168.1.222:12345

    Hiermit wird auf dem System der virtuellen Port /dev/XPort1 angelegt, der mit den ganz normalen Befehlen (abhängig davon, das das System am anderen Ende anbietet) abgefrat werden kann.

    Im Beispiel ist es ein XPort-System von Lantronics.

    (Mein Beispiel gilt für das c't Project Com2LAN
    https://www.heise.de/ct/artikel/c-t…ter-284121.html
    kann aber eigentlich für alle vergleichbaren Systeme, die man mit 'socat' ansprechen kann, verwendet werden. )

    Computer ..... grrrrrr


  • Hallo Lammi1988,

    was passiert, wenn Du auf dem Pi folgendes eingibst:

    Code
    ping 10.40.21.18

    eingibst?

    Beste Grüße

    Andreas

    Hallo Andreas,

    dann sagt mir der Pi:

    Code
    64 bytes from 10.40.21.18: icmp_seq=1 ttl=64 time=2.00 ms


    Automatisch zusammengefügt:

    Hallo Rasp-Berlin,

    genau das suche ich ja eigentlich.
    Ich habe folgendes eingetippt mit dem Ergebniss:

    Code
    pi@raspberrypi:~ $ sudo /usr/bin/socat PTY,link=/dev/XPort1 TCP:10.40.21.18:8000
    2017/02/23 22:00:03 socat[1516] E connect(7, AF=2 10.40.21.18:8000, 16): Connection refused
    pi@raspberrypi:~ $

    Das wut Modul (COM-Server) ist auch via ping erreichbar.
    Und wenn ich meinen Windowsrechner benutze (dort gibt es ein Tool von WuT in welchem ich einen COM Port zuweisen kann [dort muss ich auch IP und Port 8000 einstellen]) klappt die Kommunikation auch.
    Automatisch zusammengefügt:
    wenn ich den Befehl

    Code
    pi@raspberrypi:~ $ sudo /usr/bin/socat PTY,link=/dev/XPort1 TCP:10.40.21.18:8000


    nochmals eingebe, passiert jetz gar nichts mehr und ich komme nur noch mit Crtl C wieder in die Eingabeaufforderung. :(

    Einmal editiert, zuletzt von Lammi1988 (23. Februar 2017 um 22:49)

  • Also ich habe nochmal den Pi neu aufgesetzt.
    Socat instaliert und update + upgrade ausgeführt.

    dann den vom Hersteller (wut) empholenen Code eingegeben:
    socat PTY,link=/dev/csTTY1,echo=0,wait-slave TCP:10.40.21.18:8000,retry=5


    IP adresse passt!!

    Nach eingabe via Putty reagiert Putty nicht mehr. Nachdem ich "strg c" kann ich wieder die Eingabeaufforderung bedienen.

    Anbei mal den /dev Ordner nachdem der Befehl ausgeführt wurde.
    Ist doch bestimmt nicht richtig, das csTTY1 ein link ist oder?


  • Nach eingabe via Putty reagiert Putty nicht mehr.

    Das ist vermutlich normal, da dann im Vordergrund eben der socat-Prozess läuft. Mit Ctrl-C brichst Du den dann wieder ab. Immerhin gibt er keine Fehlermeldung aus. Du kannst hinter den Befehl ein "&" setzen, damit er im Hintergrund ausgeführt wird, oder Dich mit einer 2. Putty-Instanz zum Raspberry verbinden.

  • Ok, ich glaube es läuft jetzt.
    Vielen Dank.

    Noch eine Frage aber leider.
    Ich möchte das der virtuelle Port dauerhaft funktioniert (nach Systemstart).
    Wie und wo muss ich das eintragen (programmieren).

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!