Recompiler son noyau est une tâche courante sous Linux, cela permet d'adapter celui-ci à de nouvelles caractéristiques de sa machine, ou bien de rajouter des fonctionnalités ou des corrections grâce à des patchs, puisque le principe même de Linux, en constant développement, est de pouvoir profiter quasiment aussitôt des mises à jour faites par les programmeurs.
Tout d'abord pour définir sa configuration, c'est-à-dire déterminer les
options que vous voulez utiliser qui seront les plus adaptées à la machine, se
positionner dans /usr/src/linux
et vous pouvez utiliser 3 commandes
différentes :
$make config Mode texte. Pose une rafale de question assez peu conviviale $make menuconfig Mode texte couleur. Menu déroulants très utilisable $make xconfig Tcl/Tk sous X. Pour les mordus de la souris, très bien aussi
Une fois terminé, il faut effacer les traces des compilations précédentes en faisant :
$make dep; make clean
Enfin la compilation proprement dite débute à la commande :
$make zImage
À ce stade, selon la machine, il faut attendre un peu : (486DX2 66 = 40mn, Pentium 120 = 20mn, Cyrix P166+ = 8 mn, PPro 200 = 4 mn) temps à titre indicatif, mais c'est un bon benchmark :-)
Si certaines parties du noyau sont activées en tant que modules, il faut également les compiler :
$make modules
Puis les installer :
$make modules_install
Récupérer ensuite le noyau dans /usr/src/linux/arch/i386/boot/zImage
Il faut ensuite le copier dans /boot
et renommer les éventuels
vmlinuz
, zImage
et autres selon sa convenance.
Éditer éventuellement le fichier /etc/lilo.conf pour rajouter au minimum une entrée pour l'ancien noyau et une pour le nouveau en cas de problème avec celui nouvellement compilé (ça n'est pas si rare !)
Pour finir lancer la commande lilo
rebooter : c'est prêt !
Pour patcher son noyau, la commande patch s'occupe de tout. Ainsi pour ajouter
le patch nouveau.pch, se positionner dans /usr/src/linux : $ patch -p1 < nouveau.patch
Pour retirer proprement un patch, il suffit de l'appliquer une nouvelle fois. Le programme propose alors d'enlever les parties correspondantes.