Cómo comprobar si un controlador específico está cargado en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo verificar si un controlador (driver) específico está cargado en Linux. Los controladores, a menudo implementados como módulos del kernel, son esenciales para interactuar con el hardware. Explorarás tres métodos para lograr esto: listar todos los módulos cargados utilizando lsmod, examinar el archivo /proc/modules para obtener información detallada sobre su estado y verificar la información de un controlador específico con modinfo.

Al completar estos pasos, adquirirás habilidades prácticas para identificar y comprender el estado de los controladores en tu sistema Linux, lo cual es crucial para solucionar problemas de hardware y administrar el sistema.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/printf("Text Formatting") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") subgraph Lab Skills linux/echo -.-> lab-558755{{"Cómo comprobar si un controlador específico está cargado en Linux"}} linux/printf -.-> lab-558755{{"Cómo comprobar si un controlador específico está cargado en Linux"}} linux/ls -.-> lab-558755{{"Cómo comprobar si un controlador específico está cargado en Linux"}} linux/cat -.-> lab-558755{{"Cómo comprobar si un controlador específico está cargado en Linux"}} linux/ps -.-> lab-558755{{"Cómo comprobar si un controlador específico está cargado en Linux"}} end

Listar controladores (drivers) con lsmod

En este paso, aprenderás cómo listar los módulos del kernel actualmente cargados, que a menudo se denominan controladores (drivers) en el contexto del hardware. Los módulos del kernel son fragmentos de código que se pueden cargar y descargar en el kernel según sea necesario, extendiendo la funcionalidad del kernel sin necesidad de reiniciar el sistema.

El comando que utilizaremos es lsmod. Este comando se utiliza para mostrar el estado de los módulos en el kernel de Linux.

Abre tu terminal si no está abierta. Puedes encontrar el icono de Xfce Terminal en el lado izquierdo de tu escritorio.

Escribe el siguiente comando y presiona Enter:

lsmod

Verás una salida similar a esta:

Module                  Size  Used by
...
snd_hda_codec_generic    ...   ...
ledtrig_audio          ...   ...
snd_hda_codec_hdmi     ...   ...
snd_hda_intel          ...   ...
snd_intel_dspcfg       ...   ...
snd_hda_codec          ...   ...   snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core           ...   ...   snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep              ...   ...   snd_hda_codec
snd_pcm                ...   ...   snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep
snd_seq_midi           ...   ...
snd_seq_midi_event     ...   ...   snd_seq_midi
snd_rawmidi            ...   ...   snd_seq_midi,snd_seq_midi_event
snd_seq                ...   ...   snd_seq_midi,snd_seq_midi_event
snd_seq_device         ...   ...   snd_seq_midi,snd_rawmidi,snd_seq
snd_timer              ...   ...   snd_pcm,snd_seq
snd                    ...   ...   snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer
soundcore              ...   ...   snd
...

La salida de lsmod tiene tres columnas:

  • Module: El nombre del módulo del kernel.
  • Size: El tamaño del módulo en bytes.
  • Used by: Una lista de otros módulos que están utilizando este módulo y el número de veces que se está utilizando.

Este comando es muy útil para ver qué controladores (drivers) están actualmente activos en tu sistema.

Haz clic en Continue para pasar al siguiente paso.

Verificar el estado del controlador (driver) con cat /proc/modules

En este paso, explorarás otra forma de ver información sobre los módulos del kernel cargados examinando el archivo /proc/modules. El sistema de archivos /proc es un sistema de archivos virtual que proporciona información sobre procesos y otra información del sistema.

El archivo /proc/modules contiene información similar a la salida de lsmod, pero en un formato ligeramente diferente. Utilizaremos el comando cat para mostrar el contenido de este archivo.

Escribe el siguiente comando en tu terminal y presiona Enter:

cat /proc/modules

Verás una salida similar a esta:

snd_hda_codec_generic ... ... - Live 0xffffffff...
ledtrig_audio ... ... - Live 0xffffffff...
snd_hda_codec_hdmi ... ... - Live 0xffffffff...
snd_hda_intel ... ... - Live 0xffffffff...
snd_intel_dspcfg ... ... - Live 0xffffffff...
snd_hda_codec ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel, Live 0xffffffff...
snd_hda_core ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec, Live 0xffffffff...
snd_hwdep ... ... snd_hda_codec, Live 0xffffffff...
snd_pcm ... ... snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep, Live 0xffffffff...
snd_seq_midi ... ... - Live 0xffffffff...
snd_seq_midi_event ... ... snd_seq_midi, Live 0xffffffff...
snd_rawmidi ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq_device ... ... snd_seq_midi,snd_rawmidi,snd_seq, Live 0xffffffff...
snd_timer ... ... snd_pcm,snd_seq, Live 0xffffffff...
snd ... ... snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer, Live 0xffffffff...
soundcore ... ... snd, Live 0xffffffff...
...

