Potrzebuję poradzić sobie z dwoma elementami niestandardowego sprzętu, które wysyłają dane debugowania przez dwa połączenia szeregowe. Te połączenia szeregowe przechodzą przez dwa konwertery szeregowe na USB. Urządzenia szeregowe na USB mają te same numery dostawców, numery urządzeń i, co oczywiste, te same numery seryjne.W jaki sposób konsekwentnie rejestrować dane z moich portów szeregowych?
Oto problem: chcę zalogować dwa porty szeregowe oddzielnie. Niestandardowy sprzęt musi być stale restartowany, a to, czy dołączają do tego samego /dev/ttyUSB*
jest całkowicie losowe. Jak mogę sprawić, by za każdym razem wybierały tę samą ścieżkę urządzenia? Mogę uzależnić to od tego, do którego portu jest podłączony, ale wydaje się to dość hackowate.
Więc wpadłem diff przed wyjściem udevadm, tak:
$ 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
grepping dla szeregowego (takie same dla obu):
$ 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"
Inne info:
Używam PuTTY do odczytu z portów szeregowych.
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
Zobacz http://askubuntu.com/questions/49910/how-to-distinguish-between-identical-usb-to-serial-adapters –
@KarlBielefeldt Wolałbym nie uzależniać tego portu od którego podłączony, ale wezmę go, jeśli to jedyny sposób. –
O ile mi wiadomo, to * jest * jedynym sposobem, jeśli numery seryjne są identyczne. –