Comme expliqué à la
Section 7.3, « Manipulation des périphériques et modules
sur un système LFS », 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 tunner TV, parfois /dev/video0 renvoie à la webcam, et /dev/video1 renvoie au tuner, et parfois après un
redémarrage l'ordre 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 des liens symboliques constants
personnalisés. Le cas des cartes réseau est couvert de façon séparé
dans Section 7.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 et/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"
# Liens symboliques permanent vers la webcam et le 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 il y a des liens symboliques /dev/tvtuner et /dev/webcam qui pointent toujours vers le bon
périphérique.