
Ich habe eine Linux-Maschine mit einem angeschlossenen USB-Hub (5 Ports) und außerdem einen seriellen Hub (8 serielle Ports), der an diesen USB-Hub angeschlossen ist. Das sieht folgendermaßen aus:
Linux -> USB-Hub -> USB-Seriell-Hub -> Serielles Gerät
Wenn ich jetzt ausführe ls -la /sys/bus/usb-serial/devices
, sehe ich die folgende Ausgabe:
ttyUSB0 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.1/8-3.1.1:1.0/ttyUSB0
ttyUSB1 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.1/8-3.1.1:1.0/ttyUSB1
ttyUSB2 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.1/8-3.1.1:1.0/ttyUSB2
ttyUSB3 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.1/8-3.1.1:1.0/ttyUSB3
ttyUSB4 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.2/8-3.1.2:1.0/ttyUSB4
ttyUSB5 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.2/8-3.1.2:1.0/ttyUSB5
ttyUSB6 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.2/8-3.1.2:1.0/ttyUSB6
ttyUSB7 -> ../../../devices/pci0000:00/0000:00:1d.0/usb8/8-3/8-3.1/8-3.1.2/8-3.1.2:1.0/ttyUSB7
Ich kann diesen Pfad folgendermaßen „entschlüsseln“: An Bus Nummer 8, 3. USB-Port schließe ich meinen USB-Hub an und an den ersten USB-Port dieses Hubs schließe ich meinen seriellen Hub an. Das ist OK.
Aber wie kann ich den spezifischen seriellen Port in diesem USB-Seriell-Hub identifizieren? Wenn ich das Gerät beispielsweise vom seriellen Port 1 (ttyUSB0) abziehe und wieder anschließe, hat es einen ttyUSB8 oder die nächste freie Nummer, 9,10,11... Aber wie kann ich die spezifische serielle Portnummer herausfinden, an die mein neues ttyUSB-Gerät angeschlossen ist?