
Compilare un solo modulo del kernel
Come molti sanno, il kernel Linux
non è un oggetto monolitico,
tutt'altro, molte sue parti sono costituite
dai cosiddetti moduli, ovvero
da elementi che possono essere attivati
o meno in base alle proprie esigenze.
I vantaggi derivanti da questo approccio
sono molteplici. In primo luogo si riducono
notevolmente le dimensioni del
kernel poiché solo le sue parti (sempre
i moduli) effettivamente necessarie al funzionamento
di una specifica configurazione
hardware/software saranno caricate
in memoria. E poi perché i singoli
moduli possono essere rimossi, ricompilati
e reinseriti anche durante il
funzionamento del sistema (a runtime).
Questa seconda possibilità permette
anche di aggiungere funzioni non presenti
nella configurazione originale, rendendo così estremamente flessibile ed
espandibile un sistema GNU/Linux. In questo
senso, segnaliamo che è addirittura
possibile compilare un solo modulo
anche senza disporre dei sorgenti
completi del kernel. Detto questo, è chiaro
che se desideriamo, ad esempio,
sperimentare un nuovo driver per far
funzionare una particolare periferica,
senza per questo dover ricompilare tutto
il kernel da zero, basta seguire le
istruzioni seguenti. Per prima cosa è
necessario procurarsi i file .h (header),
necessari alla compilazione e presenti
nei pacchetti kernel-headers. Nelle distribuzioni
che utilizzano i pacchetti DEB,
bisogna eseguire quanto segue:
apt-get install kernel-
headers-2.6.xx.yy.zz
Ovviamente, al posto delle lettere x, y
e z, bisogna inserire il numero di versione
relativo al kernel in uso: per scoprire
di quale si tratta basta eseguire il comando
uname -r. Questo stesso comando
è necessario per indicare la directory
dove i moduli sono posizionati,
che generalmente è /lib/modules/$
(uname -r)/. Questa directory va sostituita
all'interno del makefile del modulo
per fare in modo che una volta compilato
venga installato nella opportuna cartella.
La direttiva che identifica questa
posizione è generalmente KDIR (in alternativa
il modulo può essere copiato
manualmente nella directory di destinazione).
A questo punto, non rimane che
eseguire i comand make e make install
per compilare i modulo. Infine, non resta
che caricarlo utilizzando i comandi modprobe
o insmod (questi ultimi richiedono
i privilegi di amministratore).