Obtenga información del módulo del kernel de Linux con modinfo
Cada vez que se inicia el sistema Linux, el sistema carga el número de módulos del núcleo y se utiliza para proporcionar soporte adicional para el sistema de archivos, hardware nuevo, etc. Obtener una información sobre un módulo del núcleo en particular puede ser una habilidad importante para la resolución de problemas. En este artículo explicaremos cómo obtener información del módulo, como la descripción, la dependencia, el autor o el nombre del archivo de objeto relevante mediante el
Cualquier módulo del núcleo que se pueda cargar se instala de manera predeterminada dentro del
El
modinfo
comando.Cualquier módulo del núcleo que se pueda cargar se instala de manera predeterminada dentro del
/lib/modules
directorio. Para cada núcleo en particular, se crea un directorio separado para contener los módulos que se utilizarán con ese núcleo en particular:# ls /lib/modules/ 3.14.5-200.fc20.x86_64 3.14.6-200.fc20.x86_64 3.14.8-200.fc20.x86_64Del ejemplo anterior podemos ver que este sistema en particular tiene tres núcleos instalados. Solo se puede ejecutar un núcleo en un momento dado:
# uname -a Linux localhost.localdomain 3.14.8-200.fc20.x86_64 #1 SMP Mon Jun 16 21:57:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
El
uname
resultado del comando anterior muestra que 3.14.8-200.fc20
es el núcleo en ejecución del sistema actual y, por lo tanto, los módulos cargados desde el /lib/modules/3.14.8-200.fc20.x86_64/
directorio están en uso. Para enumerar todos los módulos de kernel cargados actualmente, podemos usar el lsmod
comando:$ lsmod ... e1000e 258512 0 ghash_clmulni_intel 13216 0 i2c_algo_bit 13257 1 i915 drm_kms_helper 50652 1 i915 drm 283747 4 i915,drm_kms_helper ptp 18725 1 e1000e pps_core 19130 1 ptp ...Desde aquí podemos cavar información de modo sobre cualquier módulo en particular usando el
modinfo
comando. Primero, podemos obtener la descripción general del módulo:$ modinfo -d e1000e Intel(R) PRO/1000 Network Driver¿Cuál es la ubicación real del archivo objeto para este módulo en particular?
$ modinfo -n e1000e /lib/modules/3.14.8-200.fc20.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.koPara ver una ubicación de archivo de objeto para cualquier
-k
conmutador de kernel de Linux instalado puede usarse.$ modinfo -k 3.14.5-200.fc20.x86_64 -n e1000e /lib/modules/3.14.5-200.fc20.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.koInformación sobre el autor:
$ modinfo -a e1000e Intel Corporation,o para encontrar la información de dependencia del módulo podemos usar
-F
switch:$ modinfo -F depends e1000e ptpEjecutar
modinfo
sin parámetros hará que el modinfo
comando imprima toda la información disponible.