Buongiorno a tutti,
avendo aggiornato alla current ed avendo quindi udev e non utilizzando più hotplug (rc.hotplug non è più eseguibile) volevo creare delle regole per l'assegnazione univoca del nomi dei miei device esterni, per la precisione un hd usb, l'iPod e due memorie usb.
Ho letto sia un articolo qui su slacky, sia vari post che una guida su internet (http://reactivated.net/writing_udev_rules.html), ma con tutte le varie regole inserite in /etc/udev/rules.d/udev.rules ogni volta che inserisco una periferica la vede sempre come sdX, e non con il nome della regola. Ogni volta che modifico il file faccio ripartire rc.udev. dove sbaglio? il sysfs è montato.
Es.
BUS=="usb", KERNEL=="sd*", SYSFS{product}=="USB2.0 Storage Device", NAME="%k", SYMLINK+="usbhd%n"
BUS=="scsi", SYSFS{model}=="AVVA07-0 ", NAME="usbhd%n"
ho seguito i vari spazi come da udevinfo.
Emanuele
Problemi con udev e nomi device [RISOLTO]
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Problemi con udev e nomi device [RISOLTO]
Ultima modifica di manublade il gio 17 ago 2006, 16:43, modificato 1 volta in totale.
- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
mi vengono in mente due cose:
1-sicuro di non aver mescolato i parametri identificativi del device? se dai
ottieni le diverse informazioni sul device "raggruppate" a blocchi. _NON_ puoi mescolare informazioni provenienti da blocchi diversi. per capirsi ti posto la prima parte dell'output di udevinfo per la mia pen usb:
se seleziono BUS=="usb" e al contempo scelgo SYS{model}=="JUMPDRIVE SPORT" sto mescolando informazioni di due blocchi di dati diversi. questo è sbagliato.
2- in teoria con le ultime release di udev _NON_ dovresti inserire le tue regole in udev.rules ma in un file specifico che venga eseguito _PRIMA_ di udev.rules: udev cerca tra le varie regole ed adotta la prima regola applicabile che trova!
M
1-sicuro di non aver mescolato i parametri identificativi del device? se dai
Codice: Seleziona tutto
$ udevinfo -a -p /sys/path/del/device
Codice: Seleziona tutto
udevinfo -a -p /sys/block/sda/
udevinfo starts with the device the node belongs to and then walks up the
device chain, to print for every device found, all possibly useful attributes
in the udev key format.
Only attributes within one device section may be used together in one rule,
to match the device for which the node will be created.
device '/sys/block/sda' has major:minor 8:0
looking at class device '/sys/block/sda':
SUBSYSTEM=="block"
SYSFS{dev}=="8:0"
SYSFS{range}=="16"
SYSFS{removable}=="1"
SYSFS{size}=="1965056"
SYSFS{stat}==" 1 0 8 72 0 0 0 0 0 72 72"
follow the "device"-link to the physical device:
looking at the device chain at '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8/ 1-8:1.0/host0/target0:0:0/0:0:0:0':
BUS=="scsi"
ID=="0:0:0:0"
DRIVER=="sd"
SYSFS{device_blocked}=="0"
SYSFS{iocounterbits}=="32"
SYSFS{iodone_cnt}=="0xb"
SYSFS{ioerr_cnt}=="0x2"
SYSFS{iorequest_cnt}=="0xb"
SYSFS{max_sectors}=="240"
SYSFS{model}=="JUMPDRIVE SPORT "
SYSFS{queue_depth}=="1"
SYSFS{queue_type}=="none"
SYSFS{rev}=="3000"
SYSFS{scsi_level}=="3"
SYSFS{state}=="running"
SYSFS{timeout}=="30"
SYSFS{type}=="0"
SYSFS{vendor}=="LEXAR "
looking at the device chain at '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8/ 1-8:1.0/host0/target0:0:0':
BUS==""
ID=="target0:0:0"
DRIVER=="unknown"
looking at the device chain at '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8/ 1-8:1.0/host0':
BUS==""
ID=="host0"
DRIVER=="unknown"
looking at the device chain at '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8/ 1-8:1.0':
BUS=="usb"
ID=="1-8:1.0"
DRIVER=="usb-storage"
SYSFS{bAlternateSetting}==" 0"
SYSFS{bInterfaceClass}=="08"
SYSFS{bInterfaceNumber}=="00"
SYSFS{bInterfaceProtocol}=="50"
SYSFS{bInterfaceSubClass}=="06"
SYSFS{bNumEndpoints}=="02"
2- in teoria con le ultime release di udev _NON_ dovresti inserire le tue regole in udev.rules ma in un file specifico che venga eseguito _PRIMA_ di udev.rules: udev cerca tra le varie regole ed adotta la prima regola applicabile che trova!
M
Ciao, grazie per l'aiuto il problema era il punto 2...
io mettevo le regole in coda a udev.rules, ho invece creato un nuovo file hd.rules con le regole per ipod, hd ed il resto e tutto funziona.
BUS=="usb", SYSFS{product}=="iPod", NAME="%k", SYMLINK+="ipod%n"
mi crea il dev /dev/ipod che altro non è che un link simbolico all'sd* di turno.
Emanuele
io mettevo le regole in coda a udev.rules, ho invece creato un nuovo file hd.rules con le regole per ipod, hd ed il resto e tutto funziona.
BUS=="usb", SYSFS{product}=="iPod", NAME="%k", SYMLINK+="ipod%n"
mi crea il dev /dev/ipod che altro non è che un link simbolico all'sd* di turno.
Emanuele
