9.4. Gerenciando Dispositivos

9.4.1. Lidando com Dispositivos Duplicados

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/videoX. Descubra os atributos que identificam o dispositivo de maneira única (geralmente, IDs de fornecedor(a) e produto e (ou) números seriais funcionam):

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.