GNU/Linux >> Tutoriales Linux >  >> Linux

Mostrar información del módulo del kernel de Linux con el comando Modinfo

Esta breve guía explica qué es el módulo Linux Kernel , cómo listar los módulos Kernel actualmente cargados usando lsmod y cómo mostrar la información del módulo Linux Kernel con modinfo comando en Linux.

¿Qué es el módulo Linux Kernel?

Linux Kernel es el componente principal de un sistema operativo GNU/Linux. La funcionalidad del Kernel de Linux se puede ampliar sin necesidad de reiniciar el sistema utilizando módulos del Kernel . Un módulo de Kernel es una pieza de código que se puede cargar y descargar en el kernel a pedido.

Algunos ejemplos de módulos Kernel son controladores de dispositivos y firmware, que permiten que el Kernel de Linux acceda y controle el hardware conectado al sistema. Por lo general, los módulos del núcleo se utilizan para agregar soporte para nuevo hardware (como controladores de dispositivos) y/o sistemas de archivos. , o para agregar llamadas al sistema .

Sin los módulos del Kernel, tenemos que reconstruir y reiniciar el kernel cada vez que queremos una nueva funcionalidad. También necesitamos construir kernels monolíticos más grandes y agregar nuevas funciones directamente en la imagen del kernel sin módulos Kernel. Con la ayuda de los módulos del Kernel, podemos evitar estos problemas de forma sencilla.

Los módulos del kernel generalmente se almacenan en Los módulos se almacenan en /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

Los módulos del núcleo se denominan con diferentes nombres en diferentes sistemas operativos. Por ejemplo, un módulo de kernel se conoce como módulo cargable de kernel (kld) en FreeBSD, extensión de kernel (kext) en macOS, módulo de extensión de kernel en AIX, controlador de modo kernel en Windows NT y módulo de kernel descargable (DKM) en VxWorks. También se conocen como módulos cargables del kernel (o KLM), y simplemente como módulos del kernel (KMOD).

Lista de módulos del Kernel de Linux usando el comando lsmod

Podemos ver la lista de módulos del Kernel que están actualmente cargados en el Kernel usando lsmod (módulos de lista) comando como a continuación:

$ lsmod

Salida de muestra:

 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
[...]

El comando lsmod obtiene los detalles de los módulos Kernel actualmente cargados del archivo /proc/modules .

Espero que tenga una idea básica de qué son los módulos del kernel de Linux y cómo enumerar los módulos cargados actualmente en el kernel de Linux. Avancemos y veamos cómo ver los detalles de un módulo Kernel específico.

Mostrar información del módulo Linux Kernel con el comando modinfo

El modinfo El comando muestra la información detallada de un módulo Kernel determinado. De forma predeterminada, enumera los atributos de un módulo Kernel en forma de fieldname : value , para facilitar la lectura.

Para mostrar la información de un módulo del kernel de Linux, por ejemplo 88XXau , que es el adaptador inalámbrico TP-Link AC600 (Archer T2U Nano) , ejecuta:

$ modinfo 88XXau

Salida de muestra:

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
[...]

No agregue un .ko extensión al final del nombre del módulo Kernel. Porque los nombres de los módulos del Kernel no tienen extensiones, pero sus archivos correspondientes sí.

Mostrar ciertos detalles de los módulos del Kernel

Cuando ejecuta modinfo sin ninguna opción, muestra mucha información sobre el módulo del kernel dado. Puede restringir el resultado mostrando solo campos específicos como author , description , license , parm , depends y alias . Los siguientes comandos muestran los detalles de cada campo del 88XXau módulo.

1. Mostrar autor del módulo Kernel (proveedor)

Para ver quién escribió un módulo Kernel, use author bandera.

$ modinfo -F author 88XXau
Realtek Semiconductor Corp.

2. Mostrar descripción del módulo Kernel

Para imprimir la descripción de un módulo Kernel, use description bandera.

$ modinfo -F description 88XXau
Realtek Wireless Lan Driver

3. Mostrar licencia del módulo Kernel

Conocer la licencia de un módulo Kernel podría ser útil cuando desee saber si el firmware y los controladores son de código abierto o cerrado. Algunas distribuciones de Linux pueden incluir controladores no libres de forma predeterminada. Puede verificar si una unidad de dispositivo es libre o no libre comprobando la licencia adjunta.

$ modinfo -F license 88XXau
GPL

La mayoría de los módulos de Kernel tienen licencia bajo GPL (Licencia Pública GNU). Algunos módulos pueden tener licencia dual, por ejemplo, BSD y GPL .

$ modinfo -F license zram
 Dual BSD/GPL

4. Mostrar parámetros del módulo Kernel

Para ver los parámetros de un módulo Kernel, ejecute:

$ 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. Mostrar las dependencias de los módulos del Kernel

Para ver las dependencias de un módulo Kernel, ejecute:

$ modinfo -F depends 88XXau
cfg80211

También puede usar -a/--author , -d/--description , -l/--license , -p/--parameters banderas para mostrar los detalles específicos de los módulos del Kernel. Estos son solo los atajos para el --field autor, descripción, licencia y parm de la bandera. Por ejemplo, puede usar -l o --license marcar para ver la licencia de un módulo Kernel.

$ modinfo -l kvm

O,

$ modinfo --license kvm

Los comandos anteriores son equivalentes al siguiente comando:

$ modinfo -F license kvm

Para más detalles sobre modinfo comando, busque en sus páginas man.

$ man modinfo

Espero que esto ayude.

Lectura relacionada:

  • Enumerar o comprobar todos los kernels de Linux instalados desde la línea de comandos
  • Administre y supervise los módulos del kernel de Linux con Kmon

Linux
  1. Comando JQ en Linux con ejemplos

  2. Cómo usar el comando Rmmod en Linux con ejemplos

  3. Cómo usar el comando de tipo (mostrar información sobre el comando) en Linux

  4. Linux:¿un núcleo corrupto en Linux?

  5. comando linux ls

Comando de fecha en Linux con ejemplos de uso

Comando modprobe de Linux con ejemplos útiles

Comando slabtop de Linux - Mostrar información de caché de kernel Slab

Listar la información del módulo del kernel cargado usando el comando Lsmod

Administre y monitoree los módulos del kernel de Linux con Kmon

Obtener información sobre un comando con tipo de comando en Linux