<Anterior | Contenido | Siguiente>
7.4.3. Tratar con dispositivos duplicados
Como se explica en la Sección 7.3, “Descripción general del manejo de dispositivos y módulos”, el orden en el que aparecen los dispositivos con la misma función en / dev es esencialmente aleatorio. Por ejemplo, si tiene una cámara web USB y un sintonizador de TV, a veces / dev / video0 se refiere a la cámara y / dev / video1 se refiere al sintonizador y, a veces, después de reiniciar, el orden cambia al opuesto. Para todas las clases de hardware, excepto tarjetas de sonido y tarjetas de red, esto se puede solucionar creando reglas Udev para enlaces simbólicos persistentes personalizados. El caso de las tarjetas de red se trata por separado en la Sección 7.5, “Configuración general de la red”, y la configuración de la tarjeta de sonido se puede encontrar en BLFS.
Para cada uno de sus dispositivos que probablemente tenga este problema (incluso si el problema no existe en su distribución actual de Linux), busque el directorio correspondiente en / sys / clase or / sys / block. Para dispositivos de video, esto puede ser
/ sys / class / video4linux / videoX. Averigüe los atributos que identifican el dispositivo de forma única (por lo general, los ID de producto y proveedor y / o los números de serie funcionan):
udevadm info -a -p / sys / class / video4linux / video0
udevadm info -a -p / sys / class / video4linux / video0
Luego escriba reglas que creen los enlaces simbólicos, por ejemplo:
gato> /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# Enlaces simbólicos persistentes para cámara web y sintonizador
KERNEL == "video *", ATTRS {idProduct} == "1910", ATTRS {idVendor} == "0d81", \ SYMLINK + = "cámara web"
KERNEL == "video *", ATTRS {dispositivo} == "0x036f", ATTRS {proveedor} == "0x109e", \ SYMLINK + = "tvtuner"
EOF
gato> /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# Enlaces simbólicos persistentes para cámara web y sintonizador
KERNEL == "video *", ATTRS {idProduct} == "1910", ATTRS {idVendor} == "0d81", \ SYMLINK + = "cámara web"
KERNEL == "video *", ATTRS {dispositivo} == "0x036f", ATTRS {proveedor} == "0x109e", \ SYMLINK + = "tvtuner"
EOF
El resultado es que / dev / video0 y / dev / video1 los dispositivos aún se refieren al sintonizador y la cámara web de forma aleatoria (y por lo tanto nunca deben usarse directamente), pero hay enlaces simbólicos / dev / tvtuner y / dev / webcam que siempre apuntan al dispositivo correcto.