Décompactage des sources du noyau, correction éventuelle du noyau

Les sources du noyau sont à placer dans /usr/src. Il vous faut donc vous placer dans ce répertoire puis y décompresser les sources :

$ cd /usr/src
$ mv linux linux.old
$ tar xjf /path/to/linux-2.4.20.tar.bz2

La commande mv linux linux.old est nécessaire : en effet, vous disposez peut-être déjà des sources d'une autre version du noyau. Cette commande fait en sorte que vous ne les écrasiez pas. Dès l'archive décompressée, vous disposez d'un répertoire linux-<version> ( où <version> désigne le numéro de version du noyau) avec les sources du nouveau noyau. Vous pouvez créer un lien (ln -s linux-<version> linux) pour des raisons de commodité.

Maintenant, les patches. Supposons que vous voulez effectivement «patcher» (corriger) du 2.4.20 vers le 2.4.22 et avez téléchargé les patches nécessaires pour ce faire : rendez-vous dans le répertoire linux nouvellement créé, puis appliquez les patches :

$ cd linux
$ bzcat -dc /path/to/patch-2.4.21.bz2 | patch -p1
$ bzcat -dc /path/to/patch-2.4.22.bz2 | patch -p1
$ cd ..

De façon générale, passer d'une version 2.4.x à 2.4.y requiert que vous appliquiez tous les patches 2.4.x+1, 2.4.x+2, ..., 2.4.y dans l'ordre. Pour retourner à la version précédente de 2.4.y à 2.4.x, répétez exactement la même procédure mais en appliquant les patches dans l'ordre inverse et avec l'option -R de patch (Reverse, soit inverse). Ainsi, pour repasser du noyau 2.4.22 au noyau 2.4.20, vous feriez :

$ bzcat /path/to/patch-2.4.22.bz2 | patch -p1 -R
$ bzcat /path/to/patch-2.4.21.bz2 | patch -p1 -R

Astuce

Si vous souhaitez tester si un correctif s'appliquera correctement avant de l'appliquer vraiment, ajoutez l'option --dry-try à la commande patch.

Ensuite, dans un souci de clarté (et aussi pour s'y retrouver), vous pouvez renommer linux pour refléter la version du noyau et créer un lien symbolique :

$ mv linux linux-2.4.22
$ ln -s linux-2.4.22 linux

Il est maintenant temps de passer à la configuration. Pour ce faire, placez-vous dans le répertoire des sources :

$ cd linux