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 :
Bonjour,
Je tiens a vous remercier sincerement pour ces explications, tres bien detaille, que demande de plus ? rien bien sur.
Sa m’as aide a recompiler un noyau 2.6.x sur centos 5.4 qui, malgre que le noyau n’est pas aussi vieux, avait du mal a reconnaitre une carte réseau marvel yukon 88E-8059 Family, et n’avait pas de modules ntfs en plus, donc j’etais obligé de télécharger tout ce qu’il faut sous windows, mettre sur une cle usb formaté en fat32 et faire tout le travail sous linux.
encore une foie et bonnes continuations …