33.4. Selección de claves

Para identificar un dispositivo de manera única y distinguir varios dispositivos unos de otros, es esencial que haya una propiedad exclusiva para cada regla de udev en funcionamiento. A continuación se enumeran algunos ejemplos de claves estándar:

SUBSYSTEM

Subsistema del que el dispositivo forma parte

BUS

Tipo de bus del dispositivo

KERNEL

Nombre del dispositivo que usa el núcleo

ID

Número del dispositivo en el bus (por ejemplo, PCI bus ID)

SYSFS{...}

Atributos del dispositivo sysfs como la etiqueta, el proveedor o el número de serie

Las claves SUBSYSTEM e ID pueden ser útiles pero normalmente las que se usan son BUS, KERNEL y SYSFS{...}. La configuración de udev también ofrece claves que llaman a guiones externos y evalúan sus resultados. Podrá obtener información detallada sobre esto en la página Man de udev.

El sistema de archivos sysfs muestra información sobre el hardware en el árbol de directorios. Cada archivo normalmente contiene una parte de información como el nombre, el proveedor o el número de serie del dispositivo. Cada uno de estos archivos se puede usar para que concuerde con una clave. Sin embargo, para emplear varias claves SYSFS en una regla, sólo puede usar archivos en el mismo directorio que los valores de la clave. La herramienta udevinfo puede ayudar a encontrar valores de clave útiles y únicos.

Debe buscar un subdirectorio de /sys que se refiere al dispositivo en cuestión y que contiene un archivo dev. Estos directorios se encuentran debajo de /sys/block o /sys/class. Si ya existe un nodo de dispositivo para el dispositivo, udevinfo podrá encontrar el subdirectorio correcto. El comando udevinfo -q path -n /dev/sda muestra como resultado /block/sda. Esto quiere decir que el directorio deseado es /sys/block/sda. Ahora llame a udevinfo con el comando udevinfo -a -p /sys/block/sda. Los dos comandos también pueden combinarse, como en udevinfo -a -p `udevinfo -q path -n /dev/sda`. A continuación se muestra un extracto de la información de salida:

BUS=="scsi"
ID=="0:0:0:0"
SYSFS{detach_state}=="0"
SYSFS{type}=="0"
SYSFS{max_sectors}=="240"
SYSFS{device_blocked}=="0"
SYSFS{queue_depth}=="1"
SYSFS{scsi_level}=="3"
SYSFS{vendor}==" "
SYSFS{model}=="USB 2.0M DSC"
SYSFS{rev}=="1.00"
SYSFS{online}=="1"

En la información de salida, busque las claves adecuadas que no cambian. Recuerde que no puede usar claves desde directorios distintos en una regla.