La tanière d'Ustilago

valid-css !

Valid XHTML 1.0!

1. Introduction

La compilation du noyau Debian fait souvent peur aux débutants. Je me souviens de ma permière Red Hat, j'avais été très déçu de ne pas pouvoir utiliser la gestion APM de mon portable, les modules n'étant pas compilé dans le noyau par défaut. En parcourant la documentation les avertissements furent nombreux, certains annonçant même que c'était une tâche très risquée pour un débutant.

Et puis un jour je me suis dit que cela ne coûtait rien d'essayer. Finalement, après quelques essais, j'ai réussi à compiler un noyau contenant le support APM ainsi que les modules nécessaires pour utiliser mon lecteur ZIP.

Le système Debian permet de compiler facilement un noyau selon ses désirs et d'obtenir un paquetage kernel-image-2.2.17-foo.deb facile à gérer ensuite. C'est ce que je propose d'expliquer sur cette page.

Pour ce qui est de la configuration du noyau allez jetter un oeil sur cette page.

(Pour écrire cette page, j'ai librement adapté ma contribution au site Léa Linux.)

2. Pré requis :

Il faut bien sûr les sources du noyau Linux que vous voulez compiler. Vous pourvez utiliser le paquetage kernel-source-2.2.17 par exemple fourni par Debian. Mais les archives au format .tar.gz ou .tar.bz2 marchent tout aussi bien.

Il est nécessaire également d'avoir un environnement de développement complet, que je ne détaillerai pas ici.

Enfin pour compiler à la Debian il faut le paquet kernel-package.

3. Installation des sources

Si vous utilisez le paquetage Debian pour les sources, voici la commande qu'il vous faut:

$ apt-get install kernel-image-2.2.17

Si vous n'êtes pas root c'est le moment de vous y mettre. Sinon utilisez sudo, c'est bien pratique.

L'installation du paquetage vous laisse une archive .tar.bz2 dans le répertoire /usr/src. Il vous faut donc l'extraire :

$ bunzip2 kernel-source-2.2.17.tar.bz2
$ tar -xvf kernel-source-2.2.17.tar

Il faut ensuite faire un lien de /usr/src/linux vers le répertoire contenant les sources. Si vous utilisez une archive non Debian en générale elle se décompresse dans un répertoire /usr/src/linux. Si c'est votre cas je vous conseille de renommer ce répertoire kernel-source-X.X.XX et de faire une lien à partir de /usr/src/linux :

$ ln -s kernel-source-2.2.17 linux
$ ls -l
drwxr-sr-x   14 ustilago src          4096 jun 24  2000 kernel-source-2.2.17
lrwxrwxrwx    1 ustilago src            20 mar  3 17:13 linux -> kernel-source-2.2.17

Maintenant vous êtes fin prêt pour la configuration du noyau, que je ne détaille pas ici.

4. La compilation proprement dite

Une fois votre noyau configuré selon vos désirs, voici venu le temps de la compilation. Si vous n'y êtes pas placez vous dans le répertoire /usr/src/linux et exécutez ces deux commandes (pour plus de clarté je supprime les sorties occasionnées par ces commandes) :

$ make-kpkg clean

$ make-kpkg --revision=CUSTOM.1.O kernel_image

Si tout se passe bien vous aurez votre noyau compilé et enpaqueté dans le répertoire /usr/src.

Vous pouvez remplacer CUSTOM par ce que vous voulez, en excluant les caractères '-' et '_'.

Le numéro de version n'est qu'informatif, il permet néanmoins à dpkg de vous avertir si vous essayez d'installer un noyau d'une version antérieure à celui de votre système. N'oubliez donc pas de le faire évoluer au fur et à mesure de vos compilations.

5. L'installation de votre noyau nouvellement compilé

Ca c'est tout simple, placez vous dans le répertoire /usr/src :

$ dpkg -i kernel-image-2.2.17_CUSTOM.1.0_i386.deb

N'oubliez pas, pour utiliser dpkg il faut être root.

Tout ce que vous avez compilé en tant que modules se retrouve dans le répertoire /lib/modules/2.2.17. Ainsi avant d'installer votre nouveau noyau il faut supprimer ce répertoire pour qu'il n'y ait pas de confusion. Si vous ne le faites pas dpkg vous avertira. Moi je vous conseille plutôt d'en faire une copie de sauvegarde :

$ mv /lib/modules/2.2.17 /lib/modules/2.2.17.OLD

Je pense qu'il est également plus judicieux de créer la disquette de sauvegarde comme le propose dpkg. Maintenant il ne vous reste plus qu'à redémarrer votre machine, en ayant pris soin de lancer lilo avant bien sûr. En effet pour que ce chargeur marche il faut réactualiser les données sur le secteur d'amorçage à chaque nouveau noyau que vous installez.

Si tout s'est bien passé vous verrez tourner votre nouveau noyau.

Page maintenue par Sébastien KALT - Copyright (c) 1999-2011 Sébastien KALT.