Pagina 1 di 1

udev NAME no, SYMLINK si ....

Inviato: dom 16 mag 2010, 19:51
da shoshin
Buonasera,

ho seguito sia la guida sul wiki che altre guide sparse sulla rete in merito alla creazione delle regole per udev, ma il problema che mi si pone, mi lascia talmente spiazzato che non trovo alcun rimedio che aprire una discussione sul forum.
Premesso che la pennina usb funziona regolarmente, e per predefinito, l' udev le associa il file /dev/sdb1, io ho voluto creare una banalissima regola che mi permetta di raggiungere tale archivio tramite un suo nome dedicato. Ho creato quindi la seguente regola:

SUBSYSTEM=="usb", ATTRS{idVendor}=="13fe", ATTRS{manufacturer}=="Kingston", ATTRS{serial}=="5B740399F173", NAME="kingstone4gb"

i cui valori delle chiavi di matching li ho opportunamente raccolti tramite il comando udevadm info -a -p /sys/block/sdb
lancio /etc/rc.d/rc.udev reload , reinserisco la pennina, ma niente il file /dev/kingstone4gb non me lo crea e nemmeno mi restituisce alcun errore.... :-k

La cosa che mi lascia sconcertato è il fatto che se io sostituisco la chiave di assegnazione con un SYMLINK, questo me lo crea. Tramite questo però non soddisfo il mio desiderio, in quanto se provo a montare dal link che mi ha creato, mi dà errore dicendomi:

mount: /dev/bus/usb/002/006 is not a block device

Grazie in anticipo

Re: udev NAME no, SYMLINK si ....

Inviato: dom 16 mag 2010, 20:33
da neongen
a occhio e croce mi pare che nella regola non distingui le partizioni: prova NAME="kingstone4gb%n"

Re: udev NAME no, SYMLINK si ....

Inviato: dom 16 mag 2010, 20:42
da shoshin
ho scoperto solo ora che modificando il file della mia regola da

/etc/udev/rules.d/10-mieregole.rules a /etc/udev/rules.d/90-mieregole.rules

mi ha creato finalmente il file /dev/kingstone4gb , ma non riesco a montarlo in quanto mi dà l'errore di prima

mount: /dev/kingstone4gb is not a block device .... #-o

anche con il tuo consiglio, non mi cambia nulla...

grazie lo stesso però!! :)

Re: udev NAME no, SYMLINK si ....

Inviato: dom 16 mag 2010, 21:13
da targzeta
L'errore l'hai risolto, comunque generalmente si suggerisce di creare il link simbolico al nome che altre regole stabiliscono. Se funziona il mount al device funziona anche il mount al link simbolico. Il link però dev'essere alla partizione e non al device, quello che hai fatto tu è cambiare il nome a sdb e non a sdb1.

Emanuele

Re: udev NAME no, SYMLINK si ....

Inviato: mer 19 mag 2010, 0:11
da shoshin
Ok, diciamo che ti ho capito, ma in parte ... :(

allora ho seguito il tuo consiglio di creare il link simbolico, e ho capito che questo deve essere alla partizione...ma faccio ancora confusione a decifrare gli attributi del dispositivo Quando lancio il comando udevadm -a -p /sys/block/sdb

trovo la chiave di matching KERNEL="sdb" nella sezione device /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb , ma i vari ATTR ( {manufacturer} {product} e {serial} ) li trovo nella sezione del parent device /devices/pci0000:00/0000:00:1d.7/usb2/2-1 dove però la voce KERNEL mi riporta "2-1" ....

altra domanda... e se io ho già collegata un' altra chiavetta, alla quale è stato rilasciato già il dispositivo sdb1, allora udev dovrà passargli sdc1 .... ma in questo caso la regola per creare il mio link simbolico, come la dovrei creare? come faccio a prevedere che sd? mi verrà rilasciato????

Grazie mille per l'aiuto

Re: udev NAME no, SYMLINK si ....

Inviato: mer 19 mag 2010, 8:29
da targzeta
Infatti tu non ti devi basare sul device ma sugli attributi propri della pennina. Ti posto due esempi presi dalle mie regole:

Codice: Seleziona tutto

# La partizione dell'HD esterno della Maxtor
KERNEL=="sd?1", DRIVERS=="usb", ATTRS{manufacturer}=="Maxtor  ", ATTRS{serial}=="2HB52GMY    ", SYMLINK="hd_ext_maxtor"
Come vedi io matcho la prima (e unica) partizione del mio HD esterno indipendentemente dal device al quale viene collegato.

Codice: Seleziona tutto

# Le 4 partizioni dell'HD esterno della JMicron
KERNEL=="sd?[1-4]", DRIVERS=="usb", ATTRS{manufacturer}=="JMicron", ATTRS{serial}=="D40968418FFF", SYMLINK="hd_ext%n"
In questo caso l'HD ha 4 partizioni e uso il '%n' per creare un link simbolico a partizione, questa regola mi crea 4 link:
  • hd_ext1
  • hd_ext2
  • hd_ext3
  • hd_ext4
ognuno del quale riferisce alla propria partizione.

Emanuele