I moduli caricabili del kernel possono far risparmiare memoria e facilitare la configurazione. Lo scopo dei moduli è cresciuto fino a includere filesystem, driver per schede Ethernet, driver per dispositivi a nastro, driver per la stampante e altro.
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 entri nella directory
creata (modutils-x.y.z
), si legga il file README
e
si seguano le istruzioni di installazione (solitamente qualcosa di
semplice, come 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 dipende da esso. 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 di man.
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 cd /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 a 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. È probabile che non si faccia
uso frequente dei filesystem minix o msdos. Per esempio, per un dischetto msdos, si
può fare insmod /usr/src/linux/modules/msdos.o
e poi rmmod msdos
quando
si è finito. Questa procedura fa risparmiare circa 50Kb 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 usarlo sui dischetti
di ripristino.