Visto che sto scrivendo un po’ di guide, e non ho voglia tutte le volte di spiegare come caricare un modulo, caricarlo all’avvio o disabilitarlo… Lo scrivo qui che faccio prima.
Nota: questa guida vale con tutte le versioni di linux che usano i module-init-tools (dalla versione 2.5.48 in poi, insomma).
I moduli sono parti di codice del kernel esterne dalla parte principale del codice (la parte monolitica). Rispetto al codice incluso nel kernel hanno il vantaggio di poter essere caricati¹ dinamicamente, anche più volte per modulo.
Un kernel prevalentemente modulare permette il caricamento delle sole parti di codice necessarie al nostro sistema, evitando sprechi di memoria e velocizzando l’accensione della macchina.
Al contrario un kernel più monolitico risulta più “grosso” e lento da avviare.
Tutto questo a parità di quantità di codice. Se si includono solo le parti che servono per la singola macchina nella compilazione di un kernel monolitico il consumo di memoria e la velocità di avvio vengono ottimizzati, soprattutto se si elimina l’esigenza del initrd². Perdendo ovviamente la flessibilità di un kernel modulare. Peccato che l’unico metodo per avere un kernel (più) monolitico sia ricompilarlo. Per ovvi motivi di compatibilità i kernel rilasciati dalle distribuzioni contengono la maggior parte dei driver sotto forma di modulo, per avere la compatibilità con un parco macchine maggiore.
Caricare e rimuovere un modulo
Per caricare un modulo asta fare il comando
sudo modprobe nomemodulo
Per rimuovere un modulo basta fare
sudo modprobe -r nomemodulo
Ovviamente sudo serve per diventare superutente, se si è già superutente basta non metterlo all’inizio del comando.
La lista dei moduli caricati
Per vedere i moduli caricati al momento basta fare il comando lsmod, magari in pipe (|) con less (per scorrere meglio la lista) o grep filtro (per vedere solo parte dell’output tramite un filtro).
Caricarli all’avvio
Bisogna aggiungere il nome del modulo al file /etc/modules.
La sintassi del file è:
#eventuali commenti nomemodulo1 nomemodulo2
Basta accodare il nome del modulo nel file e al prossimo avvio verrà caricato in automatico.
La lista nera
Per evitare che un modulo si carichi automaticamente all’avvio basta accodarlo al file /etc/modprobe.d/blacklist.conf.
La sintassi del file è:
#eventuali commenti blacklist modulochenonvuoi blacklist altromodulononvoluto
Al prossimo avvio i moduli selezionati non dovrebbero caricarsi³.
Note
1. O rimossi.
2. Init Ram Disk, una piccola immagine che viene caricata nella ram all’avvio, contenente i moduli principali che servono per l’avvio del sistema.
3. Non sempre mi è funzionato, probabilmente se il modulo è caricato da altri programmi o script tramite modprobe (per ovvi motivi) non funziona… Soprattutto a me non va quando provo ad eliminare il modulo lp, quello della “porta stampante”…

Pubblicato da Roberto Mazzoleni 
