OVH : compiler un kernel personnalisé

OVH

OVH, société d’hébergement mutlualisé et de serveurs dédiés, fournit avec ses serveurs des Kernels Linux qu’ils personnalisent et compilent eux même (pour des raisons d’optimisation et de sécurité).

Cependant il arrive que ces kernels ne correspondent pas aux besoins utilisateur. Du coup il faut les recompiler (il s’agit donc de recompiler kernel ovh) si vous avez besoin de vous faire votre version. Alors attention c’est technique la compilation de kernel. Si vous ne maîtrisez pas, ne vous lancez pas ou alors bidouillez ça sur une machine que vous pouvez réinstaller à volonté.

Pour commencer, le mieux à faire est d’utiliser un fichier de configuration OVH que vous pouvez trouver sur le FTP suivant : ftp://ftp.ovh.net/made-in-ovh/bzImage.

Comment déterminer le bon fichier de configuration? C’est simple (enfin..) : si vous avez une machine en IPv4 avec un processeur 32 bits, le fichier générique se nomme 2.6-config-xxxx-std-ipv4-32 ( à vous ensuite de décliner / d’adapter selon vos besoins et votre configuration ).

Ensuite il va falloir aller chercher le kernel que vous voulez (actuellement en 2.6.30 pour les versions de test) sur le site Kernel.org. A l’heure actuelle, si on voulait compiler la toute dernière version on prendrait : http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.bz2

Alors pour commencer , dans le terminal ( SSH ) vous allez vous placer dans le dossier /usr/src

cd /usr/src

Ensuite on va récupérer le kernel dont on veut. Par exemple celui cité au dessus.

wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.bz2

On va décompresser l’archive..

tar xf  linux-2.6.30.5.tar.bz2

Puis se placer dans le bon dossier

cd linux-2.6.30.5

Puis tapez la commande mrproper

On fait ensuite un wget du fichier de configuration, par exemple wget ftp://ftp.ovh.net:21//made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-32

On déplace ce fichier dans le dossier .config :

mv 2.6-config-xxxx-std-ipv4-32 .config

et on tape :

make menuconfig

Le menu suivant va s’afficher :

Linux Kernel Configuration

Il suffit de descendre son curseur jusqu’à « Load an alternate configuration file » puis d’appuyer sur Entrée puis de valider, le système propose par défaut d’utiliser .config , le dossier qu’on utilisait précédemment.

Validez. Si vous avez des modifications , faites les puis sauvegardez.

Ensuite tapez

make

puis la ligne suivante (à adapter)

cp arch/i386/bzImage /boot/le-super-kernel-2.6.30

Tapez ensuite :

vi /etc/lilo.conf

et adaptez la ligne qui spécifie l’image de boot afin d’obtenir quelquechose comme ceci :

image=/boot/le-super-kernel-2.6.30

Quittez et sauvegardez ( :wq dans VI ) puis tapez /sbin/lilo suivi de shutdown -r now

Votre système redémarre avec son nouveau kernel :-)

Tags: ,

  • flix

    Bonjour,
    Petite correction => make mrproper

    Cordialement,
    Flix.

  • Tom

    Merci pour le tuto.
    Serai-t-il possible d’avoir une nouvelle version, notamment avec grub2 (enfin, grub-pc)?
    Merci! :)

  • Paul Poulet

    Bonjour,

    Très bon tutoriel. 

    Accessoirement, deux petits compléments :
    1. La même que Flix :-) : make proper
    2. Si l’on compile sur un serveur « neuf », il faut installer les paquets pour pouvoir compiler le noyau :
    apt-get install gcc make ncurses-dev # pour les Debian, Ubuntu et consorts.

    ++

  • Cedric

    Je ne trouve pas le fichier de config pour le 2.6.38.2-grsec-xxxx-grs-ipv6-64.
    Je ne vois que les config en xxxx-std.
    ou puis je trouver ce fichier ?

  • webofmars

    les patchs disponible sur le ftp vont ils être intégrés automatiquement avec cela ?

  • Bonjour, , je ne sais pas du tout , désolé je n’ai plus de serveur dédié chez OVH en plus :(