Le choix d'un bon code est essentiel pour toute règle udev apte à fonctionner. Les codes standard sont par exemple :
type de bus du périphérique
nom du périphérique que le noyau utilise
numéro du périphérique sur le bus (par exemple, Bus PCI ID)
emplacement physique auquel le périphérique est connecté (par exemple, sur USB)
attributs de périphérique sysfs tels que étiquette, constructeur, numéro de série, etc.
Les codes ID et PLACE peuvent s'avérer
utiles, mais la plupart du temps les
codes BUS et KERNEL ainsi que
SYSFS{...} sont utilisés. De plus, la configuration de
udev met à disposition des codes qui appellent des
scripts externes et évaluent leur résultat. Vous trouverez plus
de détails à ce sujet dans la page de manuel man udev.
Le système de fichiers sysfs enregistre des petits fichies contenant des informations matérielles dans une arborescence de répertoire. En règle générale, chaque fichier ne contient qu'une information, comme le nom du périphérique, le fabricant et le numéro de série. Chacun de ces fichiers peut être utilisé comme valeur de code. Si vous voulez utiliser plusieurs codes SYSFS dans une règle, vous ne devez cependant utiliser que des fichiers du même répertoire comme valeurs de code. L'outil udevinfo peut être utile pour trouver des valeurs de code.
Vous devez trouver un sous-répertoire de /sys qui
se rapporte au périphérique correspondant et contient un fichier
dev. Vous trouverez tous ces répertoires sous
/sys/block ou /sys/class.
S'il existe déjà un nœud de périphérique pour le périphérique,
udevinfo peut trouver le sous-répertoire correct pour
vous. La commande
udevinfo -q path -n /dev/sda affiche
/block/sda. Ceci signifie que le répertoire recherché
est /sys/block/sda. Appelez ensuite
udevinfo avec la commande udevinfo -a
-p /sys/block/sda. Les deux commandes peuvent également être
combinées comme dans udevinfo -a -p `udevinfo -q path -n
/dev/sda`. Un extrait de l'affichage pourrait ressembler à ceci :
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"
Sélectionnez dans les sorties d'informations les codes adéquats que vous ne voulez pas modifier. Notez que vous ne pouvez pas utiliser des codes issus de répertoires différents.