Page suivante Page précédente Table des matières

2. Le noyau sous Debian GNU/Linux

2.1 Mise en place des sources

Maintenant, deux possibilités s'offrent à vous. Soit vous installez les sources du noyau disponibles en .deb avec la distribution, soit depuis des archives en .tar.gz récupérables sur Internet à l'adresse http://www.kernel.org (ou l'un des ses miroirs), par exemple.

La première solution vous permet donc de recompiler les sources des noyaux fournis avec Debian GNU/Linux. Personnellement, je n'aime pas trop cette méthode ; les noyaux fournis sont parfois des pré-versions et auxquels l'équipe Debian a souvent rajouté des patches venant de droite et de gauche (par exemple les noyaux fournis avec 2.2r0 étaient des 2.2.17pre6...), et on peut donc avoir parfois, mais très rarement, quelques surprises.

Sources disponibles en paquets au format Debian

Pour connaître la liste des différents paquets disponibles et contenant les sources du noyau Linux, c'est très simple, on utilise la méthode classique du "apt-cache search". Démonstration :

apt-cache search kernel-source

Résultat :

kernel-source-2.2.18pre21 - Linux kernel source for version 2.2.18pre21
kernel-source-2.0.36 - Linux kernel source.
kernel-source-2.0.38 - Linux kernel source for version 2.0.38
kernel-source-2.2.10 - Linux kernel source.
kernel-source-2.2.12 - Linux kernel source.
kernel-source-2.2.13 - Linux kernel source.
kernel-source-2.2.15 - Linux kernel source for version 2.2.15
kernel-source-2.2.17 - Linux kernel source for version 2.2.17

Nous avons donc maintenant le choix entre différentes versions du noyau Linux. Prenons alors ici la dernière disponible, à savoir la 2.2.18pre21. On l'installe le plus normalement possible :

apt-get install kernel-source-2.2.18pre21

Cette dernière étape à pour effet de placer les sources du noyau dans /usr/src, dans un ficher nommé kernel-source-2.2.18pre21.tar.bz2.

Cette archive bzippée relativement volumineuse est donc à décompresser, comme ceci :

tar xvfI kernel-source-2.2.18pre21.tar.bz2

Ensuite on se retrouve avec un répertoire kernel-source-2.2.18pre21. Reste à ne pas oublier de faire un lien symbolique linux vers ce dernier :

ln -s kernel-source-2.2.18pre21 linux

Vous pouvez alors dès à présent passer à l'étape de configuration du noyau.

Sources traditionnelles du noyau Linux

A l'heure où j'écris cet article, la dernière version du noyau Linux est la 2.2.18 (Oui, le 2.4.0 est sorti... Bref, pour aujourd'hui on va pas chipoter...). C'est probablement l'un des meilleurs noyau qui soit sorti dans la série des 2.2. Il inclus un grand nombre choses (l'AGP, DRM, USB, SBLive! et j'en oublie sûrement beaucoup d'autres...) qui permettent largement de se passer du tout nouveau 2.4.0.

Tout d'abord, procurez vous une archive contenant les sources du noyau, linux-2.2.18.tar.gz ou linux.2.2.18.tar.bz2 sur http://www.kernel.org ou tout autre miroir. Ensuite, placez vous dans le répertoire /usr/src. Vérifiez qu'il n'y a pas déjà un répertoire linux. Si tel était le cas, renommez ou déplacez ce dernier. Décompressez enfin l'archive que vous avez rapatrié (selon celle-ci):

tar xvfz linux-2.2.18.tar.gz

ou

tar xvfI linux-2.2.18.tar.bz2

Vous vous retrouverez alors avec un répertoire /usr/src/linux qui contient donc les sources de votre noyau Linux. Comme toujours, lisez bien le Kernel-HOWTO (et en particulier le volet 3.2) pour plus d'information.

2.2 Configuration du noyau

Pour que la compilation puisse s'effectuer à l'étape suivante, il est nécessaire de définir au noyau un fichier de configuration. Ce dernier se trouve placé dans la racine du répertoire linux crée lors de la décompression de l'archive contenant les sources ; ce fichier se nomme .config (et est donc un fichier "caché"). Vous pouvez l'éditer à la main, mais c'est un travail fastidieux pour le non-spécialiste. Le plus facile est plutôt de définir la configuration à l'aide d'une interface graphique qui s'occupera ensuite d'écrire un fichier .config pour vous. Pour cela, lancez la commande suivante, en faisant toujours bien attention de vous trouver positionné dans /usr/src/linux:

make menuconfig

Il y a un tas de rubriques, avec des cases à cocher ou non. Faites selon vos besoins puis quittez l'interface en prenant soin de confirmer l'enregistrement de vos modifications si besoin était. Pour plus de précisions n'hésitez pas à consulter le Kernel-HOWTO.

