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

One thought on “Compiler un kernel vanilla sur CentOS 4”

  1. 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 …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.