6. Comment le configurer ?

Contenu de cette section

Tout d'abord, récupérez les paquetages nécessaires : un noyau assez récent et la dernière version des utilitaires pour les modules. Ensuite, installez-les. C'est assez simple : désarchivez le paquetage et lancez make install. Cette opération compile et installe les différents programmes dans le répertoire /sbin : genksysm, insmod, lsmod, modprobe, depmod, kerneld. Je vous recommande d'ajouter quelques lignes dans vos scripts d'amorçage /etc/rc.d/rc.S si vous utilisez la Slackware, ou /etc/rc.d/rc.sysinit (si vous utilisez SysVinit, c'est à dire Debian, RedHat, Caldera) :

        # Lancer kerneld - cette operation doit se produire
        # le plus tot possible lors de l'amorcage de la machine
        # et en tout cas avant que fsck ne soit lance sur les 
        # systemes de fichiers car certaines partitions peuvent 
        # avoir besoin de modules.
        if [ -x /sbin/kerneld ]
        then
                /sbin/kerneld
        fi

        # Vos fsck peuvent se trouver ici, ainsi que votre 
        # commande mount pour monter la racine en lecture, ecriture

        # Mise a jour du fichier des dependances des modules 
        # Votre racine DOIT etre montee en lecture ecriture !
        if [ -x /sbin/depmod ]
        then
                /sbin/depmod -a
        fi

La première partie de ce script lance kerneld.

La seconde appelle depmod -a. Ce programme construit la liste de tous les modules disponibles et analyse leurs dépendances, de telle manière que l'on sache si un module a besoin qu'un autre module soit chargé, et éventuellement le charger, et ainsi de suite.

Note : des versions récentes de kerneld ont une option de compilation lui permettant d'utiliser la bibliothèque dbm GNU, libgdbm. Si vous activez cette option, Cela signifie que ce démon ne sera lancé que si la bibliothèque libgdbm est disponible, ce qui peut ne pas être le cas si vous avez le répertoire /usr sur une partition séparée et que vous lanciez kerneld avant que /usr ne soit monté. La solution recommandée est de déplacer la bibliothèque du répertoire /usr/lib vers /lib.

Ensuite, désarchivez les sources du noyau, configurez-le et construisez le noyau. Si vous n'avez jamais fait cela avant, vous devriez absolument lire le fichier README qui se trouve à la racine des sources de Linux. Lorsque vous lancez make config pour configurer le noyau, faites attention aux différentes questions que l'on vous pose :

  Enable loadable module support (CONFIG_MODULES) [Y/n/?] Y

Vous devez absolument activer (et donc répondre Y) la gestion des modules, ou bien kerneld n'aura aucun module à charger.

  Kernel daemon support (CONFIG_KERNELD) [Y/n/?] Y

Activer cette option est bien évidement nécessaire. Ensuite, bon nombre de choses dans le noyau peuvent être construites sous la forme de modules, et vous verrez donc ce genre de question :

  Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?]

Vous pouvez répondre par M, comme "Module". En principe, seuls les gestionnaires de périphériques qui sont absolument nécessaires pour amorcer votre machine, comme le gestionnaire du disque dur, le système de fichier de la racine, devraient être inclus dans le noyau. Le reste peut très bien être construit comme module.

Lorsque vous en avez terminé avec make config, alors lancez

make dep ; make clean ; make zImage ; make modules ; make modules_install
ou
make zlilo ; make modules ; make modules_install

Et allez gracieusement vous restaurer ou boire un café (enfin, ça dépend de votre machine)...

make zImage met l'image de votre nouveau noyau dans arch/i386/boot/zImage. Vous aurez besoin de le copier où vous conservez vos images, ou bien installez-le via LILO.

Pour plus d'informations concernant la construction et l'installation de vos noyau, consultez le Kerneld-Howto (N.d.T. : également disponible en version française) qui est régulièrement posté dans le forum Usent comp.os.linux.answers, et disponible sur le site sunsite.unc.edu dans le répertoire /pub/Linux/docs/HOWTO.


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