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_hello 1
`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.
Algunos sistemas de ficheros, manejadores SCSI y de tarjetas de red,
así como otras utilidades son cargables como módulos. Para usarlos,
tiene primero que 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 y se entra de nuevo en
/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
, y se
descargaría al finalizar. Esto ahorrará unos 50K de memoria en la
operación normal del núcleo. Notar que el sistema Minix siempre deberá
estar dentro del núcleo (no como módulo) si se quiere hacer un
disquete de rescate con él.