Daten auf seriellem Port / RS232 / TTY mitschneiden

Antworten
Nachricht
Autor
Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

Daten auf seriellem Port / RS232 / TTY mitschneiden

#1 Beitrag von Janka » 30. Aug 2010 20:36

Um einen Linux-Treiber für ein Gerät zu basteln, musste ich die Kommunikation des Windows-Zugriffsprogramms mit dem Gerät mitschneiden. Zum Glück funzte das Windows-Programm nach einigem Gehampel mittels Wine, so dass lediglich das Mitschneiden als Problem übrigblieb.

Ich habe dann erst einmal wie ein Eichhörnchen im Netz nach einer fertigen Lösung gesucht. Das Ergebnis war ernüchternd: Auf Freshmeat fand ich zum einen den "serial-sniffer", der wohl voraussetzt, dass man einen Linux-Rechner zwischen den Windows-Rechner und das Gerät hängt, was in meinem Fall ja gar nicht nötig ist. Zum anderen gibt es "slsnit", der im Prinzip genau das macht was ich brauche, jedoch nur, wenn die /dev/ptyXY-Devices verfügbar sind -- was seit einigen Jahren nicht mehr üblich ist, stattdessen gibt es /dev/ptmx und /dev/pts/.

Zum Glück fand sich mit dem Universal-Streamkoppler socat eine simple Lösung:

Code: Alles auswählen

$ socat -v -x PTY,link=~/.wine/dosdevices/com1:,raw /dev/ttyS0,raw
socat erzeugt unter ~/.wine/dosdevices/com1: ein PTY-Device, das für die Windows-Anwendung unter Wine genau wie ein COM-Port aussieht, inklusive aller ioctl()s, die zu einer seriellen Schnittstelle gehören. Das ganze wird 1:1 mit /dev/ttyS0 verbunden. Mitschneiden erlaubt socat nun mittels der Optionen -v und -x. Ein Hoch auf socat!

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

brum

socat

#2 Beitrag von brum » 12. Apr 2013 9:24

Cool, das Programm socat kannte ich noch nicht....
Habe da einen netten Link dazu gefunden:
http://technostuff.blogspot.de/2008/10/ ... mands.html

brum

fantasia
Beiträge: 10
Registriert: 03. Apr 2013 19:38
Wohnort: berlin

#3 Beitrag von fantasia » 15. Apr 2013 15:21

*Bookmark*
Dies ist ein Text, der an jeden Beitrag von Ihnen angehängt werden kann.

Antworten