Comme expliqué à la Section 9.3,
« Manipulation des périphériques et modules »,
l'ordre dans lequel les périphériques ayant la même fonction
apparaissent dans /dev
est
essentiellement aléatoire. Par exemple, si vous avez une webcam USB
et un récepteur TV, parfois /dev/video0
renvoie à la webcam, et /dev/video1
renvoie au récepteur, et parfois
après un redémarrage l'ordre d'apparition des périphériques
s'inverse. Pour toutes les classes de matériel sauf les cartes son
et les cartes réseau, ceci peut se corriger en créant des règles
udev pour créer des liens symboliques constants. Le cas des cartes
réseau est traité séparément dans Section 9.2,
« Configuration générale du réseau », et vous pouvez
trouver la configuration des cartes son dans
BLFS.
Pour chacun des périphériques susceptibles d'avoir ce problème
(même si le problème n'apparaît pas dans votre distribution Linux
actuelle), trouvez le répertoire correspondant sous /sys/class
ou /sys/block
. Pour les périphériques vidéo, cela
peut être /sys/class/video4linux/video
. Calculez les attributs
qui identifient de façon unique un périphérique (normalement basé
sur l'ID du fabricant et du produit ou les numéros de série) :
X
udevadm info -a -p /sys/class/video4linux/video0
Puis, écrivez des règles qui créent les liens symboliques, comme :
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
EOF
Il en résulte que les périphériques /dev/video0
et /dev/video1
renvoient encore de manière aléatoire
au tuner et à la webcam (et donc ne devrait jamais être utilisé
directement), mais certains des liens symboliques /dev/tvtuner
et /dev/webcam
pointent toujours vers le bon
périphérique.