8.5. Compiler un nouveau noyau

Pourquoi un utilisateur voudrait-il compiler un nouveau noyau ? Ce n'est en général pas nécessaire, étant donné que le noyau par défaut de Debian reconnaît la plupart des configurations. Cependant, il peut être utile de compiler un nouveau noyau dans les cas suivants :

8.5.1. Gestion des images du noyau

N'ayez pas peur de compiler un nouveau noyau. C'est amusant et vous apprendrez de nouvelles choses.

Pour compiler un noyau « façon Debian », vous avez besoin des paquets suivants : kernel-package, kernel-source-2.4.25 (la version la plus récente lors de la rédaction de ce document), fakeroot et quelques autres qui sont probablement déjà installés sur votre machine (pour la liste complète, voir /usr/share/doc/kernel-package/README.gz).

Cette méthode va créer un .deb à partir des sources de votre noyau, et si vous utilisez des modules non standard, va aussi incorporer ces dépendances dans le .deb. C'est une bonne solution pour gérer les images du noyau ; le répertoire /boot va contenir le noyau, le System.map, et une sauvegarde du fichier de configuration utilisé pour ce paquet.

Il faut remarquer qu'il n'est pas obligatoire de compiler votre noyau « à la Debian »; mais vous vous rendrez compte qu'utiliser le système de gestion des paquets pour gérer les noyaux rend leur installation plus simple et plus sûre. En fait, vous pouvez utiliser directement les sources de Linus et ne pas utiliser kernel-source-2.4.25, tout en utilisant la méthode de compilation kernel-package. Bien que le noyau 2.4.25 soit toujours utilisé pour l'installation de Woody, des noyaux de la série 2.4 plus récente sont disponibles sous la forme de paquets kernel-images.

Notez que vous trouverez une documentation complète sur l'utilisation de kernel-package dans le répertoire /usr/share/doc/kernel-package. Cette section ne contient qu'un bref didactitiel.

Dans ce qui suit, nous supposerons que les sources de votre noyau sont situées dans /usr/local/src/ et qu'il s'agit du noyau version 2.4.25. En tant que super-utilisateur, créez un répertoire dans /usr/local/src et changez le propriétaire de ce répertoire en votre compte utilisateur non-root habituel. En utilisant ce compte, allez dans le répertoire où vous voulez désarchiver les sources (cd /usr/local/src) et désarchivez-les (tar xIf /usr/src/kernel-source-2.4.25.tar.bz2 ), et déplacez-vous dans ce répertoire (cd kernel-source-2.4.25/).

Maintenant, vous pouvez configurer votre noyau. Exécutez make xconfig si X11 est installé, configuré et lancé, make menuconfig dans le cas contraire (vous aurez alors besoin du paquet ncurses-dev). Prenez le temps de lire l'aide en ligne et de choisir judicieusement les options à activer. En cas de doute, il est souvent préférable d'inclure les pilotes de périphériques (tels que les contrôleurs SCSI, cartes Ethernet, etc.) que vous ne connaissez pas bien. Faites attention : les autres options, non spécifiques au matériel, doivent être laissées à leur valeur par défaut si vous ne les comprenez pas. N'oubliez pas de sélectionner « Kernel module loader » dans la section « Loadable module support » (elle n'est pas sélectionnée par déefaut). sinon votre système Debian risque d'avoir des problèmes.

Nettoyez l'arborescence des sources et réinitialisez les paramètres de kernel-package. Pour ce faire, tapez make-kpkg clean.

Maintenant, compilez votre noyau : fakeroot make-kpkg --revision=custom.1.0 kernel_image. Bien sûr, le numéro de version « 1.0 » peut être changé ; il s'agit juste d'un moyen de suivre vos différentes versions du noyau. De la même façon, vous pouvez remplacer le mot « custom\ » par ce que vous voulez (par exemple le nom d'une machine). La compilation d'un noyau peut être assez longue selon la puissance de votre machine.

Si vous avez besoin du PCMCIA, vous devrez installer le paquet pcmcia-source. Désarchivez le fichier tar comprimé, en tant que super-utilisateur, dans le répertoire /usr/src (il est important que les modules soient à l'endroit où ils sont supposés être, c'est-à-dire dans /usr/src/modules). Ensuite, en étant super-utilisateur, tapez make-kpkg modules_image.

Une fois la compilation terminée, vous pouvez installer votre noyau personnalisé comme n'importe quel autre paquet. En étant super-utilisateur, tapez dpkg -i ../kernel-image-2.4.25-subarchitecture_custom.1.0_i386.deb. La partie subarchitecture est une sous-architecture optionnelle, telle que ``i586'', suivant les options de compilation que vous avez définies. dpkg -i kernel-image... installera votre noyau ainsi que les autres fichiers qui lui seront nécessaires. Par exemple, le fichier System.map sera installé correctement (très utile pour le débogage des problèmes de noyau) et un fichier /boot/config-2.4.25 sera installé, qui contiendra votre configuration noyau. Votre nouveau paquet kernel-image-2.4.25 est tellement malin qu'il utilise automatiquement le chargeur de boot de votre plateforme pour mettre à jour l'information sur l'image de noyau utilisée pendant le démarrage, sans qu'il soit nécessaire de re-exécuter le chargeur de boot. Si vous avez créé un paquet pour les modules, par exemple PCMCIA, vous devrez installer celui-ci également.

Vous devez maintenant redémarrer votre système : lisez attentivement les éventuels avertissements durant les étapes précédentes, puis tapez shutdown -r now.

Pour plus d'informations sur kernel-package, lisez la documentation dans /usr/share/doc/kernel-package.