Page 1 of 1

Daten auf seriellem Port / RS232 / TTY mitschneiden

Posted: 30. Aug 2010 20:36
by Janka
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: Select all

$ 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

socat

Posted: 12. Apr 2013 9:24
by brum
Cool, das Programm socat kannte ich noch nicht....
Habe da einen netten Link dazu gefunden:
http://technostuff.blogspot.de/2008/10/ ... mands.html

brum

Posted: 15. Apr 2013 15:21
by fantasia
*Bookmark*