Los módulos del núcleo cargables le permitirán simplificar la configuración del núcleo y ahorrar memoria. Sirven para añadir dinámicamente nuevos soportes de sistemas de ficheros o manejadores, a un núcleo que ya está corriendo.
Estas utilidades están disponibles allí donde esté el núcleo, como modules-x.y.z.tar.gz. Elija el que corresponda a su núcleo. Descomprímalo con `tar zxvf modules-x.y.z.tar.gz', cambie al directorio que crea (modules-x.y.z), léase el fichero README, y siga las instrucciones de instalación (normalmente, tan simple como `make install'). Con ello tendrá las utilidades insmod, rmmod, ksyms, lsmod, genksyms, modprobe y depmod en /sbin. Si lo desea, puede probar el manejador ejemplo ``hw'' con insmod; lea el fichero INSTALL para más detalle.
insmod inserta un módulo en el núcleo arrancado. Generalmente los módulos son ficheros .o; el manejador ejemplo es drv_hello.o, con lo que para insertarlo se usaría `insmod drv_hello.o'. Para ver los módulos cargados, pruebe lsmod. La salida será como ésta:
blah# lsmod
Module:#pages:Used by:
drv_hello1
`drv_hello' es el nombre del módulo, que usa una página (4k) de memoria, y no hay módulos que dependan de él en este momento. Para quitar el módulo, teclee `rmmod drv_hello'. Vea que rmmod necesita el nombre del módulo, no del fichero. Ese nombre lo obtiene al listar los módulos instalados. Las otras utilidades de módulos se encuentran documentadas en los manuales on-line.
Inciso de la revisión 2.1
Tres cosas relativas a módulos:
make modules; make modules_install tras los make dep; make clean; make zImage O make zlilo, si usa LILO como gestor de arranque. lo primero que ha de hacer al arrancar con el mismo, para computar las dependencias entre módulos, es invocar el comando
depmod -a
kerneld, el andar insertando y retirando módulos de memoria a mano no se estila mucho, en su lugar es kerneld quien se encarga de esto. Para hacer uso de él, asegúrese de responder sí al soporte kerneld durante la configuración del núcleo, y llámelo desde los scripts de inicialización del sistema, que están típicamente en /etc/rc.d/rc.x. Sigue pudiendo cargar módulos a voluntad; el comando recomendado es modprobe modulo, que tendrá en cuenta las dependencias entre módulos, cargando todos los necesarios (como por ejemplo el módulo slhc en el caso de que queramos cargar el módulo ppp.) Atención: El soporte de compresión CCP (bsd_comp) no está incluído en esto debido a problemas de copyright, por lo que deberemos cargarlo a mano; o bien ejecutamos la orden modprobe bsd_comp cuando queramos cargar ppp, o bien lo insertamos después de haber cargado ppp y slhc, con por ejemplo, modprobe ppp. Lea el fichero /usr/src/linux/Documentation/modules.txt, disponible en castellano en http://www.insflug.org/pub/online/modulos.txt para profundizar sobre este tema, así como sobre el tercero de los ítems:
/etc/modules.conf o /etc/conf.modules. Lea el anterior fichero (modulos.txt). 1.2.2Algunos sistemas de ficheros, manejadores SCSI y de tarjetas de red, así como otras utilidades son cargables como módulos. Para usarlos, lo primero, no incluirlos en el núcleo principal (al compilarlo, no decir que `sí' al manejador correspondiente durante el `make config'). Luego se arranca ese núcleo 2.0.x, recuérdelo; con los 2.0.x puede compilarlo todo seguido, y arrancar posteriormente, ejecutar depmod -a y estará todo listo. /usr/src/linux para hacer `make modules', lo que compilará módulos para todas aquellas opciones que no se eligieron durante el `make config', y los dejará en /usr/src/linux/modules. Puede ahora ejecutar `make modules_install' que los instalará en /lib/modules/x.y.z siendo x.y.z la versión del núcleo.
Esto es especialmente útil con los sistemas de ficheros que, como minix o msdos, no se usan normalmente. Así, cuando se quiera leer un disquete MSDOS, primero se cargaría el módulo con insmod modprobe, que como hemos comentado, tendrá en cuenta las dependencias entre módulos que ha generado depmod -a, cargándolos todos.
|