GNU/Linux >> Linux Esercitazione >  >> Cent OS

Guida per principianti alla configurazione del modulo del kernel in Linux

Il kernel Linux viene caricato in memoria dal caricatore di avvio. I moduli del kernel vengono caricati e scaricati dinamicamente su richiesta. Forniscono driver di dispositivo per consentire al kernel di accedere a nuovo hardware, supporto per diversi tipi di file system e in genere estendono la funzionalità del kernel.

Elenco dei moduli del kernel caricati

Per elencare quali moduli del kernel sono attualmente caricati nel kernel, usa lsmod comando. Questo comando produce output leggendo /proc/modules file. Esempio:

# lsmod
Module                  Size  Used by
ip_tables              27115  5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
xfs                   985426  2 
libcrc32c              12644  1 xfs
...

Il Utilizzato da colonna fornisce il numero totale di processi che utilizzano il modulo e gli altri moduli da cui dipende, seguito da un elenco di tali moduli dipendenti.

Pacchetto kmod

Il comando lsmod e altri file e utilità del modulo del kernel come modinfo, modprobe, depmod, insmod e rmmod sono forniti dal pacchetto kmod:

# rpm -qf /sbin/lsmod 
kmod-20-9.el7.x86_64

Per elencare tutti i file forniti dal pacchetto kmod, inserisci:

# rpm -ql kmod
/etc/depmod.d
/etc/depmod.d/dist.conf
/etc/modprobe.d
/usr/bin/kmod
/usr/lib/modprobe.d
/usr/sbin/depmod
/usr/sbin/insmod
/usr/sbin/lsmod
/usr/sbin/modinfo
/usr/sbin/modprobe
/usr/sbin/rmmod
/usr/sbin/weak-modules
/usr/share/bash-completion/completions/kmod
/usr/share/doc/kmod-20
/usr/share/doc/kmod-20/COPYING
/usr/share/doc/kmod-20/NEWS
/usr/share/doc/kmod-20/README
/usr/share/doc/kmod-20/TODO
/usr/share/man/man5/depmod.d.5.gz
/usr/share/man/man5/modprobe.conf.5.gz
/usr/share/man/man5/modprobe.d.5.gz
/usr/share/man/man5/modules.dep.5.gz
/usr/share/man/man5/modules.dep.bin.5.gz
/usr/share/man/man8/depmod.8.gz
/usr/share/man/man8/insmod.8.gz
/usr/share/man/man8/kmod.8.gz
/usr/share/man/man8/lsmod.8.gz
/usr/share/man/man8/modinfo.8.gz
/usr/share/man/man8/modprobe.8.gz
/usr/share/man/man8/rmmod.8.gz

Dettagli modulo elenco

Il comando modinfo mostra informazioni dettagliate su uno specifico modulo del kernel. Ad esempio, per visualizzare le informazioni sul modulo del kernel iptables, immettere:

# modinfo ip_tables
filename:       /lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko
description:    IPv4 packet filter
author:         Netfilter Core Team [coreteam@netfilter.org]
license:        GPL
rhelversion:    7.3
srcversion:     EDBAB32FC38D6942C83A4B1
depends:        
intree:         Y
vermagic:       3.10.0-514.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        D4:88:63:A7:C1:6F:CC:27:41:23:E6:29:8F:74:F0:57:AF:19:FC:54
sig_hashalgo:   sha256

qui ,
nome file :Il percorso assoluto del file oggetto del kernel
descrizione :La breve descrizione del modulo
alias :i nomi degli alias interni per il modulo, se presenti
dipende :un elenco separato da virgole di moduli da cui dipende questo modulo, se presente
parm :il nome del parametro e una breve descrizione

I moduli vengono caricati da /lib/modules/[kernel_version]/kernel directory. Ad esempio, per visualizzare il percorso assoluto del file oggetto del kernel ip_tables, :

# modinfo -n ip_tables
/lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko

Caricare e scaricare i moduli del kernel

Caricamento dei moduli
I moduli del kernel vengono caricati utilizzando il comando modprobe. Il gestore dispositivi per il kernel Linux, udev, usa modprobe per caricare i driver per l'hardware rilevato automaticamente. Ad esempio per caricare il modulo del kernel ip_tables :

# modprobe ip_tables

Per verificare che il modulo sia stato caricato:

