GNU/Linux >> Linux Esercitazione >  >> Linux

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

Questa breve guida spiega cos'è il modulo del kernel Linux , come elencare i moduli del kernel attualmente caricati utilizzando lsmod e come visualizzare le informazioni sul modulo del kernel Linux con modinfo comando in Linux.

Cos'è il modulo del kernel Linux?

Il kernel Linux è il componente principale di un sistema operativo GNU/Linux. La funzionalità del kernel Linux può essere estesa senza la necessità di riavviare il sistema utilizzando i moduli del kernel . Un modulo del kernel è un pezzo di codice che può essere caricato e scaricato nel kernel su richiesta.

Alcuni esempi di moduli del kernel sono firmware e driver di dispositivo, che consentono al kernel Linux di accedere e controllare l'hardware connesso al sistema. In genere, i moduli del kernel vengono utilizzati per aggiungere supporto per nuovo hardware (come driver di dispositivo) e/o filesystem o per aggiungere chiamate di sistema .

Senza i moduli del kernel, dobbiamo ricostruire e riavviare il kernel ogni volta che vogliamo una nuova funzionalità. Abbiamo anche bisogno di costruire kernel monolitici più grandi e aggiungere nuove funzionalità direttamente nell'immagine del kernel senza moduli del kernel. Con l'aiuto di un modulo del kernel, possiamo semplicemente evitare questi problemi.

I moduli del kernel sono generalmente archiviati in I moduli sono archiviati in /usr/lib/modules/<kernel_release_directory> .

$ ls /usr/lib/modules/5.11.18-300.fc34.x86_64/
 bls.conf                   modules.builtin.bin      modules.symbols
 build                      modules.builtin.modinfo  modules.symbols.bin
 config                     modules.dep              source
 extra                      modules.dep.bin          symvers.gz
 kernel                     modules.devname          System.map
 modules.alias              modules.drm              updates
 modules.alias.bin          modules.modesetting      vdso
 modules.block              modules.networking       vmlinuz
 modules.builtin            modules.order            weak-updates
 modules.builtin.alias.bin  modules.softdep

I moduli del kernel sono indicati con nomi diversi in diversi sistemi operativi. Ad esempio, un modulo del kernel è indicato come modulo caricabile del kernel (kld) in FreeBSD, estensione del kernel (kext) in macOS, modulo di estensione del kernel in AIX, driver in modalità kernel in Windows NT e modulo del kernel scaricabile (DKM) in VxWorks. Sono anche conosciuti come moduli caricabili del kernel (o KLM) e semplicemente come moduli del kernel (KMOD).

Elenca i moduli del kernel Linux usando il comando lsmod

Possiamo visualizzare l'elenco dei moduli del kernel che sono attualmente caricati nel kernel usando lsmod (elenco moduli) comando come di seguito:

$ lsmod

Risultato di esempio:

 Module                  Size  Used by
 vhost_net              32768  0
 vhost                  57344  1 vhost_net
 vhost_iotlb            16384  1 vhost
 tap                    28672  1 vhost_net
 tun                    57344  1 vhost_net
 rfcomm                 90112  4
 snd_seq_dummy          16384  0
 snd_hrtimer            16384  1
 xt_CHECKSUM            16384  1
 xt_MASQUERADE          20480  3
 xt_conntrack           16384  1
 ipt_REJECT             16384  2
 nf_nat_tftp            16384  0
 nf_conntrack_tftp      20480  3 nf_nat_tftp
 bridge                290816  0
 stp                    16384  1 bridge
 llc                    16384  2 bridge,stp
 ccm                    20480  6
 nft_objref             16384  2
 nf_conntrack_netbios_ns    16384  1
 nf_conntrack_broadcast    16384  1 nf_conntrack_netbios_ns
 nft_fib_inet           16384  1
[...]

Il comando lsmod ottiene i dettagli dei moduli del kernel attualmente caricati dal file /proc/modules .

Spero che tu abbia un'idea di base di cosa sono i moduli del kernel Linux e come elencare i moduli attualmente caricati nel kernel Linux. Andiamo avanti e vediamo come visualizzare i dettagli di uno specifico modulo del kernel.

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

Il modinfo comando mostra le informazioni dettagliate di un dato modulo del kernel. Per impostazione predefinita, elenca gli attributi di un modulo del kernel sotto forma di fieldname : value , per una facile lettura.

Per visualizzare le informazioni di un modulo del kernel Linux, ad esempio 88XXau , che è l'adattatore wireless TP-Link AC600 (Archer T2U Nano) , esegui:

$ modinfo 88XXau

Risultato di esempio:

