Überwachung (Sniffing) /dev/ttyUSB0 erstellt von FTDI USB Serial Converter
Ich will monitor (sniff) der Verkehr von meiner /dev/ttyUSB0 erzeugt vom FTDI USB-Serial Converter. Ich habe geschrieben, meine eigene Anwendung in Windows-und jetzt versuche ich, die Portierung auf linux und /dev/tty/USB0. Ich möchte zum Debuggen der Kommunikation, die tatsächlich passiert.
Die software strace ist keine option für mich, weil es nur zeigt die Systemaufrufe an ioctl.
Mithilfe der Windows-software "Free Serial Port Monitor" hat es durch schnüffeln COM1.
Ausgabe von dmesg:
[16975.000221] usb 7-1: new full-speed USB device number 5 using uhci_hcd
[16975.193543] usb 7-1: New USB device found, idVendor=0403, idProduct=6001
[16975.193548] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[16975.193552] usb 7-1: Product: FT232R USB UART
[16975.193555] usb 7-1: Manufacturer: FTDI
[16975.193558] usb 7-1: SerialNumber: A400BJII
[16975.200550] ftdi_sio 7-1:1.0: FTDI USB Serial Device converter detected
[16975.200599] usb 7-1: Detected FT232RL
[16975.202604] usb 7-1: FTDI USB Serial Device converter now attached to ttyUSB0
Aber ich versuchte moserial, dies zu tun und den Befehl "echo foobar > /dev/ttyUSB0", um zu überprüfen, ob es funktioniert. Auch meine software nicht schaffen, eine Ausgabe zu moserial.
UPDATE:
Finden Sie heraus, wie monitor, usb-direkt, jetzt muss ich konvertieren Sie USB-Pakete zu RS-232 (was FTDI im Grunde tut).
-
Setup usbmon
modprobe usbmon
1.1 Mit Linux-Kernel vor 2.6.23, werden Sie auch brauchen, um diesen Befehl ausführen zu
modprobe -t debugfs none /sys/kernel/debug
-
usbmon0 wird überwachen, den Verkehr aus allen usbmon0 zu usbmonX
2.1. Finden Sie das richtige usb-Gerätcat /sys/kernel/debug/usb/devices|grep FTDI -A 7 -B 4
T: Bus=07 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 12 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0403 ProdID=6001 Rev= 6.00 S: Manufacturer=FTDI S: Product=FT232R USB UART S: SerialNumber=A400BJII C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 90mA I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
2.2. Hinweis: Bus-Nummer des Ports (Bus=07), so usbmon überwacht werden usbmon7
2.3. Die Verwendung von wireshark zur Erfassung der usbmon7-Schnittstelle oder verwenden Sie folgenden Befehl aus, um die Ausgabe in der Konsole (stdout) ... ersetzen Sie die Zahl mit der bus-id
cat /sys/kernel/debug/usb/usbmon/7u
Was bedeutet "u"?
https://www.kernel.org/doc/Documentation/usb/usbmon.txtZwei Formate unterstützt werden derzeit: das original, oder '1t' - format und '1u' - format. Die '1t' - format ist veraltet kernel 2.6.21. Die '1u' - format fügt ein paar Felder, wie ISO frame-Deskriptoren, Intervall, etc. Es produziert etwas mehr lines, aber sonst ist das eine perfekte Obermenge von '1t' - format.
-
Wie konvertiere ich die USB-Aufnahme RS-232 erfassen?
Ich weiß es nicht ... TODO
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Ihrem Tipp habe ich es geschafft mein problem zu lösen, so ist mein Tipp für den letzten Punkt:
Mit Wireshark öffnen usbmon0 und verwenden Sie diesen filter,
Ausstellung zwei mal den Befehl
echo asd > /dev/ttyUSB0
erzeugt das Ergebnis unten in WiresharkKönnen Sie extrahieren Sie die ganze Übrig gebliebene Erfassen von Daten aus einem capture-file mit tshark:
tshark -r capture.pcapng -T fields -e usb.capdata