# lsmod | grep ip_tables
ip_tables              27115  5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw

I moduli dipendenti vengono caricati per primi. Usa modprobe –v (dettagliato) per visualizzare la risoluzione delle dipendenze durante il caricamento di un modulo del kernel. Ad esempio :

# modprobe -v nfs
insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/fscache/fscache.ko 
insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/nfs/nfs.ko
Nota :modprobe usa il comando insmod per caricare i moduli nel kernel. Non utilizzare insmod, tuttavia, perché questo comando non risolve le dipendenze.

Scaricamento dei moduli
Scarica i moduli del kernel utilizzando modprobe –r comando. Puoi anche usare l'opzione dettagliata. Ad esempio, per scaricare il modulo del kernel nfs, immettere:

# modprobe -rv nfs
rmmod nfs
rmmod fscache
Nota :Il comando modprobe –r usa rmmod per scaricare i moduli. Ma in modo simile a insmod, non è consigliabile utilizzare rmmod direttamente per scaricare i moduli del kernel.

I moduli vengono scaricati nell'ordine inverso, con il modulo del kernel nfs.ko scaricato prima, seguito dai moduli da cui dipendeva. I moduli utilizzati da un processo o quelli necessari ad altri moduli caricati non vengono scaricati.

Parametri del modulo del kernel

Proprio come il kernel può accettare parametri di avvio per modificare il comportamento del kernel, i moduli del kernel possono anche accettare parametri per modificare il proprio comportamento. La sintassi per passare i parametri a un modulo del kernel con modprobe è:

# modprobe [module_name] [parameter=value]

È possibile passare più coppie parametro=valore separando le coppie con spazi. Assicurati che il modulo non sia stato caricato in precedenza, perché modprobe non ricarica il modulo.

Directory di configurazione per modprobe

La directory di configurazione per modprobe è /etc/modprobe.d. Crea file *.conf in /etc/modprobe.d per:
– Specifica le opzioni
– Crea alias
– Sovrascrivi il normale comportamento di modprobe
– Inserisci nella lista nera i moduli del kernel

Il formato di questi file .conf è un comando per riga. I comandi validi da utilizzare in questi file includono quanto segue:

alias, options, install, remove, blacklist

Alias

Utilizzare la sintassi alias nome_alias nome_modulo per creare nomi alternativi per i moduli del kernel. Puoi anche usare i caratteri jolly della shell nei nomi alias. Esempio:

alias usbdevfs usbcore

Opzioni

Utilizzare le opzioni di sintassi nome_modulo opzione/i per aggiungere opzioni a nome_modulo. Esempio:

options b43 nohwcrypt=1 qos=0

Installa

Utilizzare la sintassi install module_name comando(i) per dire a modprobe di eseguire i comandi della shell invece di inserire il modulo nel kernel. Esempio:

install net-pf-6 /bin/true

Rimuovi

È simile al comando install, tranne per il fatto che viene invocato quando viene eseguito "modprobe –r". Usa la sintassi remove module_name comando(i) per dire a "modprobe –r" di eseguire i comandi della shell invece di scaricare il modulo dal kernel.

Lista nera

Usa la sintassi blacklist module_name per dire a modprobe di ignorare gli alias interni di un modulo. Gli alias interni sono quelli visti quando si usa il comando modinfo [nome_modulo]. La parola chiave blacklist viene in genere utilizzata quando l'hardware associato non è necessario, o quando due o più moduli supportano gli stessi dispositivi o un modulo dichiara erroneamente di supportare un dispositivo.

Fare riferimento alla pagina man di modprobe.d per ulteriori informazioni.

# man modprobe.d


Cent OS
  1. Linux:un kernel contaminato in Linux?

  2. Come creare, compilare e caricare moduli del kernel caricabili LKM Linux

  3. Guida per principianti a Udev in Linux

  4. Come codificare un modulo del kernel Linux?

  5. Cos'è un kernel contaminato in Linux?

Come caricare o scaricare un modulo del kernel Linux

Come caricare e scaricare i moduli del kernel in Linux

Comando Lsmod in Linux (Elenca i moduli del kernel)

Comando Modprobe in Linux

Visualizza le informazioni sul modulo del kernel Linux con il comando Modinfo

Guida completa alla registrazione di Linux