Listar e inspeccionar módulos del kernel con lsmod y modinfo
En este paso, aprenderás a listar los módulos del kernel cargados actualmente y a inspeccionar sus detalles. El kernel de Linux es modular, lo que significa que partes de su funcionalidad pueden cargarse o descargarse según sea necesario. Estas partes cargables dinámicamente se denominan módulos del kernel y, a menudo, corresponden a controladores de dispositivos (drivers), controladores de sistemas de archivos o llamadas al sistema.
Primero, veamos el estado de todos los módulos del kernel cargados actualmente en el kernel de tu sistema. El comando lsmod proporciona una lista limpia y legible. Dado que la lista puede ser bastante larga, canalizaremos su salida a la utilidad less para facilitar la navegación.
Ejecuta el siguiente comando en tu terminal:
lsmod | less
Verás una lista de módulos. La salida se organiza en tres columnas: Module, Size y Used by.
- Module: El nombre del módulo del kernel.
- Size: El tamaño del módulo en bytes.
- Used by: El número de otros módulos o procesos que utilizan actualmente este módulo, seguido de una lista de los módulos dependientes.
Tu salida se verá similar a esta:
Module Size Used by
nls_iso8859_1 16384 1
nls_cp437 20480 1
vfat 20480 1
fat 69632 1 vfat
...
Puedes desplazarte por la lista usando las teclas de flecha. Presiona q para salir del visor less y regresar al símbolo del sistema.
Ahora que sabes cómo listar módulos, obtengamos información detallada sobre uno específico. El comando modinfo muestra varios detalles sobre un módulo del kernel, como su nombre de archivo, licencia, descripción, autor y dependencias.
Inspeccionemos el módulo parport, que está relacionado con el puerto paralelo.
modinfo parport
El comando mostrará información detallada sobre el módulo parport.
filename: /lib/modules/x.x.x-xx-generic/kernel/drivers/parport/parport.ko
license: GPL
description: Parallel port driver
author: Philip Blundell, Tim Waugh, Grant Grundler
srcversion: <some_version_string>
depends:
retpoline: Y
intree: Y
vermagic: x.x.x-xx-generic SMP mod_unload
sig_id: ...
signer: ...
sig_key: ...
sig_hashalgo: ...
signature: ...
Esta salida te indica la ubicación exacta del archivo del módulo (archivo .ko), su licencia, una breve descripción y más. Observa que el campo depends está vacío, lo que indica que este módulo no tiene dependencias.
Los módulos a menudo dependen de otros módulos. El comando depmod crea una lista de dependencias de módulos analizando los módulos en /lib/modules/$(uname -r). Esto permite que el sistema cargue automáticamente los módulos requeridos. Generemos este archivo de dependencias. Este comando requiere privilegios de superusuario, por lo que usaremos sudo.
sudo depmod
Normalmente, este comando no produce ninguna salida si se completa con éxito. Crea o actualiza un archivo llamado modules.dep en el directorio de módulos del kernel. La parte $(uname -r) de la ruta es una sustitución de comando que inserta la versión actual de tu kernel.
Ahora, veamos el archivo de dependencias que acabas de generar.
less /lib/modules/$(uname -r)/modules.dep
Este archivo contiene una lista de módulos y sus dependencias, que es utilizada por las herramientas que gestionan módulos automáticamente. Puedes presionar q para salir de less.