Cierto software que puede que quieras instalar más adelante (por
          ejemplo, reproductores de medios) esperan que existan los enlaces
          simbólicos /dev/cdrom y /dev/dvd y que apunten a un dispositivo CD-ROOM o
          DVD-ROM. Igualmente, puede que te convenga poner referencias a
          dichos enlaces simbólicos en /etc/fstab. Udev incluye un guión que generará
          ficheros de reglas para crear dichos enlaces simbólicos por ti,
          dependiendo de las capacidades de cada dispositivo, pero deberás
          decidir cual de los dos modos de funcionamiento deseas que utilice
          el guión.
        
Primero, el guión puede operar en modo “by-path” (usado por defecto para dispositivos USB y FireWire), en el que las reglas creadas dependen de la ruta física del dispositivo CD o DVD. O puede operar en modo “by-id” (por defecto para dispositivos IDE y SCSI), en el que las reglas dependen de las cadenas de identificación almacenadas en el dispositivo CD o DVD. Las rutas son determinadas por el guión path_id de Udev, y las cadenas de identificación son leidas del hardware por sus programas ata_id o scsi_id, dependiendo del tipo de dispositivos que tengas.
Hay ventajas en cada método. El correcto a usar dependerá de qué tipo de cambios de dispositivos puedan ocurrir. Si esperas que cambie la ruta física a los dispositivos (esto es, los puertos y/o ranuras en los que estén conectados) debido por ejemplo a que planeas mover el controlador a un puerto IDE o USB diferente, entonces deberías usar el modo “by-id”. Por otro lado, si esperas que cambie la identificación del dispositivo, debido por ejemplo a una averia, y podrías sustituirlo por un dispositivo diferente pero con las mismas capacidades y conectado al mismo puerto, entonces deberías usar el modo “by-path”.
Si es posible que suceda cualquiera de estos tipos de cambio, entonces elige un modo basado el tipo de cambio que esperas suceda con mas frecuencia.
![[Importante]](../images/important.png) 
          Los dispositivos externos (por ejemplo, un CD conectado por USB) no deberian usar el modo by-path, pues cada vez que se conecte a un nuevo puerto externo su ruta física cambiará. Todos los dispositivos conectados esternamente tendrán este problema si escribes reglas Udev para reconocerlos por su ruta física. El problema no se limita a dispositivos CD o DVD.
          Si deseas ver los valores que los guiones Udev usarán, para el
          dispositivo CD-ROM apropiado encuentra el directorio
          correspondiente en /sys (puede ser,
          por ejemplo, /sys/block/hdd) y
          ejecuta un comando similar al siguiente:
        
udevtest /sys/block/hdd
Mira las lineas que contienen la salida de los diversos programas *_id. El modo “by-id” usará el valor ID_SERIAL si existe y no está vacio, en caso contrario usará una combinación de ID_MODEL y ID_REVISION. El modo “by-path” usa el valor ID_PATH.
          Si el modo por defecto no es el adecuado para tu situación, puedes
          hacer la siguiente modificación en el fichero /etc/udev/rules.d/75-cd-aliases-generator.rules
          (donde mode es
          “by-id” o
          “by-path”):
        
sed -i -e 's/write_cd_rules/& mode/' \
    /etc/udev/rules.d/75-cd-aliases-generator.rules
        
          Ten en cuenta que no es necesario crear los ficheros de reglas o
          enlaces simbolicos ahora, pues tienes montado el directorio
          /dev del anfitrión en el sistema LFS,
          y suponemos que los enlaces simbólicos existen en el anfitrión. Las
          reglas y enlaces simbólicos se crearán la primera vez que arranques
          tu sistema LFs.
        
          Sin embargo, si tienes diversos dispositivos CD-ROM, los enlaces
          simbólicos generados en ese momento pueden apuntar a dispositivos
          diferentes de a los que apuntan en tu anfitrión, pues los
          dispositivos no se descubren en un orden predecible. Las
          asignaciones creadas cuando arrancas por primera vez el sistema LFS
          serán estables, por lo que esto solo es un problema si necesitas
          que los enlaces de ambos sistemas apunten a los mismos
          dispositivos. Si necesitas esto, revisa (y posiblemente edita) el
          fichero /etc/udev/rules.d/70-persistent-cd.rules generado
          tras el arranque para asegurate de que los enlaces cubren tus
          necesidades.
        
          Como se explica en Sección 7.4,
          “Manejo de dispositivos y módulos en un sistema
          LFS”, el orden en el que dispositivos con la misma
          funcionalidad aparecen en /dev es
          aleatorio. Es decir, si tienes una cámara web USB y una
          sintonizadora de TV, a veces /dev/video0 se refiere a la cámara y /dev/video1 al sintonizador, pero tras un
          reinicio el orden puede ser el contrario. Para todas las clases de
          harware, excepto tarjetas de sonido y de red, esto puede
          solucionarse creando reglas udev para personalizar enlaces
          simbólicos persistentes. El caso de las tarjetas de red se cubre en
          Sección 7.13,
          “Configuración del guión network”, y la
          configuración de tarjetas de sonido se puede encontrar en BLFS.
        
          Para cada uno de tus dispositivos que puedan tener este problema
          (incluso si el problema no existe en tu distribución Linux actual)
          encuentra el directorio correspondiente bajo /sys/class o /sys/block. Para dispositivos de vñideo este
          puede ser /sys/class/video4linux/video. Localiza los atributos
          que identifican inequívocamente al dispositivo (normalmente el
          fabricante, ID del producto o el número de serie):
        X
udevinfo -a -p /sys/class/video4linux/video0
Entoces escribe reglas que creen los enlaces simbólicos:
cat > /etc/udev/rules.d/83-duplicate_devs.rules << EOF
# Enlaces persistentes para camaras web y sintonizadores
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \
    SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \
    SYMLINK+="tvtuner"
EOF
        ![[Nota]](../images/note.png) 
          Ten en cuenta que Udev no reconoce la barra inversa como continuación de línea. Los ejemplos de este libro funcionan correctamente debido a que tanto la barra inversa como el salto de línea son ignorados por el interprete de comandos. Esto hace que el interprete de comandos envíe cada regla a cat como una única línea (el interprete de comandos ignora dicha secuencia debida a que la cadena EOF usada para redirigir el documento insertado no se encuentra delimitado con comillas simples o dobles. Para mas detalles consulta la página de manual bash(1) y busca "Here Documents").
Si modificas las reglas Udev con un editor de texto, asegurate de poner cada regla en una sola línea.
          El resultado es que los dispositivos /dev/video0 y /dev/video1 aún se refieren de forma aleatoria al
          sintonizador o a la cámara web (y por tanto nunca deben usarse
          directamente) pero los enlaces simbólicos /dev/tvtuner y /dev/webcam siempre apuntarán al dispositivo
          correcto.
        
          Puedes encontrar más información sobre la creación de reglas Udev
          en /usr/share/doc/udev-113/index.html.