Il kernel Linux è il componente principale di un sistema operativo Linux. Il kernel Linux ha un design modulare che ne consente l'estensione in termini di funzionalità. I moduli sono piccoli pezzi di codice che possono essere caricati e scaricati dal kernel senza dover riavviare il computer. I moduli del kernel possono essere caricati/rimossi manualmente o automaticamente.
Quando un nuovo dispositivo come USB o PCI viene collegato/rimosso, il kernel invia uevents. Gli eventi contengono informazioni sul dispositivo come dettagli sul fornitore e sul modello. Udev (device manager) sta ascoltando questi uevents e li passa a modprobe. Modprobe identifica in modo intelligente il driver richiesto effettuando una ricerca nella directory del modulo /lib/modules/uname -r
e carica il file del modulo nel kernel. Una volta che il modulo è stato caricato correttamente, appare nell'elenco dal comando lsmod. Inoltre, modprobe viene utilizzato per aggiungere o rimuovere manualmente un modulo caricabile dal kernel.
Modprobe è distribuito come parte del pacchetto kmod. In questo tutorial impariamo come usare il comando modprobe per aggiungere e rimuovere moduli dal kernel Linux.
Sintassi del comando modprobe
Controlliamo la sintassi del comando modprobe:
$ sudo modprobe [options] [Module Name]
comando modprobe per aggiungere il modulo del kernel
I moduli del kernel si trovano nelle sottodirectory che si trovano in /lib/modules/$(uname -r)
. Il comando uname -r
può essere utilizzato per determinare la versione corrente del kernel.
Quando si aggiunge un modulo, modprobe controlla in modo intelligente la dipendenza del modulo dove insmod non lo fa. Le dipendenze elencate nel file /lib/modules/$(uname -r)/modules.dep e il riferimento al nome del modulo sono specificati in /etc/modules
file.
Per elencare la directory in cui si trova il modulo del kernel, digitare:
$ ls /lib/modules/$(uname -r)
Puoi trovare tutti i driver di dispositivo nella directory /lib/modules/$(uname -r)/kernel/drivers/
.
Di solito, i file dei moduli del kernel hanno .ko
estensioni. Puoi elencare tutti i .ko
file di:
$ find /lib/modules/$(uname -r) -type f -name *.ko*
Puoi aggiungere il modulo al kernel Linux usando il comando modprobe insieme al nome del modulo.
$ sudo modprobe img_i2s_in
Una volta aggiunti, puoi confermare tramite il comando lsmod che elenca i moduli del kernel attualmente caricati.
$ sudo lsmod | grep img_i2s_in
Uscita:
img_i2s_in 16384 0
comando modprobe per rimuovere il modulo del kernel
Per rimuovere un modulo, usa il comando modprobe con l'opzione -r insieme al nome del modulo.
Ad esempio, per rimuovere il modulo denominato img_i2s_in
, digita:
$ sudo modprobe -r img_i2s_in
Opzioni modprobe
Il comando modprobe ha diverse opzioni, che sono state divise in tre categorie in base ai loro casi d'uso.
Opzione di gestione
Quando si utilizza il comando modprobe per aggiungere o rimuovere moduli, i parametri di gestione consentono più scenari di gestione dei moduli.
Opzioni | Descrizione |
-a -tutti | Rimuovi o aggiungi più moduli contemporaneamente |
--rimuovi -r | Rimuovi il modulo, vale anche per --remove-dependencies |
--remove-dipendenze | Rimuovi i moduli di dipendenza |
--resolve-alias -R | Identifica e stampa il nome che corrisponde a un alias |
--prima volta | Errore di stampa per moduli aggiunti o rimossi |
--ignore-install --ignora-rimuovi -io | Ignora i comandi di installazione o rimozione scritti nel modulo durante l'inserimento o la rimozione del modulo |
--usa-lista-nera -b | Alias risolto nella lista nera |
--forza -f | Quando viene visualizzato un errore di versione, forzare l'aggiunta o la rimozione del modulo. Questo vale sia per --force-modversion che per --force-vermagic. |
--force-modversion | Ignora la versione del modulo durante l'aggiunta o la rimozione del modulo. |
--force-vermagic | Ignora la magia della versione del modulo durante l'aggiunta o la rimozione del modulo. |
Opzioni di ricerca
L'opzione di query del comando modprobe fornisce informazioni sulla configurazione e le dipendenze.
Opzioni | Descrizione |
--show-dipende -D | Se sono presenti moduli con file di dipendenza, mostra quel modulo |
--showconfig --show-config -c | Visualizza la configurazione corrente ed esce |
--show-modversions --dump-modversions | Mostra le dipendenze della versione del modulo |
Opzioni generali
Le opzioni generali nel comando modprobe configurano le opzioni di uscita, le posizioni dei moduli e le versioni.
Opzioni | Descrizione |
--funzionamento a secco --mostrare -n | Stampa l'output ma non aggiungere o rimuovere nulla. |
--config=[Nome file] -C | Sostituisce la dipendenza di configurazione predefinita, ad esempio /etc/modprobe.d con [Filename] |
--dirname=[Directory] -d | Per /lib/modules usa [Directory] come root del filesystem |
--set-version=[versione] -S | Invece del kernel specificato uname , usa il kernel [versione] |
--syslog -s | Visualizza il messaggio di errore tramite Syslog |
--silenzioso -q | Non visualizzare messaggi di errore |
--prolisso -v | Abilita la visualizzazione di più messaggi |
--versione -V | Visualizza la versione di modprobe |
--aiuto -h | Visualizza il messaggio di aiuto insieme ai comandi |
Conclusione
In questo tutorial, abbiamo appreso il comando modprobe per aggiungere o rimuovere moduli dal kernel Linux.
Grazie per la lettura, per favore fornisci il tuo feedback e suggerimenti.