33.4. Selezione di chiavi

Per identificare un dispositivo in maniera univoca e distinguere i vari dispositivi tra di loro, è necessario specificare una proprietà esclusiva per una regola udev attiva. Di seguito sono riportati alcuni esempi di chiavi standard.

SUBSYSTEM

Sottosistema a cui appartiene il dispositivo

BUS

Tipo di bus del dispositivo

KERNEL

Nome utilizzato dal kernel per il dispositivo

ID

Numero del dispositivo sul bus, ad esempio ID del bus PCI

SYSFS{...}

Attributi del dispositivo sysfs, ad esempio l'etichetta, il produttore o il numero di serie

Benché le chiavi SUBSYSTEM e ID siano utili, vengono generalmente utilizzate le chiavi BUS, KERNEL e SYSFS{...}. In udev sono anche disponibili le chiavi che consentono di chiamare script esterni e valutarne i risultati. Per ulteriori informazioni, vedere la pagina di manuale udev.

Il file system sysfs espone le informazioni sui componenti hardware in un albero di directory. Ogni file contiene generalmente una voce, ad esempio il nome del dispositivo, il produttore o il numero di serie. Ciascuno di questi file può essere associato a una chiave. Tuttavia, per specificare più chiavi SYSFS in una regola, è possibile utilizzare come valori chiave solo i file inclusi nella stessa directory. Lo strumento udevinfo può semplificare l'individuazione di valori chiave utili e univoci.

È necessario individuare una sottodirectory di /sys che faccia riferimento al relativo dispositivo e che contenga un file dev. Tutte queste directory sono archiviate in /sys/class o /sys/block. Se per un dispositivo esiste già un nodo, udevinfo consente di individuare automaticamente la sottodirectory appropriata. Il comando udevinfo -q path -n /dev/sda restituisce /block/sda. Ciò significa che /sys/block/sda è la directory desiderata. Chiamare ora udevinfo con il comando udevinfo -a -p /sys/block/sda. È anche possibile combinare questi due comandi, come in udevinfo -a -p `udevinfo -q path -n /dev/sda`. Di seguito è riportato uno stralcio del risultato:

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"

Cercare le chiavi appropriate e persistenti nei dati restituiti. Ricordarsi che non è possibile utilizzare chiavi di diverse directory in una regola.