Настройка имен устройств через udev (Debian Squeeze)

02.02.2010 о 20:08 | Теґи: , , , , ,

Понадобилось мне подключить к компьютеру несколько usb-serial преобразователей, при этом необходимо было как-нибудь но однозначно идентифицировать преобразователи (а заодно и устройства подключенные к ним, чтобы пользователь переключая устройство в другой usb порт не перенастраивал программу).

Правило для udev вышло таким:

ACTION!="add|change", GOTO="my_serial_end"
SUBSYSTEM!="tty", GOTO="my_serial_end"
KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="my_serial_end"
SUBSYSTEMS=="usb-serial", ENV{ID_PORT}="$attr{port_number}"
IMPORT="path_id %p"
 
IMPORT="usb_id --export %p"
ENV{ID_SERIAL}=="", GOTO="my_serial_end"
SUBSYSTEMS=="usb", ENV{ID_IFACE}="$attr{bInterfaceNumber}"
ENV{ID_IFACE}=="", GOTO="my_serial_end"
SYMLINK+="ttyUSB_$env{ID_SERIAL}"
 
LABEL="my_serial_end"

Сохраняем файл с этим содержанием в /etc/udev/rules.d/ с именем типа 99-serial.rules (чтобы они вызывальсь после всех остальных сначала имени идут цифры – порядок по приоритету)

В результате при подключении нескольких устройств даного типа получаем:

konstantin@konstantin-dev:~$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 лют  2 19:08 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 лют  2 18:44 /dev/ttyUSB1
lrwxrwxrwx 1 root root         7 лют  2 18:44 /dev/ttyUSB_FTDI_USB__-__Serial_Cable_FTR4K233 -> ttyUSB1
lrwxrwxrwx 1 root root         7 лют  2 18:43 /dev/ttyUSB_ftdi_usb_serial_converter_ftDGUU5S -> ttyUSB0

Подробное описание по работе с udev можно найти http://reactivated.net/writing_udev_rules.html

Автор: Щепановський Костя
Поділись з ближнім:

Залишіть коментар

Поля позначені червоною зірочкою * є обов’язковими для заповнення!