Módulos del Kernel Linux
Es el turno de hablar un poco acerca de como la funcionalidad del Kernel Linux es extendida a través de módulos.
Los módulos pueden funcionar como controladores de hardware o sumar nueva funcionalidad (como implementar un nuevo protocolo de red).
Los módulos de kernel usan la extensión .ko.
Los módulos del kernel usualmente están por defecto en: /lib/modules//*.ko
Los módulos son compilados específicamente para una versión de kernel. Es por ello que se almacenan en un subdirectorio dentro de otro con el número de versión del kernel (uname -r).
Herramientas
- lsmod: Lista los módulos cargados.
- insmod: Carga módulos directamente.
- rmmod: Remueve módulos directamente.
- modprobe: Carga o descarga módulos. Utiliza la DB pre-construida de los módulos con info de sus dependencias.
- depmod: Reconstruye la bd de dependencias de módulos.
- modinfo: Muestra info acerca de un modulo (cargado o no). Se puede usar solo el nombre de módulo (si el .ko está en /lib/modules//) o la ruta completa del archivo .ko.
Instalar módulo
1 2 3 |
sudo insmod modulo sudo modprobe modulo #modprobe revisa que se cumplan dependencias |
Desinstalar módulo
1 2 3 |
sudo rmmod modulo. sudo modprobe -r modulo #modprobe desinstala también módulos dependientes que dejen de ser usados por alguien cuando se desinstale este modulo |
La info de los módulos también se muestra en /sys/module/*
Se pueden especificar valores de parámetros al cargar el modulo:
sudo /sbin/instmod /file.ko <span style="color: #339966;">customalgo=valor otracosa=otrovalor
La configuración del comando modprobe se encuentra en /etc/modprobe.d.