filename:       /lib/modules/5.11.18-300.fc34.x86_64/extra/88XXau.ko.xz
 version:        v5.6.4.2_35491.20191025
 author:         Realtek Semiconductor Corp.
 description:    Realtek Wireless Lan Driver
 license:        GPL
 srcversion:     4EC0EE17404B8E38B323235
 alias:          usb:v7392pB611ddcdscdpiciscipin
 alias:          usb:v7392pA813ddcdscdpiciscipin
 alias:          usb:v7392pA812ddcdscdpiciscipin
 alias:          usb:v7392pA811ddcdscdpiciscipin
 alias:          usb:v3823p6249ddcdscdpiciscipin
 alias:          usb:v2357p0122ddcdscdpiciscipin
 alias:          usb:v2357p0120ddcdscdpiciscipin
[...]

Non aggiungere un .ko estensione alla fine del nome del modulo del kernel. Perché i nomi dei moduli del kernel non hanno estensioni, ma i file corrispondenti sì.

Visualizza alcuni dettagli dei moduli del kernel

Quando esegui modinfo senza alcuna opzione, mostra un sacco di informazioni sul modulo del kernel specificato. Puoi restringere il risultato visualizzando solo campi specifici come author , description , license , parm , depends e alias . I seguenti comandi mostrano i dettagli di ogni campo di 88XXau modulo.

1. Visualizza l'autore del modulo del kernel (fornitore)

Per vedere chi ha scritto un modulo del kernel, usa author bandiera.

$ modinfo -F author 88XXau
Realtek Semiconductor Corp.

2. Visualizza la descrizione del modulo del kernel

Per stampare la descrizione di un modulo del kernel, usa description bandiera.

$ modinfo -F description 88XXau
Realtek Wireless Lan Driver

3. Visualizza la licenza del modulo del kernel

Conoscere la licenza di un modulo del kernel può essere utile quando si vuole sapere se firmware e driver sono open o closed source. Alcune distribuzioni Linux possono includere driver non liberi per impostazione predefinita. Puoi verificare se un'unità dispositivo è gratuita o meno controllando la licenza ad essa allegata.

$ modinfo -F license 88XXau
GPL

La maggior parte dei moduli del kernel sono concessi in licenza sotto GPL (Licenza pubblica GNU). Alcuni moduli possono avere una doppia licenza, ad esempio BSD e GPL .

$ modinfo -F license zram
 Dual BSD/GPL

4. Visualizza i parametri del modulo del kernel

Per visualizzare i parametri di un modulo del kernel, eseguire:

$ modinfo -F parm 88XXau
rtw_wireless_mode: (int)
rtw_monitor_overwrite_seqnum:Overwrite the sequence number of injected frames (int)
rtw_monitor_retransmit:Retransmit injected frames (int)
rtw_monitor_disable_1m:Disable default 1Mbps rate for monitor injected frames (int)
rtw_ips_mode:The default IPS mode (int)
rtw_lps_level:The default LPS level (int)
[...]

5. Visualizza le dipendenze dei moduli del kernel

Per visualizzare le dipendenze di un modulo del kernel, esegui:

$ modinfo -F depends 88XXau
cfg80211

Puoi anche usare -a/--author , -d/--description , -l/--license , -p/--parameters flag per visualizzare i dettagli specifici dei moduli del kernel. Queste sono solo le scorciatoie per il --field autore, descrizione, licenza e parm della bandiera. Ad esempio, puoi usare -l o --license flag per visualizzare la licenza di un modulo del kernel.

$ modinfo -l kvm

Oppure,

$ modinfo --license kvm

I comandi precedenti sono equivalenti al seguente comando:

$ modinfo -F license kvm

Per maggiori dettagli su modinfo comando, guarda nelle sue pagine man.

$ man modinfo

Spero che questo aiuti.

Lettura correlata:

  • Elenca o controlla tutti i kernel Linux installati dalla riga di comando
  • Gestisci e monitora i moduli del kernel Linux con Kmon

Linux
  1. Comando JQ in Linux con esempi

  2. Come utilizzare il comando Rmmod su Linux con esempi

  3. Come usare type command (visualizzare le informazioni sul comando) in Linux

  4. Linux:un kernel contaminato in Linux?

  5. Comando ls di Linux

Comando Date in Linux con esempi di utilizzo

Comando modprobe Linux con esempi utili

Comando slabtop di Linux - Visualizza le informazioni sulla cache del kernel Slab

Elenca le informazioni sul modulo del kernel caricato utilizzando il comando Lsmod

Gestisci e monitora i moduli del kernel Linux con Kmon

Ottieni informazioni su un comando con Type Command in Linux