Problemi con udev e nomi device [RISOLTO]

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

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.
Rispondi
manublade
Linux 2.x
Linux 2.x
Messaggi: 499
Iscritto il: dom 8 gen 2006, 22:21

Problemi con udev e nomi device [RISOLTO]

Messaggio da manublade »

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
Ultima modifica di manublade il gio 17 ago 2006, 16:43, modificato 1 volta in totale.

Avatar utente
absinthe
Iper Master
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:

Messaggio da absinthe »

mi vengono in mente due cose:

1-sicuro di non aver mescolato i parametri identificativi del device? se dai

Codice: Seleziona tutto

$ udevinfo -a -p /sys/path/del/device
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:

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"
    
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

manublade
Linux 2.x
Linux 2.x
Messaggi: 499
Iscritto il: dom 8 gen 2006, 22:21

Messaggio da manublade »

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

Avatar utente
absinthe
Iper Master
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:

Messaggio da absinthe »

bene!

potresti indicare nel titolo del topic che il problema è stato risolto?
thanx,

M

Rispondi