Tips от Madskull'a: настройка UDEV, или даем устройствам свои имена

Сергей Майков aka Madskull
Tips от Madskull'a

2005-08-23

Одно из замечательных свойств udev, на мой взгляд, это возможность создавать файлы устройств с нестандартными именами. Например, для фотокамеры - /dev/camera, для флэшки - /dev/flash и так далее, а не безличные /dev/sda1. Главный плюс: если будут подключены несколько устройств одного типа (usb-storage, например), не нужно гадать, ху из ху. Итак:

  • Втыкаем устройство и смотрим, какой файл появился в /dev. Скажем, /dev/sdb1
  • Определяем его путь в sysfs:
    	[mage ~]# udevinfo -q path -n /dev/sdb1
    	/block/sdb/sdb1
    	
  • Смотрим на "характеристики" девайса
    	[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".
  • Создаем файлик /etc/udev/rules.d/00.my.rules (имя, в общем-то любое, главное, чтобы отработалось перед стандартным udev.rules) и заносим в него:
    	SYSFS{model}=="QV DigitalCamera", NAME="camera"
    	
    Соответственно, перед запятой - то что мы выдрали из sysfs атрибутов, после - имя, которое должно появиться в /dev.

Перезапускать udev не надо, конфиги перечитываются при подключении нового девайса. В общем, man udev.