Ich muss mit zwei Stücken benutzerdefinierter Hardware umgehen, die beide Debugging-Daten über zwei serielle Verbindungen senden. Diese seriellen Verbindungen durchlaufen zwei Seriell-zu-USB-Konverter. Die Seriell-zu-USB-Geräte haben die gleichen Herstellernummern, Gerätenummern und anscheinend die gleichen Seriennummern.Wie protokolliere ich Daten konsistent von meinen seriellen Ports?
Hier ist das Problem: Ich möchte die zwei seriellen Schnittstellen getrennt protokollieren. Die benutzerdefinierte Hardware muss ständig neu gestartet werden, und ob sie an die gleiche /dev/ttyUSB*
anhängen, ist völlig zufällig. Wie kann ich sicherstellen, dass sie jedes Mal den gleichen Gerätepfad auswählen? Ich könnte es abhängig machen von welchem Port es angeschlossen ist, aber das scheint irgendwie hacky.
So lief ich ein diff gegen die Ausgabe von udevadm, etwa so:
$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB1` > usb1
$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB2` > usb2
$ diff usb1 usb2
The output of the diff is long; you can see it here
für serielle greppen (für beide gleich):
$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB2` | grep serial
SUBSYSTEMS=="usb-serial"
ATTRS{serial}=="0001"
ATTRS{serial}=="0000:00:1d.7"
Weitere Informationen:
Ich benutze PuTTY, um von den seriellen Anschlüssen zu lesen.
OS:
$ uname -a
Linux xxxxxxxx.localdomain 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Siehe http://askubuntu.com/questions/49910/how-to-distinguish-idge-ical-usb-to-serial-adapters –
@KarlBielefeldt Ich möchte es nicht davon abhängig machen, welcher Port es ist eingesteckt, aber ich nehme es, wenn das der einzige Weg ist. –
Soweit ich weiß, ist das * der einzige Weg, wenn die Seriennummern identisch sind. –