Index général | Index de l'aide

7. Recompilation du noyau

Le noyau est le coeur du système d'exploitation Linux. Rigoureusement, on devrait même dire que c'est Linux. C'est le seul élément capable de communiquer directement avec le matériel. Le noyau est la principale différence entre les divers systèmes UNIX.
Afin d'adapter au maximum le noyau à votre configuration et vos besoins, une recompilation du noyau est nécéssaire. Par exemple, si vous voulez lire des partitions UFS (FreeBSD) sous Linux ou activer votre carte son, une recompilation du noyau vous facilitera la tâche.

7.1 Creer une disquette d'amorçage avec le noyau actuel

Avant cela, loguez vous en tant que root.

Pour réaliser une disquette d'amorçage, tapez:
#mkbootdisk version_du_noyau

Tapez la commande suivante pour identifier la version de votre kernel:
$uname -r

Par exemple, si votre version s'appelle 2.0.14, vous taperez:
#mkbootdisk 2.0.14

*Note*:cette étape n'est pas indispensable mais conseillée

7.2 Mise en place des sources du noyau

Tout d'abord, vous devrez vérifier si les sources du noyau ont été installées. Les sources doivent se trouver dans le répertoire /usr/src/linux .

7.2.1 Installation des sources du noyau

Vous trouverez les dernières versions du noyau à l'adresse www.kernel.org .
Ils sont au format tar.gz et/ou tar.bz2.
Par exemple, si votre archive se trouve dans le répertoire /home/pierre et s'appelle linux-2.0.14.tar.gz , vous devrez passez dans le répertoire /usr/src et y décompresser les sources ainsi:
#cd /usr/src/
#tar -zxvf /home/pierre/linux-2.0.14.tar.gz

ou pour une archive tar.bz2:
#cd /usr/src/
#tar -jxvf /home/pierre/linux-2.0.14.tar.bz2

Un nouveau répertoire nommé linux est alors créé dans /usr/src.

*Note*: Vous pouvez également trouver des archives RPM ou DEB contenant les sources.

7.2.2 Patcher les sources du noyau

Vous avez par exemple les sources du noyau 2.0.13 et vous voulez appliquer la mise à jour vers le noyau 2.0.14. Pour cela, il vous suffira de télécharger le patch adéquate sur kernel.org puis de patcher les sources de votre noyau.

Pour cela, copier tout d'abord l'archive contenant votre patch dans le répertoire /usr/src . Le répertoire /usr/src/linux doit contenir les sources complètes du noyau (voir section 7.2.1). Si le répertoire contenant vos sources s'appelle par exemple /usr/src/linux-2.0.13, créez un lien symbolique par la commande:
#ln -s /usr/src/linux-2.0.13 /usr/src/linux

Ensuite, si votre patch s'appelle patch-2.0.14.gz décompresser votre archive ainsi:
#gzip -d patch-2.0.14.gz

ou pour un patch compressé par bzip2:
#bzip2 -d patch-2.0.14.bz2

Vous pouvez alors appliquer le patch par la commande:
#patch -p0 <patch-2.0.14

7.3 Configuration du noyau

En tant qu'utilisateur root, passez dans le répertoire où les sources sont installées (ex: /usr/src/linux) et tapez la commande make xconfig sous X ou make menuconfig si vous etes dans une console.
Les versions Console et X sont identiques mise à part l'usage de la souris sous X Window et une interface un peu plus agréable.

La configuration du noyau se réalise très facilement grâce aux menus. Vous choisissez une catégorie puis les pilotes que vous voulez. Pour activer un driver, vous pouvez choisir y (yes, le pilote sera compiler dans le noyau) ou m (module, le pilote sera chargé en tant que module). Pour ne pas installer un driver, choisissez l'option n (no).
En tant que module, le pilote devra etre chargé pour etre éxecuté. Ce choix convient pour les périphériques que l'on utilise de temps en temps (interface parallèle par exemple). Certains pilotes devraient etre compilés dans le noyau si ils sont souvent utilisés (pour les disques durs par exemple).
Pour avoir une description du pilote, appuyez sur le bouton help.
Lorsque vous avez terminé la configuration du noyau, sauvegardez vos modifications. Appuyez sur Save and Exit dans le menu principal sous X ou choisissez Exit en mode console.

7.4 Compilation du nouveau noyau

Pour nettoyer des traces eventuelles de compilations précédentes:
#make dep clean

Pour compiler le noyau tapez:
#make zImage

Si vous avez inclus de nombreux pilotes, il est probable que vous receviez un message d'erreur du type "big kernel image". Cela veut dire que votre noyau est trop gros. Tapez alors:
#make bzImage

*Note*=Le temps de compilation est relativement long et dépend de la puissance de la machine.

7.4.1 Compiler et installer les modules du noyau

#make modules modules_install

*Note*=Cette opération prend égalemet un temps conséquent.

7.4.2 Mise en place du noyau

Le noyau doit etre déposé dans le répertoire /boot et recevoir un nom du type vmlinux-version_du_noyau (ce type de nom n'est pas obligatoire mais conseillé). Pour copier votre nouveau noyau dans ce répertoire, tapez une commande du type:
#cp arch/i386/boot/zImage /boot/vmlinuz-2.0.14

7.4.3 Créer une disquette de démarrage

Tapez la commande suivante pour créer une disquette d'amorçage avec le nouveau noyau:
#dd if=arch/i386/boot/zImage of=/dev/fd0

7.4.4 Configurer LILO

Si vous utilisez LILO pour démarrer sous Linux, vous devrez éditer le fichier /etc/lilo.conf puis valider vos modifications en passant en root (commande su) et en tapant la commande lilo.

 Page précédente (Les éditeurs)

Dernière modification: 27/05/2001
Document écrit par Christophe Robalo