Compiler un noyau 2.6.26 sous Debian Lenny


Compiler un noyau présente de nombreux avantages que ce soit en termes de performances, de sécurité et de stabilité. En effet, il est possible de retirer divers supports intégrés, supports qui ne sont pas forcément utiles pour tous, ou dans certains cas d'en ajouter.



Avant toute chose, il faut s'identifier en tant qu'administrateur puis mettre à jour la liste des paquets ainsi que du système :

$ su
Mot de passe :
# aptitude update
# aptitude upgrade

Si les paquets suivants ne sont pas présents, il faut impérativement les installer :
debhelper
dpkg-dev
debconf-utils
libncurses5-dev
build-essential
kernel-package

Ensuite il est préférable de se rendre dans le dossier /usr/src/ dans lequel se trouvera l'archive contenant les sources du noyau :
# cd /usr/src/

Installation des sources du noyau :
# aptitude install linux-source-2.6.26 (ou autre)

Extraction des sources depuis l'archive :
# tar -xvjf linux-source-2.6.26.tar.bz2

Une fois l'extraction terminée, il est préférable de créer un lien symbolique (il sera plus simple de s'y retrouver par la suite) :
# ln -s linux-source-2.6.26 recompilation

L'étape suivante consiste à copier le fichier config actuel comportant les détails de ce que contient votre noyau vers le dossier contenant les sources du noyau à compiler :
# cp /boot/config-2.x.x /usr/src/recompilation/.config

Pour réaliser la suite, il faut évidemment se rendre dans le dossier sources :
# cd /usr/src/recompilation/

La prochaine étape n'est rien de moins que l'essentiel de la manipulation, c'est ici que l'utilisateur doit choisir de supprimer certains supports ou au contraire d'en ajouter :
# make menuconfig

"L'interface" ressemble alors à ceci :

menu_config

Bien qu'austère, celle-ci s'avère néanmoins très simple à prendre en main, ne nécessitant que quelques touches du clavier à savoir ; les touches directionnelles, la touche espace et échap.

Les touches directionnelles permettent de vous guider au sein du menuconfig.
La touche espace quant à elle permet d'entrer dans une section particulière ou d'ajouter/supprimer ou mettre en module* les supports. Deux pressions successives sur la touche échap permettent de quitter une section ou le menuconfig.

Je vous recommande de faire très attention à ce que vous modifiez, inutile de dire que le bon fonctionnement du noyau en dépend.

Pour vous guider, voici une liste (non exhaustive car basée sur la version 2.6.20), celle-ci aide grandement à comprendre à quoi correspond chaque support et de fait si ils sont indispensables ou non.

N.B : Ne pas oublier de sauvegarder les changements et ce régulièrement.

Compilation du paquet :
# make-kpkg --append-to-version "-ymer64" --initrd kernel_image modules_image kernel_headers
Avec le nom ci-dessus, le nouveau noyau se nommera 2.6.26-ymer64.

La première compilation d'un noyau est souvent relativement longue (les suivantes pour un même noyau en revanche ne prennent pas beaucoup de temps).


Installation du paquet :
# cd ../
# dpkg -i linux-image-2.6.26-ymer64

Supprimer proprement un noyau :
# dpkg --purge --force-remove-essential linux-image-2.6.26-(nom_du_noyau)

Un "nettoyage" en profondeur du noyau permet d'obtenir un paquet beaucoup moins volumineux et peut ainsi passer de 19~20 Mo à 5~6 Mo.


S'il y a un problème lorsque vous tentez une seconde recompilation du même noyau, supprimez le contenu du répertoire /usr/src/recompilation/debian/stamp/binary/.