Les utilitaires pour les modules sont un ensemble de programmes
nécessaires pour gérer les modules. Au moment où j'écris
ces mots, la dernière version est modules-2.0.0.tar.gz
.
Des informations concernant la version actuelle peut être trouvée
à l'URL http://www.pi.se/blox
.
Ces informations proviennent des personnes suivantes :
Jacques Gelinas jacques@solucorp.qc.ca
et Björn Ekwall
bj0rn@blox.se
dans /usr/src/linux/Documentation/modules.txt
.
La première étape consiste à compiler le noyau, comme l'explique
le fichier linux/README
. Cela ressemble
généralement à ça :
Dans make config
, vous choisissez quelles caractéristiques vous
souhaitez inclure d'une manière permanente dans le noyau,
et celles que vous voulez sous la forme de modules chargeables.
Vous allez généralement choisir d'inclure le minimum de choses, c'est
à dire ce qu'il est nécessaire pour pouvoir amorcer la machine :
L'ensemble des modules est en constante augmentation et vous serez
capable de choisir l'option m
lors du make config
pour
les caractéristiques que vous souhaitez voir comme modules.
Vous avez également la possibilité de créer des modules quoi soient
moins dépendants de la version du noyau. Cette option peut être choisie
lors du make config
, en activant CONFIG_MODVERSIONS
,
et cela est assez pratique sur les noyau stables comme
les versions 1.2 et 2.0. Si vous possédez des modules qui ne sont
pas inclus dans l'arborescence des sources du noyau, alors vous aprécierez
sûrement cette option...
Lorsque le noyau est généré, il suffit de créer les modules en lançant :
make modules
Cela va compiler tous les modules et les mettre dans le répertoire
linux/modules
. Vous trouverez dans ce répertoire tout un
tas de liens symboliques sur des fichiers objets de l'arborescence des
sources.
Ensuite, après avoir crée tous les modules, il vous suffit de les installer :
make modules_install
Cela copiera tous les nouveaux modules dans les sous-répertoires
/lib/modules/version_noyau/
, où version_noyau
ressemble
à 2.0.26, ou le numéro de la version du noyau.
Dès que vous avez réamorcé la machine avec le nouveau noyau, vous pouvez
installer et désinstaller les modules avec les programmes
insmod
et rmmod
. Après avoir lu la page de manuel
de insmod, vous comprendrez qu'il est très simple de configurer
un module en faisant insmod module symbole=valeur
.
modprobe
et depmod
.Vous pouvez également utiliser deux outils :
modprobe
et depmod
, où modprobe est une extension de
insmod
. Ces outils utilisent et maintienent un ensemble de fichiers
qui décrivent tous les modules disponibles pour le noyau actuel dans
l'arborescence /lib/modules
ainsi que leurs interdépendances.
En utilisant le programme modprobe, vous pouvez charger n'importe quel module
/sbin/modprobe module
sans se préoccuper du noyau qui tourne, ou des modules qui sont utilisés par ce module.
Grâce à l'aide du fichier de configuration de modprobe,
/etc/conf.modules
, vous pouvez régler le
comportement de modprobe, voir inclure un ensemble d'options par défaut
pour chaque module. Et oui, il existe des pages de manuel pour
cela !
Pour utiliser correctement modprobe, vous inséréz généralement le
script suivant dans le fichier /etc/rc.d/rc.S
script
(voir le fichier rc.hints
dans paquetage des utilitaires modules,
modules-x.y.z.tar.gz
.).
/sbin/depmod -a
Cela génère les dépendances entre les différents modules. Ensuite, si vous faîtes par exemple
/sbin/modprobe umsdos
alors vous chargerez automatiquement les modules msdos
et umsdos
étant donné que umsdos
se base sur le module msdos
.
kerneld
.Bon, vous avez lu tout ceci, et je vous sens fébrile et pressé d'essayer... Maintenant, oubliez tout ce que vous savez concernant le chargement et le déchargement des modules !
Grâce au démon kerneld, toutes ces opérations seront effectuées
automatiquement. Répondez simplement "Y" à l'option CONFIG_KERNELD
lors du make config
, et assurez-vous que le démon
/sbin/kerneld
est lancé le plus tôt possible lors de
l'amorçage de la machine, et que la commande
/sbin/depmod -a
a été exécutée pour le noyau courant (lisez
la documentation fournie dans le paquetages des modules).
A chaque fois qu'un programme veut que le noyau utilise un gestionnaire qui n'est disponible que sous la forme d'un module, et que le noyau ne l'a pas déjà installé, alors le noyau va demander au démon de bien vouloir s'occuper du problème.
Voici ce qui se passe :
/etc/conf.modules
;options
du fichier
/etc/conf.modules
;La cerise sur le gâteau provient que lorsqu'un module automatiquement installé n'est pas utilisé pendant une certaine période (généralement une minute), alors le module sera automatiquement supprimé du noyau.
Cela permet de faire en sorte que le noyau utilise l'espace mémoire minimal à n'importe quel moment, le rendant donc plus productif libérant la place inutilement occupée par du code non utilisé.
En fait, il n'existe qu'un seul côté vraiment positif à kerneld : vous n'avez qu'à créer un noyau minimal qui plus ou moins dépendant de votre configuration matérielle. La configuration de ce noyau virtuel est plutôt contrôlé par un fichier de configuration spécialisant le comportement de la machine et de son noyau.
Cela devrait être plutôt une bonne nouvelle pour les administrateurs de plusieurs machines aussi bien que pour les mainteneurs des distributions.
Pour utiliser kerneld avec le moins de perte de place, vous
devez utiliser une version de modprobe qui soit considérée comme
étant récente, ainsi qu'un noyau récent, et enfin
un fichier de configuration pour modprobe, le fichier
(/etc/conf.modules
).
Comme modprobe connaît déjà la plupart des modules, le fichier de configuration minimal ressemble à quelque chose comme ça :
alias scsi_hostadapter aha1542 # ou n'importe quel controleur SCSI
alias eth0 3c509 # ou n'importe quelle carte reseau
# Vous avez besoin d'une ligne "options" pour certaines cartes reseau :
options 3c509 io=0x300 irq=10
# egalement une ligne "options" pour d'autres modules :
options cdu31a cdu31a_port=0x1f88 sony_pas_init=1
Vous pouvez également ajouter ces trois lignes, mais elles ne sont là que pour des raisons cosmétiques:
alias net-pf-3 off # pas de mode ax25 disponible
alias net-pf-4 off # si vous n'utilisez pas le module ipx
alias net-pf-5 off # si vous n'utilisez pas le module appletalk
Enfin, pour les puriste, vous pouvez placer votre fichier de configuration
soit dans /etc/conf.modules
, soit dans
/etc/modules.conf
, comme modprobe sait ce qu'il doit faire
dans chacun des cas...
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre