|
|
Riga 1: |
Riga 1: |
| == Disclaimer ==
| | Grazie tindal per l'auito ;-). Me ne sono accorto solo quando editavo la pagina, ma � stata una bella sorpresa. |
|
| |
|
| Questa guida guida si prefigge di raccogliere informazioni riguardo udev, la sua configurazione e il suo utilizzo dal punto di vista dell'utente su sistemi Debian GNU/Linux.
| | Pensi che si possa de-stubbizzare adesso? |
|
| |
|
| Molte delle informazioni sono tratte (e tradotte) da <tt>/usr/share/doc/udev/</tt>. Si prega di correggere o segnalare ogni possibile (e probabile) inesattezza.
| | : [[Utente:TheNoise|~ The Noise]] 14:49, Nov 10, 2005 (EST) |
|
| |
|
| == Cos'� udev ==
| | figurati, l'avevo trovato tra le modifiche recenti e leggendolo ho visto che non avevi finito di tradurre... ;-) |
| | vorrei mettere qualche nota sul funzionamento di udev e sul suo stato attuale. c'� un file nel pacchetto udev che � un capolavoro ;-) (/etc/udev/link.conf) e che rende benissimo l'dea di quanto sia incompiuto udev, oltre a dare la chiave per crearsi dei workaround customizzati, e vorrei descriverlo. |
| | appena ho tempo lo faccio. |
| | comunque mi sembra che la guida quantomeno stia in piedi anche cos� com'�, quindi toglierei "stub" |
|
| |
|
| In parole povere, udev � il metodo usato dai kernel 2.6 per creare i device file (quelli in /dev) per le periferiche presenti sul sistema. Tramite delle regole (udev rules) si possono assegnare nomi fissi a determinati dispositivi (a prescindere, ad esempio, dalla porta usata per collegare la periferica). Inoltre � possibile richiamare un certo programma/script non appena un dispositivo viene riconosciuto dal sistema.
| | mi dici come fate a scrivere la data di fianco al nome in quel modo? io incollo l'output di "date" ma non � cos� bello :P |
|
| |
|
| Il vecchio sistema, usato prima di udev, si chiama devfs e creava staticamente tutti i device file possibili in <tt>/dev</tt>.
| | : [[Utente:tindal| tindal]] gio nov 10 21:47:19 CET 2005 |
|
| |
|
| Udev non si occupa tuttavia di caricare i moduli necessari al funzionamento del dispositivo, infatti questi devono essere gi� caricati per permettere ad udev di riconoscere la periferica e creare il corrispondente device file.
| | il codice � il seguente: |
| | <nowiki>~~~</nowiki> per il nick |
| | <nowiki>~~~~</nowiki> per il nick + la data |
| | <nowiki>~~~~~</nowiki> per la data ;-) |
|
| |
|
| Sulla stable ('''sarge''') udev viene usato in accoppiata con Hotplug che si occupa di caricare i driver delle periferiche.
| | : [[Utente:MaXeR|MaXeR]] 12:08, Nov 13, 2005 (EST) |
|
| |
|
| In '''etch''' (attuale testing) e '''sid''' udev ha invece sostituito anche Hotplug.
| | yeah!! |
| | | :[[Utente:Tindal|Tindal]] 18:01, Nov 14, 2005 (EST) |
| Questa guida � dedicata alla versione di udev attualmente in etch.
| |
| | |
| == Il nuovo udev ==
| |
| | |
| Dalla versione 0.070 in puoi udev ha sostituito completamente hotplug. I driver delle periferiche vengono caricati tutti automaticamente durante il boot. Per fare un esempio, se al boot vengono trovate delle porte usb, verr� automaticamente caricato il modulo <tt>usb-storage</tt> che permetter� (tra le altre cose) di usare eventuali chiavette usb.
| |
| | |
| Per usare questa versione di udev � necessario un kernel 2.6.12 o superiore con le opzioni hotplug (CONFIG_HOTPLUG) e tmpfs (CONFIG_TMPFS) attivate. Le opzioni CONFIG_PNP, CONFIG_ISAPNP, CONFIG_PNPBIOS e CONFIG_PNPACPI sono altamente raccomandate per consentire il caricamente automatico di importanti driver.
| |
| | |
| A partire dal kernel 2.6.15-rc1 � stata introdotta la nuova implementazione del driver model, la quale presenta nuove feature e una maggiore organizzazione dei contenuti di sysfs. Per gestire correttamente i vari dispositivi � quindi obbligatorio dotarsi di una versione di udev pari o superiore alla 0.071.
| |
| | |
| Il pacchetto hotplug deve essere rimosso manualmente, anche se non dovrebbe creare problemi se restasse installato.
| |
| | |
| Si pu� disabilitare udev aggiungendo al boot il parametro del kernel <tt>UDEV_DISABLED=yes</tt> in grub o lilo. Alternativamente si pu� configurare in <tt>/etc/udev/udev.conf</tt> una directory diversa da <tt>/dev</tt> per la creazione dei device file.
| |
| | |
| == Come funziona udev ==
| |
| Quando un driver viene caricato, rende disponibili delle informazioni in <tt>/sys</tt> e udev viene eseguito per leggerle e creare il device file appropriato.
| |
| | |
| Quando si collega una nuova periferica viene generato un evento di hotplug che viene intercettato non pi� da <tt>/sbin/hotplug</tt> bens� da <tt>/sbin/udevsend</tt> (il gestore degli eventi hotplug � indicato in <tt>/proc/sys/kernel/hotplug</tt>).
| |
| | |
| Questo significa che:
| |
| * i moduli non possono essere caricati su richiesta quando un'applicazione cerca di aprire un suo dispositivo, perch� il dispositivo non c'� ancora!
| |
| | |
| * poich� i moduli non vengono caricati su richiesta, se per qualche motivo i driver non possono essere caricati automaticamente durante il boot, bisogner� aggiungerli ad /etc/modules (oppure usare modconf ;-)).
| |
| | |
| * alcuni moduli non sono dei driver di un dispositivo e non possono essere caricati automaticamente da udev, devono quindi essere elencati in /etc/modules anch'essi.
| |
| | |
| * alcuni driver non sono stati ancora portati su sysfs, e udev non sar� in grado di creare i loro device. Se si usa uno di questi driver � necessario creare il device dopo ogni boot.
| |
| | |
| In altre parole, su un tipico sistema si potrebbero dover caricare manualmente (usando /etc/modules) dei moduli come ppdev e tun.
| |
| | |
| == Da hotplug a udev ==
| |
| | |
| Nel passaggio da hotplug a udev i seguenti file di configurazione sono diventati obsoleti:
| |
| | |
| ; <tt>/etc/hotplug/*.rc</tt> e <tt>*.agent</tt>: i vecchi file di hotplug non vengono pi� usati. Le regole di udev in <tt>/etc/udev/rules.d/</tt> possono essere usate per disabilitare selettivamente il coldplugging.
| |
| | |
| ; <tt>/etc/hotplug/usb/*.usermap</tt>: devono essere sostituiti da regole udev.
| |
| | |
| ; <tt>/etc/hotplug/blacklist*</tt>: dovrebbero essere sostituite da direttive di configurazione di modprobe (ma per adesso modprobe processer� <tt>/etc/hotplug/blacklist.d/</tt>).
| |
| | |
| Inoltre dalla versione 0.072:
| |
| | |
| * tutti i file in <tt>/etc/udev/scripts/</tt> and <tt>/lib/hotplug/</tt> e alcuni file in <tt>/sbin/</tt> sono stati spostati in <tt>/lib/udev/</tt>. Non dimenticate di aggiornare le regole personalizzate, se ne avete create.
| |
| | |
| == La directory <tt>/etc/udev/rules.d/</tt> ==
| |
| | |
| I file vengono letti e processati in ordine alfabetico, e le direttive contenute nelle regole vengono applicate in ordine. Le uniche eccezioni sono gli attributi NAME, di cui viene considerato solo il primo.
| |
| | |
| Poich� l'ordine � importante, alcuni di questi file hanno un nome particolare, per far s� che vengano letti prima o dopo di altri, e devono essere opportunamente considerati quando si aggiungono regole personalizzate.
| |
| | |
| Fino ad ora sono stati definiti:
| |
| | |
| ; <tt>020_permissions.rules</tt>: imposta proprietario e permessi di default.
| |
| | |
| ; <tt>z50_run.rules</tt>: viene eseguito <tt>$REMOVE_CMD</tt>, e successivamente l'elaborazione dei device tty viene fermato con <tt>last_rule</tt>.
| |
| | |
| ; <tt>z70_hotplugd.rules</tt>: le opzioni di <tt>last_rule</tt> finiscono di processare gli eventi hotplug riguardanti "drivers" e "module" e vengono eseguiti i vecchi script in <tt>hotplug.d/</tt> e <tt>dev.d/</tt>.
| |
| | |
| L'uso di <tt>/etc/udev/rules.d/</tt> da parte di altri pacchetti � fortemente sconsigliato, eccetto quando si aggiungono solamente regole RUN.
| |
| | |
| == Link ==
| |
| | |
| Altri link di approfondimento:
| |
| * [http://www.debian-administration.org/articles/126 Card Readers and USB keys using udev]
| |
| * [http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html udev Homepage]
| |
| * [http://www.reactivated.net/udevrules.php Writing udev rules]
| |