3.7.3.- Cargar módulos del kernel

En Linux podemos cargar módulos del kernel con dos programas: insmod modprobe. El programa insmod inserta un único módulo en el kernel. Este proceso le exige que tenga ya cargado los módulos en los que se basa el que va a cargar. El programa modprobe, por el contrario, carga automáticamente los módulos de los que depende, siendo normalmente éste el modo preferido para hacer el trabajo.

En la práctica puede que no necesitemos utilizar insmod o modprobe para cargar módulos, porque Linux puede cargarlos automáticamente. Esto se basa en la funcionalidad de carga automática de módulos del kernel y en varios ficheros de configuración, algo que necesita modprobe y algunas otras herramientas. Sin embargo, insmod y modprobe pueden ser útiles para probar nuevos módulos o para solucionar problemas de la carga automática.

Prácticamente insmod es un programa bastante intuitivo; escríbalo seguido del nombre de fichero del módulo:

insmod_1Este comando carga el módulo floppy.ko que se debe especificar por su nombre de fichero. Los módulos también tienen nombres de módulos, que suelen ser iguales a los nombres de ficheros pero sin la extensión, como es el caso de floppy para el fichero floppy.ko. Lamentablemente, insmod requiere el nombre completo del módulo.

En el ejemplo anterior nos dice que no se puede insertar el modulo al no encontrar el hardware del floppy instalado en este ordenador.

Desde la línea de comandos podemos pasarle al módulo opciones adicionales. Al ser las opciones de los módulos muy específicas, debemos consultar la documentación para saber que módulos pasar. Hay módulos que dependen de otros, si intentamos cargar un módulo que depende de otros y éstos otros están cargados, insmod no funcionará. Si ocurre esto, deberá seguir manualmente el rastro de los módulos de los que depende y cargarlos manualmente o utilizar modprobe. de modo similar a como utilizamos insmod, pasándole un nombre de módulo:

modprobe_1Al igual que con insmod, podemos añadir opciones del kernel al final de la línea de comandos. A diferencia de insmod, al usar modprobe los módulos se especificarán por su nombre de módulo en lugar de por el nombre del fichero del módulo, facilitando el uso de modprobe ya que éste carga las dependencias automáticamente, esta facilidad de uso implica que modprobe se apoye en los ficheros de configuración. Tambien implica que puede utilizar opciones (que se colocaran entre el nombre del comando y el del módulo) para modificar el comportamiento de modprobe:

  •  Información detallada.- Las opciones -v o --verbose le indican a modprobe que muestre información adicional sobre sus operaciones. Normalmente, ésta incluye un resumen de todas las operaciones que realiza insmod.
  • Cambiar los ficheros de configuración.- El programa modprobe utiliza un fichero de configuración llamado /etc/modprobe.conf. Puede cambiar el fichero pasándole uno nuevo con la opción -C nombre-fichero, como en modprobe -C /etc/mymodprobe.con.ffloppy.
  • Realizar una simulación.- La opción -n o --dry-run hace que modprobe realice comprobaciones y el resto de las operaciones excepto las inserciones reales del módulo. Podría utilizar esta opción junto a -v para ver lo que haría modprobe sin cargar el módulo. Esto nos podría resultar útil para la depuración, particularmente si la inserción del módulo tiene algún efecto perjudicial, tal como desactivar el acceso al disco.

    modprobe simula una comprobaciones con la opción -n y -v nos muestra lo que haría modprobe sin cargar el módulo.

    modprobe simula una comprobaciones con la opción -n y -v nos muestra lo que haría modprobe sin cargar el módulo.

  • Eliminar módulos.- Las opciones -r o –remove invierten el efecto normal de modprobe; hace que el programa elimine el módulo especificado y todo aquel del que depende (Los módulos de los que dependen no se eliminaran si están en uso).
  • Forzar la carga.- Las opciones -f o --force le dicen a modprobe que fuerce la carga del módulo aunque la versión del kernel no coincida con lo que espera el módulo. Tendremos mucho cuidado con esta acción que es muy peligrosa, aunque en ocasiones es necesario cuando queremos usar sólo binarios de terceros.
  • Mostrar dependencias.- La opción --show-depends nos muestra todos los módulos especificados. Esta opción no instala todos los módulos ya que su cometido es meramente informativo.
  • Mostrar los módulos disponibles.- Las opciones -l o --list muestran una lista de opciones disponibles cuyos nombres coincidan con el comodín (*) especificado. Por ejemplo si escribimos modprobe -l v* mostrará todos los módulos disponibles. Al igual que con --show-depends, esta opción no hará que se cargue ningún módulo.

Para más información véase el manual de modprobe con man modprobe.

Manual de modprobe ejecutado con man modprobe.

Manual de modprobe ejecutado con man modprobe.