Cómo cargar y descargar módulos de kernel en Linux


Un módulo del kernel es un programa que puede cargarse o descargarse del kernel a pedido, sin necesariamente compilarlo (el kernel) o reiniciar el sistema, y ​​está destinado a mejorar la funcionalidad del kernel.

En términos generales de software, los módulos son más o menos como complementos de un software como WordPress. Los complementos proporcionan medios para ampliar la funcionalidad del software; sin ellos, los desarrolladores tendrían que crear un único software masivo con todas las funcionalidades integradas en un paquete. Si se necesitan nuevas funcionalidades, tendrían que agregarse en nuevas versiones de un software.

Del mismo modo, sin módulos, el kernel debería construirse con todas las funcionalidades integradas directamente en la imagen del kernel. Esto significaría tener núcleos más grandes, y los administradores del sistema necesitarían volver a compilar el núcleo cada vez que se necesite una nueva funcionalidad.

Un ejemplo simple de un módulo es un controlador de dispositivo, que permite al núcleo acceder a un componente/dispositivo de hardware conectado al sistema.

Listar todos los módulos de kernel cargados en Linux

En Linux, todos los módulos terminan con la extensión .ko , y normalmente se cargan automáticamente cuando se detecta el hardware en el arranque del sistema. Sin embargo, un administrador del sistema puede administrar los módulos usando ciertos comandos.

Para listar todos los módulos cargados actualmente en Linux, podemos usar el comando lsmod (listar módulos) que lee el contenido de /proc/modules de esta manera.

# lsmod

Lista de módulos de kernel en Linux

Module                  Size  Used by
rfcomm                 69632  2
pci_stub               16384  1
vboxpci                24576  0
vboxnetadp             28672  0
vboxnetflt             28672  0
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci
bnep                   20480  2
rtsx_usb_ms            20480  0
memstick               20480  1 rtsx_usb_ms
btusb                  45056  0
uvcvideo               90112  0
btrtl                  16384  1 btusb
btbcm                  16384  1 btusb
videobuf2_vmalloc      16384  1 uvcvideo
btintel                16384  1 btusb
videobuf2_memops       16384  1 videobuf2_vmalloc
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_core         36864  2 uvcvideo,videobuf2_v4l2
v4l2_common            16384  1 videobuf2_v4l2
videodev              176128  4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl             20480  0
x86_pkg_temp_thermal    16384  0
media                  24576  2 uvcvideo,videodev
....

Cómo cargar y descargar (eliminar) módulos de kernel en Linux

Para cargar un módulo del kernel, podemos usar el comando insmod (insertar módulo). Aquí, tenemos que especificar la ruta completa del módulo. El siguiente comando insertará el módulo speedstep-lib.ko .

# insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Para descargar un módulo del kernel, usamos el comando rmmod (eliminar módulo). El siguiente ejemplo descargará o eliminará el módulo speedstep-lib.ko .

# rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Cómo administrar los módulos del kernel usando el comando modprobe

modprobe es un comando inteligente para listar, insertar y eliminar módulos del kernel. Busca en el directorio de módulos /lib/modules/& # 36 (uname -r) para todos los módulos y archivos relacionados, pero excluye archivos de configuración alternativos en /etc/modprobe.d directorio.

Aquí, no necesitas la ruta absoluta de un módulo; esta es la ventaja de usar modprobe sobre los comandos anteriores.

Para insertar un módulo, simplemente proporcione su nombre de la siguiente manera.

# modprobe speedstep-lib

Para eliminar un módulo, use la marca -r de esta manera.

# modprobe -r speedstep-lib

rojo

Para obtener más información y opciones de uso, lea la página del manual de modprobe.

# man modprobe

No te olvides de revisar:

  1. How to Change Kernel Runtime Parameters in a Persistent and Non-Persistent Way
  2. How to Install or Upgrade to Latest Kernel Version in CentOS 7
  3. How to Upgrade Kernel to Latest Version in Ubuntu

¡Eso es todo por ahora! ¿Tiene alguna idea útil que desee que agreguemos a esta guía o consultas? Utilice el formulario de comentarios que se encuentra a continuación para enviarnos un mensaje.