Outils pour utilisateurs

Outils du site


compiler_un_noyau_mandriva_sur_mesure

Pour quoi faire ?

Quand on possède un PC relativement standard du point de vue matériel on a, sauf exception très particulière, pas besoin de compiler un noyau Linux, c'est-à-dire créer un noyau nécessitant réellement des options différentes de celles prévues dans les noyaux standards de la distribution. Ceci est vrai pour toutes les distributions Linux.

La distribution Mandriva en particulier, qui est plus particulièrement mise au point par des Français (mais pas seulement), tient donc naturellement compte de la plupart des matériels couramment commercialisés sur le marché français.

Il arrive cependant dans de rares cas qu'il faille réellement activer un pilote de périphériques particulier non prévu par défaut. Il peut aussi arriver qu'au contraire on souhaite avoir un noyau optimisé plus petit, avec seulement les pilotes nécessaires, et/ou avec d'autres options générales de nature à améliorer les performances du PC.

Ici nous parlerons plus particulièrement de Mandriva 2006; les manips présentées seront cependant analogues pour d'autres distributions.

Article rédigé par Jeanmm 8-)
version initiale : 30 mai 2006.

Choix d'un noyau standard

Avant de se lancer tête baissée dans la compilation d'un noyau, il peut être utile de se renseigner sur les noyaux déjà disponibles par défaut, il se peut que l'un d'eux réponde aux besoins. Il existe en effet plusieurs noyaux standards, et quand on installe une Mandriva le programme d'installation choisit celui qui lui semble le plus approprié selon le PC, mais rien n'empêche ensuite d'en essayer un autre. Exemple de noyaux :

  • kernel-2.4.28.0.rc1.5mdk
  • kernel-2.6.12.22mdk
  • kernel-BOOT-2.6.12.22mdk
  • kernel-enterprise-2.4.28.0.rc1.5mdk
  • kernel-i586-up-1GB-2.4.28.0.rc1.5mdk
  • kernel-i586-up-1GB-2.6.12.22mdk
  • kernel-i686-up-4GB-2.6.12.22mdk
  • kernel-multimedia-2.6.12-12.mm.1mdk
  • kernel-multimedia-enterprise-2.6.12-12.mm.1mdk
  • kernel-multimedia-i686-up-4GB-2.6.12-12.mm.1mdk
  • kernel-multimedia-win4lin-2.6.12-12.mm.1mdk
  • kernel-multimedia-win4lin-enterprise-2.6.12-12.mm.1mdk
  • kernel-multimedia-win4lin-i686-up-4GB-2.6.12-12.mm.1mdk
  • kernel-smp-2.4.28.0.rc1.5mdk
  • kernel-smp-2.6.12.22mdk
  • kernel-uml
  • kernel-uml-2.4-2.4.22-2mdk
  • kernel-uml-2.6.10-2mdk
  • kernel-win4lin-2.6.12.12mdk
  • kernel-win4lin-i586-up-1GB-2.6.12.12mdk
  • kernel-win4lin-i686-up-4GB-2.6.12.12mdk
  • kernel-win4lin-smp-2.6.12.12mdk
  • kernel-xbox-2.6.12.22mdk
  • kernel-xen0-2.6.12.22mdk
  • kernel-xenU-2.6.12.22mdk

Compilation d'un noyau sur mesure

Si aucun des choix par défaut ne convient, on pourra essayer de se créer son propre noyau.

Toutes les manips ci-dessous sont à effectuer dans une console en root. Il faut commencer par installer un noyau-source, par exemple par le CCM (centre de contrôle Mandriva), ou par commande urpmi :

urpmi kernel-source-2.6-2.6.12-22mdk

A noter qu'il existe plusieurs noyaux sources, et bien sûr on choisira celui qui se rapprochera de son besoin.

Editer ensuite /usr/src/linux/Makefile et choisir son nom de version, dans la ligne EXTRAVERSION, par exemple “22mdkcustom” :

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 12
EXTRAVERSION = -22mdkcustom

Passer successivement les commandes suivantes, sachant que xconfig lance un outil interactif dans lequel on aura à passer en revue toutes les options possibles, ça peut durer un certain temps… :

cd /usr/src/linux
make clean
make xconfig
make bzImage
make modules
make modules_install
cp System.map /boot/System.map-2.6.12-22mdkcustom
cd /boot
mkinitrd initrd-2.6.12-22mdkcustom.img 2.6.12-22mdkcustom

Il faut aussi copier le nouveau noyau dans /boot; on peut le rechercher par une commande du type :

find /usr/src -iname bzimage

Si la commande répond :

/usr/src/linux-2.6.12-22mdk/arch/i386/boot/bzImage

On pourra le copier par :

cp /usr/src/linux-2.6.12-22mdk/arch/i386/boot/bzImage /boot/vmlinuz-2.6.12-22mdkcustom

Bien sûr il ne faut pas qu'il y aie des erreurs. Si les commandes ci-dessus émettent des messages d'erreurs il conviendra de faire en sorte de corriger, et cet article ne peut en aucun cas répondre à de tels soucis. S'armer de patience, utiliser les ressources du web (moteurs de recherche, forums, faqs…). De même, le détail des centaines d'options possibles est hors de portée de cette page, on pourra notamment étudier les fichiers du dossier /usr/src/linux/Documentation/.

Editer /etc/lilo.conf (ou son équivalent si on préfère grub) et dupliquer/modifier les lignes de lancement du Linux courant, par exemple :

image=/boot/vmlinuz-2.6.12-22mdkcustom
	label="Mandriva-2006-perso"
	root=/dev/hdb2
	initrd=/boot/initrd-2.6.12-22mdkcustom.img
	append="noapic nolapic resume=/dev/hdb5 splash=silent"
	vga=788

Ne pas oublier de taper finalement la commande :

lilo -v

On peut alors rebooter puis choisir son nouveau noyau et vérifier qu'il se lance et satisfasse aux besoins. Si c'est bon on peut refaire un peu de nettoyage comme expliqué dans l'article pour changer de noyau standard (désinstaller l'ancien noyau inutile, ajuster lilo.conf…) : manip standard.

Voilà. Pour d'autres précisions se reporter à des bouquins spécialisés ou aux articles d'honorables contributeurs sur le web. 8-)

compiler_un_noyau_mandriva_sur_mesure.txt · Dernière modification : 2025/02/17 09:52 de 127.0.0.1