Avanti Indietro Indice

9. Moduli

I moduli caricabili del kernel possono far risparmiare memoria e facilitare la configurazione. Lo scopo dei moduli è cresciuto fino ad includere filesystem, driver per schede ethernet, driver per dispositivi a nastro, driver per la stampante e altro.

9.1 Installare le utility per i moduli

Le utility per i moduli sono disponibili nello stesso posto dove si sono presi i sorgenti del proprio kernel come modutils-x.y.z.tar.gz; si scelga il più alto livello di patch x.y.z che sia minore o uguale a quello del proprio kernel corrente. Le si decomprima con `tar zxvf modutils-x.y.z.tar.gz', si faccia cd nella directory creata (modutils-x.y.z), si legga il file README e si seguano le istruzioni di installazione (che solitamente qualcosa di semplice, come un make install). Ora si dovrebbero avere i programmi insmod, rmmod, ksyms, lsmod, genksyms, modprobe e depmod in /sbin. Se si vuole si verifichino le utility con il driver di esempio ``hw'' nella directory insmod; si veda il file INSTALL in quella sottodirectory per i dettagli.

insmod inserisce un modulo dentro un kernel in esecuzione. I moduli solitamente hanno un'estensione .o; il driver di esempio summenzionato è chiamato drv_hello.o, così per inserirlo uno dovrebbe usare `insmod drv_hello.o'. Per vedere i moduli che il kernel sta attualmente usando si usi lsmod. L'output è simile a questo:

    blah# lsmod
    Module:        #pages:  Used by:
    drv_hello          1
`drv_hello' è il nome del modulo, usa una pagina (4k) di memoria e al momento nessun'altro modulo del kernel ne dipende. Per rimuovere questo modulo, si usi `rmmod drv_hello'. Si noti che rmmod vuole un nome di modulo, non un nome di file; lo si prenda dall'elenco di lsmod. Lo scopo delle altre utility per i moduli è documentato nelle relative pagine man.

9.2 Moduli distribuiti con il kernel

Dalla versione 2.0.30, praticamente qualsiasi cosa è disponibile come modulo caricabile. Per usarli, per prima cosa ci si assicuri di non configurarli dentro il kernel; ovvero, non si risponda y ad essi durante il `make config'. Si compili un nuovo kernel e si riavvii. Poi, si faccia ancora cd in /usr/src/linux e si esegua un `make modules'. Questo compila tutti i moduli che si sono specificati nella configurazione del kernel e mette dei link ad essi in /usr/src/linux/modules. Li si può usare direttamente da quella directory o eseguire `make modules_install', che li installa in /lib/modules/x.y.z, dove x.y.z è la versione del kernel.

Questo può essere utile specialmente con i filesystem. Si potrebbero non usare frequentemente i filesystem minix o msdos. Per esempio, se incappo in un dischetto msdos, potrei fare insmod /usr/src/linux/modules/msdos.o e poi rmmod msdos quando ho finito. Questa procedura fa risparmiare circa 50k di RAM nel kernel durante le normali operazioni. Un piccola nota al contorno per il filesystem minix: si dovrà sempre configurarlo direttamente dentro il kernel per l'uso nei dischetti di ripristino.


Avanti Indietro Indice