Les modules chargeables du noyau peuvent faire économiser de la mémoire et faciliter la configuration. L'utilisation des modules s'est accrue jusqu'à inclure les systèmes de fichiers, les pilotes de cartes ethernet, de lecteurs de cartouches, d'imprimantes, etc.
Ces utilitaires sont disponibles sur n'importe quel site où vous
avez récupéré les sources du noyau : modutils-x.y.z.tar.gz
;
choisissez la dernière version x.y.z
qui est égale ou inférieure à
votre version du noyau. Installez-le avec `tar zxvf
modutils-x.y.z.tar.gz
', cd
dans le répertoire créé
(modutils-x.y.z
), regardez le fichier README
, et suivez
les instructions d'installation (qui sont en général très simples, du genre,
faites make install
). Vous devriez avoir maintenant les programmes
insmod
, rmmod
, ksyms
, lsmod
,
genksyms
, modprobe
, et depmod
dans
/sbin
. Vous pouvez les tester avec le pilote exemple "hw"
dans insmod
; regardez le fichier INSTALL
dans ce
sous-répertoire pour les détails.
insmod
insère un module dans le noyau en cours d'exécution. Les
modules ont généralement une extension .o
. Le pilote exemple est
appelé drv_hello.o
, donc, pour l'insérer, insmod
drv_hello.o
'. Pour voir les modules que le noyau utilise actuellement,
lancer lsmod
. Il devrait alors afficher :
blah# lsmod Module: #pages: Used by: drv_hello 1`
drv_hello
' est le nom du module, il utilise une page mémoire (4ko),
et aucun autre module du noyau ne dépend actuellement de lui. Pour le
retirer, lancez `rmmod drv_hello
'. Notez que rmmod
prend
comme argument le nom du module, (celui donné par lsmod
)
pas un nom de fichier. Les autres programmes de gestion des modules sont
documentés (pages de manuel).Avec la version 2.0.30, presque tout est disponible sous forme de modules
chargeables. Pour les utiliser, soyez sûr que vous ne les insérez pas dans
la configuration du noyau. Pour cela, ne répondez pas y
pendant le
`make config
'.
Compilez un nouveau noyau et bootez avec. Puis, cd
dans
/usr/src/linux
à nouveau, et faites un `make modules
'.
Cela va compiler tous les modules que vous n'avez pas spécifiés dans le
noyau et installer les liens dans /usr/src/linux/modules
. Vous
pouvez alors les utiliser depuis ce répertoire ou faire `make
modules_install
' qui les installera dans /lib/modules/x.y.z
,
ou x.y.z
est le numéro de version du noyau.
Cela peut être particulièrement utile pour les systèmes de fichiers. Vous
n'utilisez peut-être pas fréquemment les systèmes de fichiers minix ou
msdos. Par exemple, si je rencontre une disquette msdos (beuh), je devrai
faire un insmod /usr/src/linux/modules/msdos.o
, puis rmmod
msdos
lorsque j'aurai terminé, Cette façon de procéder économise près
de 50 ko de RAM dans l'utilisation du noyau. Remarque sur le système de
fichiers minix : il est très fortement conseillé de toujours le
configurer directement dans le noyau pour l'utilisation en disques de
secours.