[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux_var] Kernel e HW
Quanto già scritto a volte può non essere sufficiente.
Ho fatto alcune ricerche, ho trovato ad esempio questo sito:
http://cateee.net/lkddb/
oppure questo articolo:
http://www.ossblog.it/post/3399/e-nato-il-linux-kernel-driver-database
Devo dire che però non esiste (o non l'ho ancora trovato!) un vero e proprio
database, magari online, con una bella funzione di ricerca...
Analizzando alcuni elementi del primo sito, in particolare del web-lkddb alla
seguente pagina:
http://cateee.net/lkddb/web-lkddb/
ho notato che alla fine le informazioni derivano da tutti i file
denominati "Kconfig" che all'interno del kernel contengono gli help
che poi vediamo nei vari "make menuconfig", "make xconfig", ecc, ecc...
A volte alcuni device sono elencati in tali descrizioni, ma non sempre
corrispondono ai nomi a cui si arriva tramite la funzione di ricerca di
xconfig che ho indicato nella mia prima risposta ad Antonello.
Vi faccio un esempio: se dobbiamo cercare la scheda "3com 3C339" e
digitiamo "3C339" nella funzione di ricerca che ho citato, non trova niente,
ma... se guardiamo nell'help della scheda "3com 3C359" leggiamo quanto segue:
"This is support for the 3Com PCI Velocity XL cards, specifically
the 3Com 3C359, please note this is not for the 3C339 cards, you
should use the tms380 driver instead."
Adesso sappiamo che per la "3C339" dobbiamo usare il driver "tms380", ma...
come risalire a questo?
Possiamo farlo con una funzione di ricerca che ci vada a cercare quanto
vogliamo trovare nei vari "Kconfig".
Perciò in attesa che qualcuno faccia un database come si deve (o di trovarlo
se già esiste!) possiamo sfruttare la grandissima potenza della nostra shell!
Come? Entrando nella directory del kernel che vorremo analizzare e digitando
la seguente stringa:
find . -iname 'konfig' | xargs grep -i nome_che_cerchiamo
ovviamente "nome_che_cerchiamo" è ciò che ci interessa cercare.
Preciso che grazie alle opzioni "-iname" di "find" e "-i" di "grep" la ricerca
non è sensibile alle maiuscole e alle minuscole (case insensitive).
Comunque, questa funzione ci restituirà tutte quelle stringhe e i
relativi "Kconfig" in cui è elencata la descrizione di quanto ci interessa.
Facendo un esempio sulla scheda prima citata, possiamo digitare:
find . -iname 'kconfig' | xargs grep -n 3C339
il risultato sarà:
./drivers/net/tokenring/Kconfig:72: the 3Com 3C359, please note this is
not for the 3C339 cards, you
che è ne più e ne meno una delle righe dell'help della scheda 3C359 di xconfig
del kernel che ho riportato sopra! ;)
A questo punto potremo visualizzare tutto il
file " ./drivers/net/tokenring/Kconfig", e andando direttamente alla linea
indicata "72" troveremo esattamente quanto scritto nell'help.
Possiamo poi usare la stessa funzione per cercare ulteriori informazioni (se
ci sono) nella documentazione vera e propria del kernel (la directory
Documentation).
Partendo sempre dalla directory del kernel, possiamo digitare:
find Documentation -iname '*.txt' | xargs grep -i nome_da_cercare
stesso discorso di prima, se trova qualcosa visualizziamo il o i file e
leggiamo quanto ci interessa.
In totale, il consiglio è quello di usare prima la ricerca normale di xconfig
del kernel (vedere il mio primo messaggio ad Antonello), se non si trova
niente passare ai metodi che ho elencato in questo messaggio.
Se poi qualcuno sa o trova qualcosa di più efficace si faccia avanti... :-)
PS: se ritenete che questo messaggio sia particolarmente interessante ditelo,
così lo inserisco nella documentazione del nostro sito.
--
bye :-)
Gigi aka Wolf
--
Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
Archivi web e configurazione: http://ml.linuxvar.it/ml/