Una delle novità introdotte dal kernel serie 2.6 è udev che utilizza hotplug per la gestione della connessione delle periferiche.
Quando un dispositivo viene connesso, hotplug comunica l'evento a udev che in base alle regole in /etc/udev/udev.rules esegue delle operazioni.
Partiamo con un esempio concreto: supponiamo di avere due dispositivi usb, una penna usb e una macchina fotografica.
Se inseriamo la penna usb nel pc ad essa viene associato, solitamente, /dev/sda la cui prima partizione è /dev/sda1.
Dato che viene utilizzata frequentemente, creiamo una cartella per il punto di montaggio, come potrebbe essere /media/UsbHD,
poi editiamo come superutente il file etc/fstab ed aggiungiamo una riga del tipo
/dev/sda /media/UsbHD vfat (oppure auto) rw,user,noauto,sync 0 0
dopo aver salvato il file, sul desktop creiamo un'icona di collegamento ad dispositivo per montarla, in seguito,
con il semplice clic sull'icona stessa la montiamo o la smontiamo sempre tramite l'icona(nello specifico tasto destro/smonta).
Bene adesso dopo aver rimosso la penna usb facciamo la stessa cosa con la macchina fotografica, ma ci accorgiamo che alla macchina fotografica
viene assegnato sempre /dev/sda e che se inseriamo prima la penna usb e successivamente la macchina fotografica, a quest'ultima viene assegnato /dev/sdb.
Quindi non possiamo creare punti di montaggio per la penna e la macchina fotografica a meno di inserire singolarmente i dispositivi.
Dobbiamo quindi ricorrere ad udev, cioè dobbiamo andare ad aggiungere delle regole ad udev.
Controlliamo, prima di tutto, che i pacchetti udev e hotplug siano installati, successivamente installiamo sysfsutils che ci consentirà di identificare
in modo univoco la periferica (il "Device").
Fondamentalmente ci potrà servire la marca (vendor), il modello (product) o il numero di serie o di matricola (serial).
Dopo aver inserito la penna possiamo dare, come superutente,
per la marca
per il modello
per il numero di serie.
Annotiamo i valori avendo l'accortezza di utilizzare quello corretto, in caso di più risultati (per individuare quello corretto si può, ad esempio, eseguire i citati comandi col dispositivo scollegato e quindi quindi col dispositivo inserito).
Ripetiamo l'operazione per l'altro (o, eventualmente, gli altri) dispositivo.
[pagebreak]
Andiamo adesso a scrivere le nostre regole in udev.rules aggiungendo alla fina una o più righe del tipo:
BUS"scsi", SYSFS{vendor}="La marca annotata", NAME="%k", SYMLINK="usb/Penna"
BUS"usb", SYSFS{product}="Il modello annotato", NAME="%k", SYMLINK="usb/Fujifilm"
Abbiamo appena detto a udev che se il sistema rileva l'inserimento di una certa marca o di un certo modello:
a) di utilizzare il nome che sarà utilizzato (con l'opzione %k lo stesso che gli avrebbe assegnato il kernel, quindi lo lascia invariato);
di creare dentro la cartella dev/ usb/penna oppure usb/Fujifilm (nella cartella dev già esiste la cartella usb) un link simbolico al dispositivo quando lo stesso viene inserito e di cancellarlo quando viene rimosso.
Per quanto sopra, prestiamo attenzione alla marca o al modello utilizzato, per esempio sconsiglio come product "Generic Usb Device" o altre diciture generiche: in caso si abbiano due penne della stessa marca e con lo stesso modello si utilizzerà, ovviamente, il numero seriale.
Infine non ci resta che modificare il nostro fstab aggiungendo una riga per ogni dispositivo, avendo sempre l'accortezza di creare la relativa cartella in /media/
Per esempio ecco le righe interessate del mio fstab:
/dev/usb/Penna /media/UsbHD vfat rw,user,noauto,sync 0 0
/dev/usb/Fujifilm /media/Fuji vfat ro,user,noauto,sync 0 0
Adesso possiamo, finalmente, trasferire le fotografie direttamente dalla macchina fotografica alla penna Usb.
Andrea (topio1970)



Commenti
Inviato da paolo il Sab, 16/07/2005 - 17:08.
Utilissima Guida
Grazie, utilissima Guida.
Dovrebbe essere formatta un po meglio, usando i tag di formattazione opportuni, sarebbe stata molto pià leggibile
Voto: 9 (come contenuti)
Voto: 6 (per la formattazione)
Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network
Inviato da topio1970 il Dom, 17/07/2005 - 15:07.
Re: Utilissima Guida
Si mi sono un po impiccato soprattutto per quanto riguarda "a capo", daltronde è la mia prima guida
Inviato da RaSpUtIn il Sab, 05/11/2005 - 16:16.
Re: Utilissima Guida
Ciao, ho seguito passo passo la tua guida ma quando vado a montare la mia pendrive usb mi da' un errore del tipo "bad superblock or unknown filesystem type". Come posso risolvere questo problema? ti ringrazio anticipatamente
Inviato da -starnav- il Sab, 12/11/2005 - 13:23.
Re: Utilissima Guida
mi sono imbattuto nel tuo stesso problema e ho riscontrato che ci sono degli errori di scrittura nella guida, in particolare le righe da inserire nel file /etc/udev/udev.rules hanno alcuni termini privi dell'uguale
<br />BUS"scsi", SYSFS{vendor}="La marca annotata", NAME"%k", SYMLINK="usb/Penna"diventa:
<br />BUS="scsi", SYSFS{vendor}="La marca annotata", NAME="%k", SYMLINK="usb/Penna"ciao
Inviato da ferretti75 il Mar, 15/11/2005 - 16:50.
Re: Utilissima Guida
ok và tutto, ottima guida !!
un appunto e un dubbio :
appunto : se si vuole usare il seriale la stringa
<br />BUS="scsi", SYSFS{vendor}="La marca annotata", NAME="%k", SYMLINK="usb/Penna"<br />diventa :
<br />BUS="usb", SYSFS{serial}="Il numero di serie", NAME="%k", SYMLINK="usb/Penna"<br />il dubbio :
perchè, una volta inserita la penna, konqueror si apre su media:/sda invece che su /media/UsbHD ??
magic is real ... unless explicitly declared as integer
Inviato da topio1970 il Ven, 18/11/2005 - 23:14.
Re: Utilissima Guida
Mi spargo il capo di cenere per l'errore dell'uguale ma il pc da cui è stata pubblicata la guida non era lo stesso di quello su cui ho udev.rules.
PS dal kenel 2.6.13 viene abbandonato definitivamente il devsf per udev (almeno così ho letto).
Inviato da ntropia il Dom, 25/05/2008 - 08:23.
Re: Utilissima Guida
Corretto l'errore della riga riportata da -starnav-. (meglio tardi che mai)
eNjoy
Chi ha intendimento conti il numero della Bestia, perché è un numero d'uomo; e il suo numero è...
rw-rw-rw-