¿Cuál es la diferencia entre insmod y modprobe?

¿Cuál es la diferencia entre insmod y modprobe?

¿Hay alguna diferencia entre insmod y modprobe?

Respuesta1

modprobelee los módulos desde /lib/modules/$(uname -r)/modules.dep.bin(o sin el .binsufijo si el otro archivo no está disponible). Desde el mismo archivo se cargan las dependencias.

modprobeacepta el nombre de un .koarchivo en /lib/modules/$(uname -r)(por ejemplo, nvidia-currentpara 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.

insmodpor 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 modprobepara cargar módulos.

Otros programas relacionados con los módulos son rmmody modinfo.

rmmodelimina 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-currentarchivo, esto es, nvidiapor ejemplo).

modinfoacepta un nombre de archivo, o el nombre de archivo sin .kosufijo 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

modprobeEs 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, modprobecarga el módulo principal y el módulo dependiente.

Pero si insmodse 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 -rtodos 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).

saber más

información relacionada