Сергей Майков aka Madskull
http://www.mdsk.ru
2005.11.12
Одно из замечательных свойств udev, на мой взгляд, это возможность создавать файлы устройств с нестандартными именами. Например, для фотокамеры - /dev/camera, для флэшки - /dev/flash и так далее, а не безличные /dev/sda1. Главный плюс: если будут подключены несколько устройств одного типа (usb-storage, например), не нужно гадать, ху из ху.
Итак: втыкаем устройство и смотрим, какой файл появился в /dev. Скажем, это будет /dev/sdb1. Затем пределяем его путь в sysfs:
# udevinfo -q path -n /dev/sdb1 /block/sdb/sdb1
Смотрим на "характеристики" девайса:
# udevinfo -a -p /block/sdb/sdb1
... SKIP ...
follow the "device"-link to the physical device:
looking at the device chain at '/sys/devices/pci0000:00/0000:00:01.3/usb2/2-1/2-1:1.0/host8/8:0:0:0':
BUS=="scsi"
ID=="8:0:0:0"
DRIVER=="sd"
DRIVER=="sd"
SYSFS{detach_state}=="0"
SYSFS{device_blocked}=="0"
SYSFS{max_sectors}=="240"
SYSFS{model}=="QV DigitalCamera"
SYSFS{queue_depth}=="1"
SYSFS{rev}=="1000"
SYSFS{scsi_level}=="3"
... SKIP ...
Среди всей выведенной непонятной чепухи отыскиваем "индивидуальные", на наш взгляд, для девайса строки. Для моей камеры это
SYSFS{model}=="QV DigitalCamera"
Создаем файлик /etc/udev/rules.d/00.my.rules (имя, в общем-то любое, главное, чтобы отработалось перед стандартным udev.rules) и заносим в него:
SYSFS{model}=="QV DigitalCamera", NAME="camera"
Соответственно, перед запятой - то что мы выдрали из sysfs атрибутов, после - имя, которое должно появиться в /dev.
Перезапускать udev не надо, конфиги перечитываются при подключении нового девайса.
В общем, man udev.