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 fiLa 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 kerneld
avant 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/?] YVous 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/?] YCeci 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