Orangeek, the original hand-drawn mascot

orangeek's blog

no more 'grep sd /var/log/messages' !

6 Comments

eheh. ieri ho provato a far funzionare il lettore mp3 di mio fratello su Linux; va una meraviglia (anche se io avrei preferito un ipod shuffle) ed e' molto piccolo. dopo aver verificato la compatibilità col pinguino, mio frate mi ha chiesto di installargli il software per Win per poter caricare i brani. ovviamente ho deciso di farlo con linux, ma dovevo trovare un modo semplice per farglielo usare. e ho scoperto udev.la menata infatti dei dispositivi removibili è che ogni volta che viene inserito un dispositivo di tipo sd* (penne usb, compact flash, macchine fotografiche, etc), il kernel gli assegna un nome senza riaggiornare la lista. ad es, infilo la nikon e gli assegna il nome 'sda', stacco la macchina fotografica e attacco il lettore mp3 e questo diventa 'sdb' e così via. come il buon vecchio insegna, è sufficiente dare un bel
tail /var/log/messages | grep sd

e si svela l'arcano, vedendo il nome assegnato dal kernel.
non è fattibile per mio fratello (e mi rompe anche a me un po' :) per diverse ragioni: dalla password di root richiesta alla ricerca nel log. soluzione? udev!
l'ho installato e ho riavviato il computer: primo effetto...X.org non partiva perchè non trovava il modulo (closed) nvidia! controllo in /dev (in questa dir, dopo l'installazione di udev, vengono inseriti solo i device creati da questo tool; se controllate bene, vedrete in /.dev/ ci sono i vecchi device) e non trovo nessuno dei device nvidia. la prima cosa che faccio è copiarli da /.dev/ e il tutto funziona. cercando con google, trovo questa pagina che spiega il tutto: il modulo closed nvidia non si annuncia al kernel e quindi udev non ne crea i device. la soluzione può essere o di installare i driver dal pacchetto debian, o patchare la release ufficiale ovvero inserire uno script in /etc/init.d/ . io ho seguito quest'ultima e funziona.
Dopodichè volevo vedere come usare il 'persistent naming' di udev: con questa funzione, è possibile dare sempre lo stesso nome ad un certo device creando il file ad hoc in /dev/ al momento dell'inserimento. il device è riconosciuto in base a delle udev.rules contenute in /etc/udev/rules.d/udev.rules [debian], nelle quali si inseriscono chiavi del tipo "costruttore", "modello" e "bus".
beh, ora monto device del tipo /dev/usb_pen /dev/cflash /dev/nikon e così via.
udev rulez!
UPDATE: allora, mi sono accorto che non è tutto rose e fiori. prima cosa: dalla versione debian 0.054-3 di udev non esiste più la dir /.dev/ ma viene creata in /dev/.static/dev. Me ne sono accorto perchè ho provato ad aggiornare LILO, nel quale ho un kernel 2.6.3 che deve avviarsi con root=/dev/hde2, indicando il disco sata. L'attuale kernel (2.6.9), però, chiama il device /dev/sda2 e LILO va in fatal perchè, giustamente, udev non ha creato nessun file /dev/hde2 perchè per lui quel device non esiste. ho risolto facendo un link con

ln -s /dev/.static/dev/hde2 /dev/hde2

installando poi il LILO. questo è il problema minore.
l'altro problema, come segnalato nel link più sopra sul persistent naming, è con ALSA: udev non ha il tempo di creare i device audio al boot e quindi, per alcune applicazioni come mplayer  e skype, sono costretto ad utilizzare i device in /dev/.static/dev/ . il problema penso sia relativo al fatto che sono configurate, mio malgrado, due schede audio: una è la sb live! e l'altra quella del tv tuner. nel portatile, infatti, sempre con debian+alsa+udev, vengono correttamente creati i device /dev/dspN e /dev/mixerN. non sono ancora riuscito a risolvere il problema. il consiglio indicato nel link non funziona. Non torno indietro, rimuovendo udev, perchè lo trovo comunque comodo. alla fine, per skype e per mplayer si tratta di linkare un file...niente di trascendentale. potrei anche farlo automaticamente al boot e rizzati. in bocca al lupo!

Written by orangeek

Tuesday 15 March 2005 at 11:27 AM

Posted in tech

6 Comments

  1. Non sapevo tu avessi un simpatico blog! Bene, ora che lo so ti aggiungo ai miei preferiti....ciao dottò!
    Mora

    ì Mora

    Wednesday 16 March 2005 at 2:05 PM

  2. uh... bravo bravo! consultalo spesso...

    orangeek

    Wednesday 16 March 2005 at 2:13 PM

  3. ho visto anche il tuo blog: molto interessante! lo metterò nel menu dei links: avviso tutti però che NON è visibile correttamente con internet explorer che lo interpreta male. se volete, visualizzate il mio sito con un browser decente! get firefox!

    orangeek

    Wednesday 16 March 2005 at 2:25 PM

  4. Salve! Ho avuto esattamente lo stesso problema con ALSA e udev e
    tre (nel mio caso) schede audio: la sb live!, quella integrata nella mb e quella del tv tuner. All'avvio, non so perché, udev mi riconosceva solo le ultime due, quando quella che uso realmente è la sb live!
    Ho risolto mettendo in /etc/hotplug/blacklist i moduli delle due schede incriminate (che non uso se non di tanto in tanto): nel mio caso specifico si tratta di snd_cmipci e snd_bt87x.
    In questo modo udev carica correttamente il modulo della sound blaster e all'occorrenza posso sempre fare un modprobe degli altri due, che in tal caso vengono anche visualizzati correttamente nello gnome-alsamixer.
    Potresti dare qualche dritta in più su come configurare il persistent naming? Basta un esempio. Ho dato un'occhiata alla manpage di udev ma non ci ho capito molto.
    Grazie.

    Mau

    Wednesday 11 May 2005 at 4:30 PM

  5. Per quanto riguarda il persistent naming, ho risolto leggiucchiando quest'ottima guida:

    http://www.reactivated.net/writing_udev_rules.html

    Mau

    Thursday 12 May 2005 at 7:41 PM

  6. ciao Mau. sembra che tu abbia risolto come sfruttare il persistent naming...giusto? altrimenti sentiamoci per mail e ti dico come ho fatto. la mia mail e' antani at gmail dot com.

    orangeek

    Saturday 14 May 2005 at 4:37 PM

Comments are closed.