Como explicado na Seção 9.3,
“Visão Geral do Manuseio de Dispositivo e de Módulo,” a ordem
na qual dispositivos com a mesma função aparecem em /dev
é essencialmente aleatória. Por exemplo, se
você tiver uma câmera web USB e um sintonizador de TV, às vezes
/dev/video0
se referirá à câmera e
/dev/video1
se referirá ao
sintonizador; e às vezes depois de uma reinicialização a ordem
mudará. Para todas as classes de hardware, exceto placas de som e
placas de rede de intercomunicação, isso é corrigível criando-se
regras do udev para criar links simbólicos persistentes. O caso das
placas de rede de intercomunicação está abrangido separadamente na
Seção 9.2,
“Configuração Geral da Rede de Comunicação,” e configuração de
placa de som pode ser encontrado no
BLFS.
Para cada um dos seus dispositivos que é provável ter esse problema
(mesmo que o problema não exista em sua distribuição atual Linux),
encontre o diretório correspondente sob /sys/class
ou /sys/block
. Para dispositivos de vídeo, isso
possivelmente seja /sys/class/video4linux/video
. Descubra os atributos que
identificam o dispositivo de maneira única (geralmente, IDs de
fornecedor(a) e produto e (ou) números seriais funcionam):
X
udevadm info -a -p /sys/class/video4linux/video0
Então escreva regras que criam os links simbólicos, por exemplo:
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# Links simbólicos persistentes para webcam e sintonizador
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
EOF
O resultado é que os dispositivos /dev/video0
e /dev/video1
ainda se referem aleatoriamente ao
sintonizador e à câmera web (e, portanto, nunca deveriam ser usados
diretamente), mas existem links simbólicos /dev/tvtuner
e /dev/webcam
que sempre apontam para o dispositivo
correto.