Introduzione

lsmod è un'utilità della riga di comando che visualizza informazioni sui moduli del kernel Linux caricati.

Moduli del kernel

Il kernel è il componente principale di un sistema operativo. 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). Puoi anche caricare manualmente un modulo nel kernel usando il comando modprobe, o automaticamente all'avvio usando /etc/modules o i file /etc/modules-load.d/*.conf.

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

Comando lsmod

lsmod è una semplice utility che non accetta alcuna opzione o argomento. Ciò che il comando fa è leggere /proc/modules e visualizzare il contenuto del file in un elenco ben formattato.

Esegui lsmod dalla riga di comando per scoprire quali moduli del kernel sono attualmente caricati:

lsmod

Il comando genera informazioni per ciascun modulo del kernel caricato su una nuova riga:

Module                  Size  Used by
fuse                  126976  3
sunrpc                434176  1
nfit                   61440  0
libnvdimm             172032  1 nfit
crct10dif_pclmul       16384  0
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
sg                     40960  0
joydev                 24576  0
pcspkr                 16384  0
virtio_balloon         20480  0
i2c_piix4              24576  0
ip_tables              28672  0
ext4                  733184  1
mbcache                16384  1 ext4
jbd2                  122880  1 ext4
sr_mod                 28672  0
sd_mod                 49152  2
cdrom                  69632  1 sr_mod
ata_generic            16384  0
bochs_drm              24576  1
drm_kms_helper        200704  1 bochs_drm
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
ttm                   131072  1 bochs_drm
drm                   520192  4 drm_kms_helper,bochs_drm,ttm
ata_piix               36864  0
libata                274432  2 ata_piix,ata_generic
crc32c_intel           24576  2
virtio_net             53248  0
serio_raw              16384  0
virtio_console         36864  1
net_failover           24576  1 virtio_net
virtio_scsi            20480  1
failover               16384  1 net_failover

Ogni riga ha tre colonne:

  • Module - La prima colonna mostra il nome del modulo.
  • Size - La seconda colonna mostra la dimensione del modulo in byte.
  • Used by - La terza colonna mostra un numero che indica quante istanze del modulo sono attualmente utilizzate. Un valore pari a zero indica che il modulo non è utilizzato. L'elenco separato da virgole dopo il numero mostra cosa sta usando il modulo.

Per scoprire se è caricato un modulo specifico, filtrare l'output con grep. Ad esempio per scoprire se il modulo fuse è caricato dovresti eseguire:

lsmod | grep fuse
fuse                  126976  3

Per informazioni dettagliate su un modulo, utilizzare il comando modinfo

Conclusione

Il comando lsmod mostra un elenco dei moduli del kernel attualmente caricati.