Pour identifier un périphérique de façon unique et distinguer plusieurs périphériques les uns des autres, une propriété unique est essentielle pour qu'une règle udev fonctionne. Voici quelques exemples de clés standard :
Sous-système dont fait partie de périphérique
Type de bus du périphérique
Nom du périphérique utilisé par le kernel
Numéro du périphérique sur le bus (par exemple, ID du bus PCI)
Attributs de périphérique sysfs, tels que étiquette, fournisseur ou numéro de série
Les clés SUBSYSTEM et ID peuvent être utiles, mais généralement les clés BUS, KERNEL et SYSFS{...} sont utilisées. La configuration udev fournit également des clés qui appellent des scripts externes et en évaluent les résultats. Vous trouverez des informations à ce sujet dans la page de manuel udev.
Le système de fichiers sysfs présente des informations concernant le matériel dans une arborescence de répertoire. Chaque fichier ne contient généralement qu'un élément d'information, tel que le nom du périphérique, le fournisseur ou le numéro de série. Chacun de ces fichiers peut être utilisé pour correspondre à une clé. Toutefois, pour utiliser plusieurs clés SYSFS dans une règle, vous ne pouvez utiliser que des fichiers d'un même répertoire comme valeurs de clé. L'outil udevinfo peut aider à trouver des valeurs de clé utiles et uniques.
Vous devez trouver un sous-répertoire de /sys qui fasse référence au périphérique correspondant et qui contienne un fichier dev. Ces répertoires se trouvent tous sous /sys/block ou sous /sys/class. S'il existe déjà un noeud pour ce périphérique, udevinfo peut trouver le bon sous-répertoire à votre place. La commande udevinfo -q path -n /dev/sda génère /block/sda. Cela signifie que le répertoire désiré est /sys/block/sda. Appelez maintenant udevinfo avec la commande udevinfo -a -p /sys/block/sda. Les deux commandes peuvent également se combiner, comme dans udevinfo -a -p `udevinfo -q path -n /dev/sda`. Voici un extrait du résultat :
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"
SYSFS{vendor}==" "
SYSFS{model}=="USB 2.0M DSC"
SYSFS{rev}=="1.00"
SYSFS{online}=="1"
À partir des informations générées, recherchez les clés appropriées qui ne changent pas. N'oubliez pas que vous ne pouvez pas utiliser de clés de répertoires différents dans une même règle.