19.4. Sélection de codes

Le choix d'un bon code est essentiel pour toute règle udev apte à fonctionner. Les codes standard sont par exemple :

BUS

type de bus du périphérique

NOYAU

nom du périphérique que le noyau utilise

ID

numéro du périphérique sur le bus (par exemple, Bus PCI ID)

PLACE

emplacement physique auquel le périphérique est connecté (par exemple, sur USB)

SYSFS{...}

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.


SUSE LINUX Guide de l'administrateur 9.2