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.
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.
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
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.
Nous pouvons ensuite lancer la commande mkinitrd après avoir supprimé l’ancien initrd :
Je désactive aussi SElinux puisque je n’ai pas défini de policy en editant le fichier /etc/selinux/config :
Je modifie le fichier /boot/grub/menu.lst pour y référencer mon nouveau kernel :
Il suffit ensuite de redémarrer pour que le nouveau noyau soit pris en compte :