Las columnas en /proc/modules representan:

  1. Nombre del módulo
  2. Tamaño del módulo
  3. Número de veces que se está utilizando el módulo
  4. Si el módulo está cargado (Live) o se está descargando (Loading o Unloading)
  5. Desplazamiento de memoria del módulo (esta es la parte 0xffffffff...)
  6. Módulos dependientes (similar a la columna "Used by" en lsmod)

Si bien lsmod es generalmente el comando preferido para ver los módulos cargados, es importante entender que esta información también está disponible en el sistema de archivos /proc para una inspección más profunda del sistema.

Haz clic en Continue para continuar.

Verificar detalles del controlador (driver) con modinfo

En este paso, aprenderás cómo obtener información detallada sobre un módulo específico del kernel utilizando el comando modinfo. Este comando puede proporcionar detalles como el nombre del archivo del módulo, el autor, la descripción, la licencia y los parámetros.

Obtengamos información sobre el módulo snd_hda_intel, que está relacionado con los controladores de audio.

Escribe el siguiente comando en tu terminal y presiona Enter:

modinfo snd_hda_intel

Verás una salida similar a esta:

filename:       /lib/modules/.../kernel/sound/hda/snd-hda-intel.ko
description:    Intel HDA driver
license:        GPL v2
srcversion:     ...
alias:          pci:v00008086d0000...sv*sd*bc04sc03i00*
alias:          pci:v00008086d0000...sv*sd*bc04sc01i00*
alias:          pci:v00008086d0000...sv*sd*bc04sc03i00*
...
depends:        snd-hda-codec,snd-pcm,snd-hda-core,snd-hwdep,snd-timer,snd
retpoline:      Y
intree:         Y
name:           snd_hda_intel
vermagic:       ... SMP mod_unload
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        ...
sig_hashalgo:   sha512
signature:      ...
parm:           bdl_pos_adj:Adjust the BDL position (int)
parm:           probe_mask:Bitmask of codec probe options.
                bit 0: force codec probe
                bit 1: allow probing codecs with basic capabilities
                bit 2: allow probing codecs with no capabilities
                (int)
parm:           enable_msi:Enable MSI (int)
parm:           enable_msix:Enable MSI-X (int)
parm:           model:Use the specified codec model.
                See Documentation/sound/kernel-modules-aliases.txt for details. (charp)
parm:           patch:Load the specified patch file. (charp)
parm:           power_save:Automatic power-saving timeout (in ms, 0 to disable). (int)
parm:           power_save_controller:Controller power-saving timeout (in ms, 0 to disable). (int)
parm:           pm_blacklist:Force non-power-save mode (D0) (bool)
parm:           position_fix:DMA pointer position fix (0, 1, 2) (int)
parm:           probe_only_force:Only probe codecs with force option (bool)
parm:           single_cmd:Use single command to communicate with codecs (bool)
parm:           snoop:Enable/disable snoop mode (bool)
parm:           jackpoll_ms:Polling interval for jack events (in ms, 0 to disable). (int)

Esta salida proporciona una gran cantidad de información sobre el módulo snd_hda_intel, incluyendo su ubicación en el sistema de archivos (filename), una breve descripción, la licencia bajo la cual se distribuye y varios parámetros que se pueden utilizar para configurar su comportamiento.

Comprender cómo usar modinfo es crucial para solucionar problemas de controladores (drivers) o para aprender más sobre las capacidades y opciones específicas de un módulo del kernel.

Haz clic en Continue para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar si un controlador (driver) específico está cargado en Linux. Comenzaste utilizando el comando lsmod para listar todos los módulos del kernel actualmente cargados, que a menudo se denominan controladores (drivers). Este comando proporciona información sobre el nombre del módulo, su tamaño y qué otros módulos lo están utilizando.

También aprendiste que puedes verificar el estado de los controladores (drivers) cargados examinando el contenido del archivo /proc/modules utilizando el comando cat. Finalmente, descubriste cómo usar el comando modinfo para obtener información detallada sobre un controlador (driver) específico, como su nombre de archivo, autor, descripción y parámetros. Estos pasos proporcionan un enfoque integral para verificar la presencia y los detalles de los controladores (drivers) cargados en tu sistema Linux.