2.3 Compilation

C'est ici que vous allez apercevoir l'originalité Debian. Nous avons la possibilité de mettre sous forme de paquets le noyau, plus précisément ce dernier et ses modules, la documentation de celui ci, ses fichiers d'en-têtes ainsi que ses sources. De ce fait on peut installer et retirer facilement un noyau précis et ce qui gravite autour de celui-ci très facilement. Aussi, lorsque l'on souhaite tester un nouveau noyau, la procédure d'installation est largement automatisée, et nous facilite ainsi le travail.

Classiquement sous Linux, après avoir configuré le noyau, on passe par différentes étapes. En général, on fait un nettoyage dans les sources (fichiers objets d'une ancienne compilation par exemple), puis on cherche les dépendances, on compile le noyau, puis ses modules et enfin on installe le tout (les commandes exécutées pour effectuer une compilation traditionnelle sont généralement celles-ci: make clean, make dep, make bzImage, make modules...).

Avec Debian, il y quelques changements, notamment le nettoyage ce fait plutôt comme ceci:

make-kpkg clean

Ensuite, cela devient très simple:

make-kpkg --revision=2.2.18-1 kernel_image

Avec cette dernière commande, le système effectue plusieurs tâches successivement ; il vérifie les dépendances, compile le noyau, après il s'occupe des modules, et enfin très important il fabrique pour vous un paquet .deb où il inclura tout le travail réalisé (i.e le noyau et les modules).

Aussi, il est possible de construire d'autres paquets, par exemple et successivement avec les commandes suivantes, on obtient soit les sources, soit la documentation ou encore les fichiers d'en-têtes (nécessaires pour certaines de vos compilations):

make-kpkg kernel_source
make-kpkg kernel_doc
make-kpkg kernel_headers

Pour pouvez également faire "la totale", i.e. un make-kpkg clean et make-kpkg kernel_*, tout cela avec une seule commande:

make-kpkg buildpackage

2.4 L'option --revision

Une dernière note concernant l'option --revision introduite ci-dessus avec la commande make-kpkg kernel_image ; cette option permet de "personnaliser" un peu le paquet produit. Ici, j'ai choisi d'y intégrer le numéro du noyau (2.2.18), ainsi qu'un numéro de révision (1). Faites attention, n'y mettez pas n'importe quoi, vous pourriez avoir des surprises ; lisez donc très attentivement la page de manuel de make-kpkg.

2.5 Installation

Une fois la compilation terminée, et si celle-ci c'est déroulée correctement, vous devriez avoir selon vos désirs auparavant exigés, un ou plusieurs nouveaux fichiers situés dans /usr/src. Nous allons ici prendre le cas où l'on spécifie à make-kpkg la cible buildpackage pour pouvoir établir une petite liste exemple des fichiers produits que voici:

  1. kernel-doc-2.2.18-mmedia_2.2.18-3_all.deb
  2. kernel-headers-2.2.18-mmedia_2.2.18-3_i386.deb
  3. kernel-image-2.2.18-mmedia_2.2.18-3_i386.deb
  4. kernel-source-2.2.18-mmedia_2.2.18-3.dsc
  5. kernel-source-2.2.18-mmedia_2.2.18-3.tar.gz
  6. kernel-source-2.2.18-mmedia_2.2.18-3_all.deb
  7. kernel-source-2.2.18-mmedia_2.2.18-3_i386.changes

Vous l'aurez tous deviné, le premier fichier inclus la documentation et le deuxième les fichiers d'en-têtes. Le troisième correspond au paquet le plus essentiel du lot ; il inclus donc le noyau et ses modules. Pour l'installer, rien de plus facile:

dpkg -i kernel-image-2.2.18-mmedia_2.2.18-3_i386.deb

Le processus d'installation se déclenchera et vous posera normalement quelques questions. Répondez y consciencieusement. Une fois terminé, et si tout c'est bien passé, vous n'avez plus qu'à redémarrer pour essayer votre nouveau noyau. Si ce dernier vous convient alors tant mieux, dans le cas contraire (si vous n'arrivez pas à démarrer le système correctement, faites le avec la disquette de démarrage de votre ancien noyau, disquette que vous devriez normalement et impérativement avoir...), retirez le avec la commande suivante:

apt-get remove kernel-image-2.2.18-mmedia

Ensuite, n'oubliez surtout pas de réinstaller votre ancien noyau convenablement.

Pour finir, l'avant dernier fichier de la liste correspond simplement aux sources incluses dans un paquet au format .deb.


Page suivante Page précédente Table des matières