LINUX.ORG.RU

связать /dev/ttyUSBx и lsusb

 


0

1

Втыкаю модем в порт, он появляется в lsusb и появляются три штуки /dev/ttyUSB[0-2]. Как понять, что вот эти три устройства они именно от той записи в lsusb? Ну, я конечно вижу что оно всё по времени совпадает (втыкание, появление строчки в lsusb и появление устройств), но это похоже на угадывание, а мне хотелось бы чтоб именно где-то чётко было прописано, что вот /dev/ttyUSB0 обслуживается этим usb-устройством. Есть такое?

Ну а вообще это не только модемов касается, всякие флешки /dev/sr0 туда же.

★★★★★

Ответ на: комментарий от vvn_black

Мне немного не то что в вопросе по ссылке нужно, не биндить статическое имя а выяснить что скрывается за динамическим. Но на это там тоже ответ есть, спасибо.

1) Можно смотреть симлинки в /dev/serial/by-id/ и /dev/serial/by-path/ (но этот способ специфичный для tty как я понимаю).

2) Можно узнать параметры устройства через udevadm:

udevadm info /dev/ttyUSB0
udevadm info /dev/ttyUSB0 --attribute-walk
Эти две команды выдают кучу разных параметров, среди них определённо достаточно данных для привязки к строчке из lsusb.

3) Сделал strace udevadm info /dev/ttyUSB0, оно показало третий способ, наверно самый удобный для использования вне скриптов:

stat /dev/ttyUSB0 -> char device 188:0 readlink /sys/dev/char/188:0 -> ../../devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0

Ну и дальше можно лазить по sysfs и читать оттуда всё что нужно.

firkax ★★★★★
() автор топика