Configuración de Módulos de Kernel

Estas aquí:
<< Regresar

Cargar módulos

Actualmente udev carga automáticamente todos los módulos necesarios, así que si se requiere o quiere cargar un módulo ajeno adicional al kernel durante el proceso de arranque, o crear una lista negra (módulos que no se cargaran) es posible hacerlo mediante un archivo de configuración.

Cargar módulos

Los módulos del kernel adicionales pueden ser cargados durante el arranque configurándolos como una lista estática en /etc/modules-load.d/ ó /etc/modules, dependiendo de su distribución. Cada archivo de configuración es nombrado siguiendo el formato: /etc/modules/.conf, en caso de que se emplee udev es en /etc/udev/rules.d/. Los archivos de configuración contienen simplemente una lista de los nombres de los módulos del núcleo a cargar, separadas por saltos de líneas. Las líneas vacías y las líneas cuyo primer carácter sea # o ; serán ignoradas.

/etc/modules-load.d/virtio-net.conf
# Carga virtio-net.ko al arranque
virtio-net

Opciones al cargar los módulos

Configurar opciones de los módulos

Para pasar un parámetro a un módulo es posible usar un archivo de configuración en la carpeta modprobe o en su lugar emplear la terminal.

Uso de archivos en /etc/modprobe.d/

El directorio /etc/modprobe.d/ se puede utilizar para pasar la configuración de los módulos a udev, el cual utilizará modprobe para manejar la carga de los módulos durante el arranque del sistema. Puede crear un archivo de configuración con cualquier nombre en aquel directorio, el cual deberá acabar con la extensión .conf con la siguiente sintaxis:

/etc/modprobe.d/miarchivo.conf
options nombredelmódulo nombredelparámetro=valordelparámetro

Por ejemplo:

/etc/modprobe.d/thinkfan.conf
# Thinkpads on, ésto permite que el demonio thinkfan controle la velocidad del ventilador
options thinkpad_acpi fan_control=1

Usar la línea de órdenes de arranque del núcleo

Si el módulo está integrado en el kernel es posible pasar las opciones vía terminal. Para todos los cargadores de arranque (bootloader) más comunes la sintaxis correcta es:

nombredelmódulo.nombredelparámetro=valordelparámetro

por ejemplo:

thinkpad_acpi.fan_control=1

Simplemente basta con añadir esta línea en en el gestor de arranque en la parte donde se describen los parámetros del núcleo.

Alias y listas negras

Alias

Los alias son nombres alternativos para un módulo. Por ejemplo:

alias <mi-mod> <nombre_de_módulo_muy_largo>

con el fin de emplear

modprobe mi-mod

en lugar de

modprobe nombre_de_módulo_muy_largo

También se puede utilizar comodines al estilo de shell, por lo que alias mi-mod* nombre_de_módulo_muy_largo significa que modprobe mi-mod-cualquier-cosa tiene el mismo efecto.

Para crear un alias se hace en la carpeta de /etc/modprobe.d/:

/etc/modprobe.d/mialias.conf
alias mimod nombre_de_módulo_muy_largo

Algunos módulos tienen alias que se utilizan para su carga automática cuando son solicitados por una aplicación. La desactivación de estos alias evitará que se cargue automáticamente, pero permitirá que se puedan cargar manualmente. Ejemplo:

/etc/modprobe.d/modprobe.conf
# Evita cargar automáticamente el módulo necesario para bluetooth
alias net-pf-31 off

Lista negra

Al agregar un módulo en la lista negra («blacklisting») es la forma en la que se evita que dicho módulo sea cargado al kernel. Aunque a primera instancia esto podría parecer poco lógico o razonable, es de bastante utilidad en el caso de que un dispositivo asociado a dicho módulo no se emplea y no se tiene el interés por el que funcione, o porque la carga del módulo genera problemas: por ejemplo, puede darse la carga simultánea de dos módulos que intentan controlar el mismo dispositivo o componente del hardware, y cargándolos en conjunto se traduciría en un conflicto.

Ejemplo del uso de la blacklist,

modinfo -F depends usbcore
usb-common

De la instrucción anterior podemos determinar que usb-common depende del módulo de usbcore. Para agregar un módulo sin dependencias creamos el archivo /etc/modprobe.d/blacklist.conf ( en caso de que no exista ) y agregamos la siguiente línea:

blacklist usbcore

Una vez hecho es necesario actualizar el initramfs y reiniciar el sistema:

update-initramfs -u
reboot

Después del reinicio, al emplear lsmod veremos si el módulo está presente. En caso de que otro módulos dependan del módulo que estamos queriendo dar de baja desde el blacklist, como el caso anterior, es necesario colocar en el blacklist todos los módulos que dependen en cualquier otro caso el módulo que está en la blacklist siempre será cargado de cualquier manera. Afortunadamente existe un truco para mandar a la blacklist todos los módulos incluyendo sus dependencias.

Si por alguna razón no es posible desactivar los todos los módulos y sus dependencias. Agregue la siguiente línea a /etc/modprobe.d/blacklist.conf en usbcore para mandar a la blacklist todos sus módulos dependientes:

install usbcore /bin/true

Actualice el initramfs y reinicie

update-initramfs -u

Para terminar, es una buena práctica la creación de archivos de configuración para los módulos por separado para el blacklist.

Forma manual

Los módulos del kernel pueden ser cargados o removidos manualmente con las herramientas proporcionadas por el paquete kmod. Estas herramientas pueden ser utilizadas manualmente.

Para cargar un módulo:

modprobe nombre_del_módulo

Para quitar/retirar un módulo:

modprobe -r nombre_del_módulo

O, alternativamente:

rmmod nombre_del_módulo

Video: Módulos del Kernel

En este video se verá las actividades básicas para la administración de los módulos del Kernel de Linux.

Última actualización: septiembre 06, 2018

Deja un comentario