En gran parte de los casos, un módulo del kernel depende de otros para funcionar correctamente. Mediante el uso de depmod se crea la lista de estas dependencias en /usr/lib/modules/$(uname -r)/modules.dep
. Posteriormente, modprobe utiliza esta lista para asegurarse de que cada módulo tenga disponibles los demás que necesite para funcionar. En este post daremos más detalles sobre depmod
. ¡Comencemos!
Por lo general, no es necesario ejecutar
depmod
a menos que hayamos recompilado el kernel o instalado nuevos drivers para dispositivos.
Uso de depmod
Con el propósito de crear el archivo modules.dep, depmod
lee los servicios (también llamados símbolos) que cada módulo provee y cuáles necesita. Si un módulo A utiliza un símbolo que es facilitado por otro módulo B, decimos que A depende de B. La información de dependencias puede llegar a ser muy completa, y por eso la necesidad de manejarla mediante una herramienta dedicada.
También dentro de /usr/lib/modules/$(uname -r)
podemos encontrar el archivo modules.symbols, en donde figura la información de dependencias que acabamos de mencionar. Cabe aclarar que modules.symbols es un archivo de texto plano. Por eso, podemos inspeccionarlo con herramientas tales como less
o filtrarlo utilizando grep
.
Además de las funciones que mencionamos arriba,
depmod
también genera un mapeo entre identificadores de hardware y el módulo correcto que debe ser cargado cuando se detecta un dispositivo dado.
Para simular la ejecución de depmod, podemos recurrir al uso de la opción --dry-run
de la siguiente manera. Debido a la gran cantidad de módulos, se hace necesario recurrir a un paginador para inspeccionar los datos más convenientemente.
depmod --dry-run | less
En la Fig. 1 podemos ver parte del resultado del comando anterior:
Espero que este post les haya resultado útil. ¡Nos leemos en breve!
¡Aprovechá la oportunidad de suscribirte al blog para recibir en tu correo el post nuestro de cada día, novedades, y promociones exclusivas!