8.6. Compiler un nouveau noyau

Pourquoi vouloir compiler un nouveau noyau ? Ce n'est en général pas nécessaire, car le noyau par défaut de Debian reconnaît la plupart des configurations. En outre différents noyaux sont disponibles. Vous devriez chercher s'il n'existe pas de paquet contenant un noyau qui corresponde à votre matériel. Cependant, il peut être utile de compiler un nouveau noyau dans les cas suivants :

8.6.1. Gestion des images du noyau

N'ayez pas peur de compiler un nouveau noyau. C'est amusant et très instructif.

Pour compiler un noyau façon Debian, vous avez besoin des paquets suivants : fakeroot, kernel-package, linux-source-2.6 et quelques autres qui sont probablement déjà installés sur votre machine (pour la liste complète, voyez /usr/share/doc/kernel-package/README.gz).

Cette méthode crée un .deb à partir des sources du noyau ; si vous utilisez des modules non standard, elle incorpore aussi ces dépendances dans le .deb. C'est une bonne solution pour gérer les images du noyau ; le répertoire /boot contiendra le noyau, le fichier 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 façon 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. De même, vous pouvez simplement télécharger les sources telles qu'elles sont proposées par Linus et non pas linux-source-2.6, tout en utilisant la méthode de compilation kernel-package.

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 didacticiel.

Dans ce qui suit, nous supposerons que vous pouvez tout faire sur votre machine et que vous allez extraire les sources du noyau dans votre répertoire personnel [25]. Nous supposerons aussi que la version du noyau est 2.6.32. Allez dans le répertoire où vous voulez désarchiver les sources et désarchivez-les avec tar xjf /usr/src/linux-source-2.6.32.tar.bz2, et déplacez-vous dans le répertoire linux-source-2.6.32 qui vient d'être créé.

Maintenant, vous pouvez configurer votre noyau. Exécutez make xconfig si X11 est installé, configuré et lancé. Exécutez make menuconfig dans le cas contraire (vous aurez alors besoin du paquet libncurses5-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éfaut), 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 --initrd --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 plus ou moins longue, selon la puissance de votre machine.

Une fois la compilation terminée, vous pouvez installer votre noyau personnalisé comme n'importe quel autre paquet. En tant que superutilisateur, exécutez la commande dpkg -i ../linux-image-2.6.32-sous-architecture_custom.1.0_amd64.deb. La partie sous-architecture est une sous-architecture optionnelle, telle que « 686 », suivant les options de compilation que vous avez définies. dpkg -i 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.6.32 sera installé, qui contiendra votre configuration noyau. Le nouveau paquet est assez évolué pour utiliser automatiquement le programme d'amorçage de votre plateforme et mettre à jour l'information sur l'image de noyau utilisée. Si vous avez créé un paquet pour les modules, vous devrez installer ce paquet également.

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

D'autres informations sur la compilation des noyaux Debian se trouvent dans le « Debian Linux Kernel Handbook ». Pour plus d'informations sur kernel-package, lisez la documentation dans /usr/share/doc/kernel-package.



[25] D'autres endroits sont possibles pour extraire les sources et construire le noyau, mais c'est le plus facile car aucun droit spécial n'est demandé.