Afin de pouvoir compiler votre noyau, vous allez avoir besoin de quelque outils que vous allez pouvoir télécharger facilement a l'aide de urpmi. Il est donc nécessaire de bien avoir configuré vos sources de téléchargement de packages.
La configuration des sources est differente selon que vous utilisiez une architechture de type i586, ia64, ppc ou x86_64. Si vous ne savez pas configurer vos sources, il vous est possible de les configurer de maniere tres simple a l'aide de easy urpmi
Une fois vos sources correctement configurées, il va falloir telecharger les outils de développement indispensables a la compilation du noyau a savoir gcc et ses dépendances, make et ncurses, tcl/tk, Gtk, Qt selon le mode de configuration que vous désirez utiliser ( ncurses dans l'exemple ) ainsi que bzip2 pour décompresser les sources.
Nous allons tout d'abord lancer un terminal et passer en mode root le temps de l'installation. Pour passer en mode root, il suffit de faire:
$ su
Votre mot de passe root va alors vous etre demandé
$ password
Entez alors votre mot de passe et installez les packages comme suit, une fois en mode root. Vous pouvez vérifier que vous etes bel et bien en mode root grace au symbole au debut de la ligne de commande. En root, vous devez avoir un # contrairement aux autres utilisateurs qui ont un $.
#urpmi gcc
#urpmi make
#urpmi libncurses5-devel
#urpmi bzip2
Mandriva offre également un gestionnaire tres efficace appelé harddrake2 accessible a l'aide de la commande:
# harddrake2

Ou bien en cliquant sur le menu Applications/Systeme/Configuration/Configurer votre ordinateur/ puis en selectionnant Materiel/Verifier et configurer votre materiel.
3.1 Installation des sources
A présent votre machine possede tous les outils nécessaires, nous allons donc télécharger la derniere version stable des sources disponibles du kernel sur le site kernel.org. Attention, assurez de bien telecharger la version full en cliquant sur le F, et enregistrez la dans le repertoire /usr/src/.
Une fois les bonnes sources telechargees il va falloir les decompresser.
On va maintenant se placer dans le repertoire /usr/src/ grace a la commande:
# cd /usr/src/
Et on va decompresser les sources a l'aide de la commande tar:
# tar -xjf linux-2.6.x.x.tar.bz2
Un dossier appelé linux-2.6.x.x/ vient de se créer. Nous allons créer un lien symbolique appele linux pointant sur le dossier linux-2.6.x.x/.
Pour s'assurer que le dossier /usr/src/ ne contient pas d'autre lien symbolique du meme nom.
# rm linux
On crée a present notre lien symbolique pointant sur linux-2.6.x.x/
# ln -s linux-2.6.x.x/ linux
Et enfin on verifie que le lien a bien ete cree
# ls -l /usr/src/
linux -> linux-2.6.x.x/ doit alors s'afficher, indiquant comme si dessous que le lien pointe bien vers les sources 2.6.x.x
lrwxrwxrwx 1 root root 15 mai 23 21:23 linux -> linux-2.6.x.x/
drwxrwxrwx 20 root root 4096 mai 23 21:55 linux-2.6.x.x/
-rw-r--r-- 1 root root 40838199 mai 23 21:20 linux-2.6.x.x.tar.bz2
3.2 Configuration du noyau
Une fois la verification effectuee, nous allons nous placer dans le repertoire /usr/src/linux/ en entrant la commande suivante:
#cd /usr/src/linux/
Et nous allons configurer le noyau. Plusieurs interfaces de configuration sont alors disponibles.
-L'interface ncurses ( mode semi-graphique ) qui se lance comme suit:
# make menuconfig

-L'interface GTK+ ( mode graphique )
# make gconfig
-L'interface QT ( mode graphique )
# make xconfig
A present, en fonction de votre materiel et de vos besoins vous allez pouvoir configurer toute une liste d'options permettant d'optimiser votre systeme. Il existe alors 3 types d'etats pour ces options. Les characteres precedent ces options sont soit une * indiquant que l'option est toujours active dans le noyau, soit un M indiquant qu'elle est chargée en module suivant les besoins, soit un espace signifiant que l'option n'est pas prise en charge par le noyau.
Ceci peut sembler un peu barbare a premiere vue mais permet d'alléger grandement le noyau et donc d'eviter de perdre en rapidité.
Il est utile de savoir que toute votre configuration noyau est en fait stockée dans le fichier .config. Si vous téléchargez un autre noyau et que vous placez votre fichier .config dans le répertoire racine des sources vous pourrez le réutiliser.
3.3 Liste succinte des options du noyau
Code maturity level options: cache ou de fait apparaître les options encore en développement considérées comme instables.General setup: options générales sur votre système.
Loadable module support: gestion des modules.
Block layer: entrées/sorties sur votre carte-mère.
Processor type and features: options relatives auprocesseur.
Power management options (ACPI, APM): économie d'énergie, mise en veille et l'ACPI/APM.
Bus options (PCI, PCMCIA, EISA, MCA, ISA): gestion des slots pour cartes PCI, PCMCIA, ISA, etc...
Executable file formats: gestion des fichiers exécutables.
Networking: protocoles réseau gérés par le noyau.
Device Drivers: pilotes matériel.
File systems: systèmes de fichiers gérés par le noyau.
Instrumentation Support: profilage du noyau (inutile de l'activer).
Kernel hacking; déboguage du noyau.
Security options: modèle de sécurité de votre noyau.
Cryptographic options: algorithmes cryptographiques pouvant être implantés dans le noyau.
Library routines: librairies communes du noyau
4.1 Compilation
Pour lancer la compilation, il vous suffit a présent de faire
# make
# make modules
# make modules_install
4.2 Installation
Bien evidemment, sous mandriva 2006 qui est une distribution récente, l'installation automatique est tres bien géree et donc est a utiliser en priorité par rapport a la vieille installation manuelle.
# make install
Nous remarquerons qu'il est possible d'additionner ces actions en une seule et meme commande a l'aide de l'operateur &&, ce qui nous donnerait ici
# make && make modules && make modules_install && make install
A présent votre nouveau noyau est pret a fonctionner, mais nous allons quand meme configurer quelque petits détails. Il faut noter que en cas de problemes, il est toujours possible d'utiliser l'ancien noyau car Mandriva le sauvegarde.
Mandriva utilise automatiquement un fichier en complément du noyau, fichier nommé initrd. Ce fichier est en fait une image de disque ( Disque virtuel initial :INITial Ram Disk -> initrd ) contenant le plus souvent les modules que l'on souhaite rendre utilisables dès le démarrage du noyau.
# vi /etc/lilo.conf
Le fichier de configuration s'affiche alors a l'ecran. Normalement, Mandriva crée une section semblable a celle ci
image=/boot/vmlinuz-2.6.x.x
label="26xx"
root=/dev/hda5
initrd=/boot/initrd-2.6.x.x.img
append="splash=silent"
vga=788
Si elle n'existe pas, il va vous falloir la créer en vous inspirant de celle ci dessus, en spécifiant un nom de votre choix que nous placerons entre double cotes sur la ligne label comme ceci
label="MonKernelPerso"
Il va falloir specifier l'emplacement sur lequel est installé le noyau en specifiant le nom du disque, et eventuellement le numero de la partition, que nous allons noter N comme suit
root=/dev/hdaN
Vous pouvez egalement choisir votre nouveau noyau par defaut au demarrage, en specifiant le label du noyau sur lequel booter par defaut
default="Kernel-Perso"
Si vous utilisez un Disque virtuel initial, renseignez le champ initrd comme ceci
initrd=/boot/initrd-2.6.x.x.img
Sauvegardez et quittez l'editeur.
Afin que toutes les modifications soient prises en compte, il est necessaire de relancer LILO.
# lilo
Voila, apres avoir redémarré votre machine, vous pourrez a booter sur votre tout nouveau noyau.
# vi /etc/lilo.conf
Le fichier de configuration s'affiche alors a l'ecran. Normalement, Mandriva crée une section semblable a celle ci
image=/boot/vmlinuz-2.6.x.x
label="26xx"
root=/dev/hda5
initrd=/boot/initrd-2.6.x.x.img
append="splash=silent"
vga=788
Si elle n'existe pas, il va vous falloir la créer en vous inspirant de celle ci dessus, en spécifiant un nom de votre choix que nous placerons entre double cotes sur la ligne label comme ceci
label="MonKernelPerso"
Il va falloir specifier l'emplacement sur lequel est installé le noyau en specifiant le nom du disque, et eventuellement le numero de la partition, que nous allons noter N comme suit
root=/dev/hdaN
Vous pouvez egalement choisir votre nouveau noyau par defaut au demarrage, en specifiant le label du noyau sur lequel booter par defaut
default="Kernel-Perso"
Si vous utilisez un Disque virtuel initial, renseignez le champ initrd comme ceci
initrd=/boot/initrd-2.6.x.x.img
Sauvegardez et quittez l'editeur.
Afin que toutes les modifications soient prises en compte, il est necessaire de relancer LILO.
# lilo
Voila, apres avoir redémarré votre machine, vous pourrez a booter sur votre tout nouveau noyau.