
¿Hay alguna diferencia entre insmod y modprobe?
Respuesta1
modprobe
lee los módulos desde /lib/modules/$(uname -r)/modules.dep.bin
(o sin el .bin
sufijo si el otro archivo no está disponible). Desde el mismo archivo se cargan las dependencias.
modprobe
acepta el nombre de un .ko
archivo en /lib/modules/$(uname -r)
(por ejemplo, nvidia-current
para el archivo dkms/nvidia-current.ko
) y alias ( modules.alias.bin
). Los incorporados ( modules.alias.bin
) también se reconocen, pero dado que estos módulos se cargan de forma predeterminada, no tiene sentido modificar este tipo de módulos.
insmod
por otro lado acepta rutas a archivos. No es necesario que el módulo resida en /lib/modules/$(uname -r)
, pero las dependencias no se cargan automáticamente. Este es el programa inferior utilizado modprobe
para cargar módulos.
Otros programas relacionados con los módulos son rmmod
y modinfo
.
rmmod
elimina un nombre de kernel basado en el nombre de /proc/modules
. Este nombre no tiene por qué ser necesariamente el mismo que se le pasó modprobe
(para el nvidia-current
archivo, esto es, nvidia
por ejemplo).
modinfo
acepta un nombre de archivo, o el nombre de archivo sin .ko
sufijo en /lib/modules/$(uname -r)
.
Respuesta2
Por man insmod
:
La mayoría de los usuarios querrán usar modprobe, que es más inteligente y puede manejar dependencias de módulos.
Respuesta3
modprobe
Es un comando inteligente, busca dependencias mientras carga un módulo. Supongamos que cargué un módulo que tiene símbolos definidos en algún otro módulo (esta ruta del módulo se proporciona dentro del módulo principal). Entonces, modprobe
carga el módulo principal y el módulo dependiente.
Pero si insmod
se usa, no cargará la dependencia y, por lo tanto, generará errores de compilación como Unresolved symbols
. En este caso, tenemos que buscar manualmente los módulos dependientes y cargarlos para resolver los errores.
Respuesta4
El comando modprobe ofrece más funciones que las utilidades más básicas insmod y rmmod. modprobe agrega o elimina de forma inteligente un módulo del kernel de Linux. Tenga en cuenta que, por conveniencia, no hay diferencia entre _ y - en los nombres de los módulos (se realiza la conversión automática de subrayado). modprobe busca en el directorio de módulos /lib/modules/ uname -r
todos los módulos y otros archivos, excepto los archivos de configuración opcionales en el directorio /etc/modprobe.d (algunas distribuciones usan el archivo /etc/modprobe.conf en su lugar).