среда, 11 июня 2014 г.

Фиксируем имена устройств через Udev.

Заметка в  большей степени для себя.

Задача редкая, успеваю забыть.

Итак, есть два похожих usb устройства, которые ядром определяются как ttyUSB1 и ttyUSB0.

Иногда, при ребуте меняются местами, чем вызывают кучу слёз.

Нужно их привязать.

Рецепт:

Берем
# udevadm info -a -p /sys/class/tty/ttyUSB1

и в выводе

  KERNELS=="6-3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{interface}=="SD USB Phoenix interface"


выискиваем разные атрибуты у usb0 и usb1.

Затем вписываем их в /etc/udev/rules.d/

SUBSYSTEMS=="usb", ACTION=="add",ATTRS{interface}=="SD USB Phoenix interface", NAME="supername"

Таким образом получим /dev/supername как имя устройства.