понедельник, 31 августа 2020 г.

Привязать USB устройство к конкретному ttyUSB в Linux

Это делается через настройку udev.

1) Создаем новое правило udev:

    vim /etc/udev/rules.d/91-myrule.rule

2) По сути для того, чтобы создать стабильный алиас для устройства достаточно одной строки:

 ACTION=="add",ENV{ID_BUS}=="usb",ENV{ID_SERIAL}=="usb_serial",SYMLINK+="ttyUSBPort4"

ttyUSPPort4 - это будущее имя устройства, оно, как и все, будет в /dev/

а вот на ID_SERIAL остановимся чуть подробнее:

цитируя udev wiki: "To get definitive information of the device you can use either ID_SERIAL or ID_SERIAL_SHORT". Так что на самом деле для идентификации годятся 2 параметра.

Посмотреть их можно так:

udevadm info /dev/ttyUSBX - где X номер вашего устройства.

Если какой у него сейчас номер тоже не известно - вот способ его определить:

делаем lsusb, видим список всех устройств и их usb_serial

Потом грепаем по очереди все ttyUSB

grep PRODUCT= /sys/bus/usb-serial/devices/ttyUSB1/../uevent

и смотрим, какой serial к какому устройству относится.