Introduzione

Il kernel di Linux è il componente principale del sistema operativo Linux. Gestisce le risorse del sistema ed è un ponte tra l'hardware e il software del tuo computer.

Il kernel di Linux ha un design modulare. Un modulo del kernel, o spesso indicato come driver, è un pezzo di codice che estende la funzionalità del kernel. I moduli sono compilati come moduli caricabili o integrati nel kernel. I moduli caricabili possono essere caricati e scaricati nel kernel in esecuzione su richiesta, senza la necessità di riavviare il sistema.

Generalmente, i moduli vengono caricati su richiesta da udev (Gestione dispositivi). Tuttavia, a volte potrebbe essere necessario ottimizzare la modalità di caricamento dei moduli. Ad esempio, potrebbe essere necessario caricare un modulo con parametri aggiuntivi o per impedire il caricamento automatico di un modulo.

Puoi caricare manualmente un modulo nel kernel usando il comando modprobe, o automaticamente all'avvio usando i file /etc/modules o /etc/modules-load.d/*.conf.

In questo articolo, spiegheremo come usare modprobe per aggiungere e rimuovere moduli dal kernel Linux. modprobe fa parte di kmod un binario che implementa più programmi usati per gestire i moduli del kernel Linux.

Aggiungere moduli del kernel

I moduli del kernel sono memorizzati nella directory /lib/modules/<kernel_version>. Trovi la versione del kernel in esecuzione, usa il comando uname -r.

Solo gli utenti con privilegi di amministratore possono gestire i moduli del kernel.

Per caricare un modulo, invoca il comando modprobe seguito dal nome del modulo:

modprobe module_name

Il comando modprobe caricherà il modulo dato e tutte le dipendenze del modulo aggiuntivo. Nella riga di comando è possibile specificare un solo modulo.

Utilizzare il comando lsmod per confermare che il modulo è caricato:

lsmod | grep module_name

Per caricare un modulo con parametri aggiuntivi, utilizzare la sintassi parameter=value:

modprobe module_name parameter=value

Il comando accetta più coppie di parametri e valori parameter=value separate da spazio.

In genere, è necessario caricare il modulo durante l'avvio del sistema. Puoi farlo specificando il modulo e i suoi parametri in un file all'interno della directory /etc/modules-load.d. I file devono terminare con .conf e possono avere qualsiasi nome:

option module_name parameter=value
/etc/modules-load.d/module_name.conf

Le impostazioni specificate in questi file vengono lette da udev, che carica i moduli all'avvio del sistema utilizzando modprobe.

Rimozione dei moduli del kernel

Per rimuovere un modulo, invoca il comando modprobe con l'opzione -r seguita dal nome del modulo:

modprobe -r module_name

modprobe rimuoverà anche le dipendenze del modulo non utilizzate.

Quando viene invocato con -r, il comando accetta più moduli come argomenti:

modprobe -r module_name1 module_name2

Se si desidera impedire il caricamento di un modulo Kernel all'avvio, creare un file .conf con qualsiasi nome all'interno di /etc/modprobe.d. La sintassi è:

blacklist module_name
/etc/modprobe.d/blacklist.conf

Se si desidera inserire nella blacklist moduli aggiuntivi, specificare i moduli su una nuova riga o creare un nuovo file .conf.

Conclusione

Il comando modprobe consente di aggiungere e rimuovere i moduli del kernel Linux.