[Pluto-help] moduli

Marco Cova giardini a libero.it
Mar 20 Ago 2002 20:19:55 CEST


On Tue, Aug 20, 2002 at 03:14:34PM +0200, Mauro Soligo wrote:
> > Scusa, ma ho letto le varie risposte e mi sembra che ci sia un pò di
> > confusione, devi far caricare un modulo o  far partire un un demone?
> 
> caricare un modulo.
> 
> > Se la risposta è modulo devi mettere il nome dello stesso nel file
> > /etc/modules.conf se non è così allora non ho capito io....
> 
> solo il nome? cioè mi metto alla fine del file e uno per ogni riga metto il 
> nome di tutti i moduli che voglio caricare?
> 
> Altra cosa, se voglio che modules.conf mi carichi moduli differenti a seconda 
> del kernel che uso come posso fare? pensavo ad una sorta di switch case 
> all'interno dello stesso modules.conf, sarebbe la soluzione che mi piace di 
> più, ma non so se sia possibile...

Mmmh, no. Le cose funzionano piu' o meno cosi':

il kernel ha bisogno di una certa feature, tipo supporto per
dispositivi SCSI e questo non e' stato compilato dentro al
kernel. Anziche' far fallire l'operazione, il kernel manda in esecuzione
modprobe -s -k id-della-feature, nell'esempio block-major-8.

A questo punto entra in gioco modprobe, che legge il file di
configurazione /etc/{modules.conf,conf.modules} e cerca una linea del
tipo
alias block-major-8 my_scsi_module
e cerca di caricare il modulo my_scsi_module. Se non trova quello
riprova con un module di nome block-major-8.

Ergo, devi scoprire qual e' l'id-della-feature nel tuo caso e inserire
una apposita linea nel file di configurazione di modprobe, come
sopra. 

Di solito non serve alcun if/switch statement perche' modprobe di
default cerca i moduli da  caricare nella directory
/lib/modules/`uname -r`. Se questo non fosse sufficiente, puoi avere
tanti modules-`uname -r`.conf (ad esempio) quante sono le versioni del
kernel che pensi di voler boottare e tenere modules.conf come un link
alla versione corretta (si', piu' o meno come succede per il file
/boot/System.map: vedi gli script di inizializzazione per vedere come
fare).

HTH,
Marco

PS: per maggiori info sul meccanismo usato dal kernel per mandare in
esecuzione modprobe (piuttosto interessante in verita'), si puo'
vedere:
$(linux)/kernel/kmod.c
$(linux)/kernel/Documentation/modules.txt
http://www.xml.com/ldd/chapter/book/ch11.html 
$(linux)/net/socket.c per un esempio su come usare request_module()








More information about the pluto-help mailing list