Compiler un kernel vanilla sur CentOS 4

Nous allons voir dans cet article comment passer du kernel 2.6.9-67 fourni avec CentOS 4.6 à la version 2.6.29.1 du kernel vanilla (c’est à dire sans aucun patch) récupéré sur ftp.kernel.org.

En pré-requis, vérifiez que les packages gcc, ncurses-devel, rpm-build sont installés.

Tout d’abord, il faut récupérer les sources du kernel et les décompresser dans /usr/src/. Nous copions ensuite le fichier de configuration du kernel actuel dans le répertoire du kernel que nous voulons compiler.

installsrc

Nous lançons alors la commande make oldconfig qui permet de reprendre les options du noyau précédent et qui sont encore valable pour le nouveau kernel. Cependant, pour toutes les nouvelles options/modifications, une confirmation manuelle sera demandée. La réponse conseillée est en majuscule dans la liste des options possibles. Bien évidemment, vous pouvez ajouter/supprimer des fonctionnalités à votre guise.

oldconfig

Une fois la configuration terminé, nous pouvons lancer la compilation avec la commande make rpm

Une fois la compilation terminée, il suffit d’installer le kernel avec la commande rpm -ivh /usr/src/redhat/RPMS/i386/kernel-2.6.29.1-1.i386.rpm –nodeps

rpm1

Ensuite, nous allons régénérer l’initrd afin de précharger le module utile pour LVM. Il faut donc éditer le fichier /etc/modprobe.conf pour mettre en commentaire la ligne faisant référence au module mptscsi.

modprobe

Nous pouvons ensuite lancer la commande mkinitrd après avoir supprimé l’ancien initrd :

mkinitrd

Je désactive aussi SElinux puisque je n’ai pas défini de policy en editant le fichier /etc/selinux/config :

selinux

Je modifie le fichier /boot/grub/menu.lst pour y référencer mon nouveau kernel :

grub

Il suffit ensuite de redémarrer pour que le nouveau noyau soit pris en compte :

uname