D'abord, ayez les parties nécessaires : un noyau et les
derniers modules-utilities. Ensuite, vous devez
installer les modules-utilities. C'est très simple : il
faut juste désempaqueter les sources et lancer make
install. Ceci compile et installe les programmes suivants
dans /sbin : genkym, insmod,
lsmod, modprobe, depmod,
kerneld. Je recommande que vous ajoutiez quelques
lignes dans les scripts de démarrage pour faire les
initialisations nécessaires lors du démarrage de Linux. Ajoutez
les lignes suivantes à votre fichier
/etc/rc/rc.d/rc.sysinit (si vous utilisez la
Slackware) ou à /etc/rc.d/rc.sysinit (si vous
utilisez SysVinit, c'est-à-dire les distributions Debian,
RedHat, Caldera) :
# Demarrer kerneld - ceci doit arriver tres tot dans le
# processus de demarrage, certainement AVANT que vous lanciez
# fsck sur les systèmes de fichiers qui ont besoins que les
# pilotes de disque soient chargés automatiquement
if [ -x /sbin/kerneld ]
then
/sbin/kerneld
fi
# Vos commandes fsck fonctionnent ici
# et votre command mount monte le système de fichiers racine
# en lecture seule.
# Mettez à jour le fichier de dépendance des modules du noyau
# Votre système de fichier racine doit être monté en
# lecture-écriture à partir de maintenant
if [ -x /sbin/depmod ]
then
/sbin/depmod -a
fi
La première partie lance kerneld lui-même.
La second appelle depmod -a au démarrage. Le
programme depmod construit une liste de tous les
modules disponibles et analyse leurs inter dépendances. Donc il
sait si un module a besoin qu'un autre soit chargé avant lui.
NOTE : Les versions récentes de kerneld ont une
option pour utiliser la librairie GNU dbm : libgdbm. Si
vous l'activez quand vous construisez les
modules-utilities, kerneld ne se lancera pas
si lidgdbm n'est pas disponible, ce qui pourrait être
le cas si vous avez /usr sur une partition séparée et
que vous lanciez kerneldavant que /usr ne soit
montée. La solution recommandée est de déplacer libgdm
de /usr/lib vers /lib ou de faire un lien
statique de kerneld.
Ensuite, défaîtes les sources du noyau, configurez et
construisez un noyau à votre convenance. Si vous ne l'avez jamais
fait avant, vous devriez lire le fichire README à la racine des
sources du noyau. Quand vous lancez make config pour
configurer le noyau, vous devrez faire attention à des questions
qui apparaissent au début :
Enable loadable module support (CONFIG_MODULES) [Y/n/?] Y
Vous devez sélectioner la gestion des modules chargeables, sinon,
il n'y aura pas de modules à charger pour kerneld.
Répondez seulement oui (Y).
Kernel daemon support (CONFIG_KERNELD) [Y/n/?] Y
Ceci est aussi nécessaire. Ensuite, de nombreuses choses peuvent
être mises sous forme de modules. Vous verrez des questions du
genre :
Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?]
où vous pouvez répondre M pour Module. Généralement, seuls les
pilotes nécessaires lors du démarrage de votre système (le
pilote du disque dur, le pilote du système de fichiers racine)
doivent être mis dans le noyau ; le reste pouvant être construit
sous forme de modules.
Quand vous avez fini avec make config, lancez make
dep, make clean, make zImage ou make
modules, make modules et make
modules_install.
Ouf !
La commande make zImage crée la nouvelle image du noyau
dans le fichier arch/i386/boot/zImage. Vous devrez le
copier où vous mettez votre image de boot. N'oubliez pas de
relancer LILO.
Pour plus d'informations sur la configuration, la construction
et l'installation de votre propre noyau, regardez le
Kerneld-HOWTO posté régulièrement au
comp.os.linux.answers et disponible sur le site
sunsite.unc.edu à /pub/Linux/docs/HOWTO. La
version française est disponible à
www.freenix.fr/linux