Page suivante Page précédente Table des matières

9. Modules

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.

9.1 Installer les utilitaires pour gérer les modules

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).

9.2 Modules distribués avec le noyau

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.


Page suivante Page précédente Table des matières