Vous avez lu tout ce qui précède et vous êtes réellement impressionné... Maintenant nous vous disons d'oublier tout ce qui concerne la façon d'installer et de retirer les modules chargeables...
Avec le daemon kerneld, toutes ces commandes seront automatiquement prises en compte. Répondez simplement "Y" a CONFIG_KERNELD dans "make xconfig" et assurez-vous que /sbin/kerneld se lance le plus tôt possible dans la phase de démarrage et que "/sbin/depmod -a" a bien été exécuté avec le noyau actuel.
Si jamais un programme veut utiliser une caractéristique qui est disponible seulement comme module chargeable, et si le noyau n'a toutefois pas déjà installé le module, alors le noyau dira au daemon kerneld de faire attention à la situation et d'agir de son mieux là-dessus.
Voici ce qui se passe:
* Le noyau remarque qu'une caractéristique demandée n'est pas dans la partie résidente du noyau.
* Le noyau envoi un message à kerneld, contenant une description symbolique de la caractéristique demandée.
* Le daemon kerneld demande ensuite à modprobe de charger le module qui convient à cette description symbolique.
* modprobe regarde dans la table de traduction interne "alias" pour voir s'il y a quelque chose qui correspond. Cette table peut être reconfigurée et étendue en ayant des lignes "alias" dans "/etc/conf.modules".
* On demande à insmod d'insérer le(s) module(s) que modprobe a considéré comme nécessaire(s) pour le noyau. Chaque module sera configuré selon les lignes "options" dans "/etc/conf.modules".
* modprobe sort et kerneld demande au noyau si la requête a réussie (ou échouée...)
* Le noyau utilise ensuite la caractéristique nouvellement installée exactement comme si elle avait été configurée dans le noyau comme partie "résidente".
* Lorsque le module installé automatiquement n'est plus utilisé pendant une période d'une minute, il est automatiquement retiré du noyau.
Ceci conduit le noyau à utiliser la quantité minimale de mémoire et ce à tout instant, la rendant ainsi disponible pour une utilisation plus productive.
Vous devez seulement créer un noyau minimal qui est plus ou moins indépendant de la vraie configuration matérielle. A la place, la configuration du noyau "virtuel" est contrôlée par un fichier de configuration ainsi que la véritable image d'utilisation de la machine actuelle et de son noyau.
kerneld s'avère très utile pour la réalisation d'une distribution Linux, à installer sur un parc de machines variées.
Pour utiliser kerneld avec le minimum de risque, il vous faut une version récente de kerneld vis-à-vis du noyau et un fichier de configuration pour modprobe ("/etc/conf.modules"). Le fichier de configuration minimale devrait ressembler à ceci :
alias scsi_hostadapter aha1542 # Votre adaptateur SCSI
alias eth0 3c509 # Votre adaptateur réseau
# vous pouvez avoir besoin d'une ligne d'options" pour certains adaptateurs de réseaux
options 3c509 io=0x300 irq=10
# vous pouvez avoir besoin d'une ligne d'options"
# pour d'autres modules
options cdu31a cdu31a_port=0x1f88 sony_pas_init=1
Vous devez ajouter aussi ces lignes :
alias net-pf-3 off # aucun module ax25 n'est (encore) 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
Et enfin, pour les "puristes":
Vous pouvez nommer le fichier de configuration de modprobe soit "/etc/conf.modules", soit "/etc/modules.conf", modprobe sait quoi faire dans chaque cas...