Ricerca nel sito web

Come caricare e scaricare i moduli del kernel in Linux


Un modulo del kernel è un programma che può essere caricato o scaricato dal kernel su richiesta, senza necessariamente ricompilarlo (il kernel) o riavviare il sistema, ed è destinato a migliorare la funzionalità del kernel.

In termini software generali, i moduli sono più o meno come plugin per un software come WordPress. I plugin forniscono i mezzi per estendere le funzionalità del software, senza di essi gli sviluppatori dovrebbero creare un unico enorme software con tutte le funzionalità integrate in un pacchetto. Se fossero necessarie nuove funzionalità, queste dovrebbero essere aggiunte nelle nuove versioni di un software.

Allo stesso modo senza moduli il kernel dovrebbe essere costruito con tutte le funzionalità integrate direttamente nell'immagine del kernel. Ciò significherebbe avere kernel più grandi e gli amministratori di sistema dovrebbero ricompilare il kernel ogni volta che è necessaria una nuova funzionalità.

Un semplice esempio di modulo è un driver di dispositivo, che consente al kernel di accedere a un componente/dispositivo hardware collegato al sistema.

Lettura consigliata: Come scoprire quale versione di Linux stai utilizzando

Elenca tutti i moduli del kernel caricati in Linux

In Linux, tutti i moduli terminano con l'estensione .ko e normalmente vengono caricati automaticamente non appena l'hardware viene rilevato all'avvio del sistema. Tuttavia un amministratore di sistema può gestire i moduli utilizzando determinati comandi.

Per elencare tutti i moduli attualmente caricati in Linux, possiamo usare il comando lsmod (list module) che legge il contenuto di /proc/modules in questo modo.

lsmod
Module                  Size  Used by
rfcomm                 69632  2
pci_stub               16384  1
vboxpci                24576  0
vboxnetadp             28672  0
vboxnetflt             28672  0
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci
bnep                   20480  2
rtsx_usb_ms            20480  0
memstick               20480  1 rtsx_usb_ms
btusb                  45056  0
uvcvideo               90112  0
btrtl                  16384  1 btusb
btbcm                  16384  1 btusb
videobuf2_vmalloc      16384  1 uvcvideo
btintel                16384  1 btusb
videobuf2_memops       16384  1 videobuf2_vmalloc
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_core         36864  2 uvcvideo,videobuf2_v4l2
v4l2_common            16384  1 videobuf2_v4l2
videodev              176128  4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl             20480  0
x86_pkg_temp_thermal    16384  0
media                  24576  2 uvcvideo,videodev
....

Come caricare e scaricare (rimuovere) i moduli del kernel in Linux

Per caricare un modulo del kernel, possiamo usare il comando insmod (inserisci modulo). Qui dobbiamo specificare il percorso completo del modulo. Il comando seguente inserirà il modulo speedstep-lib.ko.

insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Per scaricare un modulo del kernel, utilizziamo il comando rmmod (rimuovi modulo). L'esempio seguente scaricherà o rimuoverà il modulo speedstep-lib.ko.

rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Come gestire i moduli del kernel utilizzando il comando modprobe

modprobe è un comando intelligente per elencare, inserire e rimuovere moduli dal kernel. Cerca nella directory dei moduli /lib/modules/$ (uname -r) tutti i moduli e i file correlati, ma esclude i file di configurazione alternativi in /etc/modprobe.d cartella.

Qui non è necessario il percorso assoluto di un modulo; questo è il vantaggio di usare modprobe rispetto ai comandi precedenti.

Per inserire un modulo è sufficiente fornire il suo nome come segue.

modprobe speedstep-lib

Per rimuovere un modulo, usa il flag -r in questo modo.

modprobe -r speedstep-lib

Nota: in modprobe, viene eseguita la conversione automatica del carattere di sottolineatura, quindi non c'è differenza tra _ e mentre inserendo i nomi dei moduli.

Per ulteriori informazioni e opzioni sull'utilizzo, leggere la pagina man di modprobe.

man modprobe

Non dimenticare di controllare:

  1. Come modificare i parametri di runtime del kernel in modo persistente e non persistente
  2. Come installare o aggiornare all'ultima versione del kernel in CentOS 7
  3. Come aggiornare il kernel all'ultima versione in Ubuntu

È tutto per ora! Hai qualche idea utile che vorresti aggiungere a questa guida o domande, utilizza il modulo di feedback qui sotto per inviarceli.