Datasheet

“main” (Installation and Administration) 2004/6/25 13:29 page 326 #352
i
i
i
i
i
i
i
i
15.4 Key Selection
It is essential to choose a good key for every functioning udev rule. Here
are some examples of standard keys:
BUS device bus type
KERNEL device name the kernel uses
ID device number on the bus (for example, PCI bus ID)
PLACE physical point where the device is connected (for example, on
USB)
The keys ID and PLACE can be useful, but usually the keys BUS, KERNEL,
and SYSFS{...} are used. The udev configuration also provides keys that
call external scripts and evaluate their results. Further details about this can
be found in man udev.
The file system sysfs stores small files with hardware information in a di-
rectory tree. Each file generally is only given one item of information, such
as the device name, the vendor, or the serial number. Each of these files can
be used as the value of a key. To use several SYSFS keys in one rule, how-
ever, you can only use files in the same directory.
udevinfo can be a useful tool here. You just have to find one subdirectory
of /sys that refers to the relevant device and is given a file dev. These di-
rectories are all located under /sys/block or /sys/class.
If a device node already exists for the device, udevinfo can again reduce
the amount of work you have to do. The command udevinfo -q path
-n /dev/sda outputs /block/sda. This means that the directory you
are looking for is /sys/block/sda. Now call udevinfo with the follow-
ing command: udevinfo -a -p /sys/block/sda. The two commands
can also be combined, for example: udevinfo -a -p ‘udevinfo -q
path -n /dev/sda‘. The following is an extract from the output:
BUS="scsi"
ID="0:0:0:0"
SYSFS{detach_state}="0"
SYSFS{type}="0"
SYSFS{max_sectors}="240"
SYSFS{device_blocked}="0"
SYSFS{queue_depth}="1"
SYSFS{scsi_level}="3"
326 15.4. Key Selection