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.2
Algunos 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.