Añadir o quitar módulos al Kernel de Linux
En la mayoría de las distribuciones de Linux cuando las instalamos se suelen cargar más módulos de los que necesitamos o al revés tenemos que instalar algún módulo que no se ha cargado automáticamente porque no se ha detectado el hardware correspondiente para realizar estas tareas disponemos el comando modprobe.
La instalación y desinstalación de módulos se pueden realizar con los comandos insmod y rmmod respectivamente pero estos comandos tienen limitaciones cuando los módulos tiene prerrequisitos o dependen de otros módulos, para evitarnos estos inconvenientes tenemos a modprobe que es un todo en uno de la gestión de módulos.
Añadir módulos
Vamos a añadir el módulo de bluetooth de este equipo, lo primero es comprobar que tenemos los módulos de los Drivers compilados:
# ls /lib/modules/5.6.0/build/drivers/bluetooth/*.ko
En esta caso vemos que disponemos de varios modules pertenecientes a varios fabricantes, para nuestra prueba cargaremos el módulo del Bluetooth de Atheos ath3k.ko
Lo ideal es probar que el módulo se puede cargar correctamente con la opción de –dry-run y –verbose para ver cual serian las acciones a tomar pero sin efectuarlas en realidad
#modprobe --dry-run --verbose ath3k
Una vez comprobado que si añadimos el módulo encontrará todas sus dependencias y no generará ningún error procedemos a cargarlo
#modprobe ath3k
Y comprobamos que el módulo esta cargado correctamente listando los módulos con el comando lsmod:
También podremos ver la información el módulo con el comando modinfo:
Al reiniciar el módulo no se vuelve a cargar, si queremos que los cambios sean permanentes tendremos que añadir el nombre del módulo en el fichero /etc/modules
Quitar módulos
Lo primero es ver bajo que nombre está el módulo cargado, para ello disponemos del comando lsmod o podemos ver el contenido del archivo /proc/modules. Como ejemplo vamos a quitar el modulo de cdrom de nuestro equipo.
Buscamos el nombre el módulo
#lsmod |grep cdrom
Ahora que sabemos que el nombre del modulo es cdrom procederemos a descargarlo con el siguiente comando:
#modprobe -r cdrom
Al reiniciar el sistema se volverá a cargar el módulo, si queremos evitar que un módulo en concreto se vuelva a cargar deberemos agregar la siguiente línea blacklist [nombre_modulo] en el fichero /etc/modprobe.d/blacklist.conf
Para los módulos que se «autocargan» en el Kernel no les afecta la configuración del fichero blacklist.conf, para evitar su carga se deberá realizar los siguientes pasos:
- Crear el fichero /etc/modprobe.d/[nombre_modulo].conf y escribir la línea blacklist [nombre_modulo]
- Ejecutar depmod -ae
- Recrear el initrd con el comando update-initramfs –u
Nota: El modulo seguirá cargándose si otros dependen de él