Оригинал
Вот меня часто спрашивают, чем udev лучше devfs, зачем он нужен и тому подобное.
Мой главный козырь - см. тему
Настраивая очередную железку (новый фотик), решил таки описать этот процесс.
Одно из замечательных свойств udev, на мой взгляд, это возможность создавать файлы устройств с нестандартными именами. Например, для фотокамеры - /dev/camera, для флэшки - /dev/flash и так далее, а не безличные /dev/sda1. Главный плюс: если будут подключены несколько устройств одного типа (usb-storage, например), не нужно гадать, ху из ху.
Итак:
1. Втыкаем устройство и смотрим, какой файл появился в /dev. Скажем, /dev/sdb1
2. Определяем его путь в sysfs:
Код: Выделить всё
[mage ~]# udevinfo -q path -n /dev/sdb1
/block/sdb/sdb1
3. Смотрим на "характеристики" девайса
Код: Выделить всё
[mage ~]# 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".
4. Создаем файлик /etc/udev/rules.d/00.my.rules (имя, в общем-то любое, главное, чтобы отработалось перед стандартным udev.rules) и заносим в него:
Код: Выделить всё
SYSFS{model}=="QV DigitalCamera", NAME="camera"
Соответственно, перед запятой - то что мы выдрали из sysfs атрибутов, после - имя, которое должно появиться в /dev.
Перезапускать udev не надо, конфиги перечитываются при подключении нового девайса. В общем, man udev.
Конечно, в Сети есть и более подробные рассказки. Так что, гугль вам в помошь.