Menu Content/Inhalt
Accueil arrow Articles arrow Tutoriels arrow [OLD] Compiler et installer un noyau Linux 2.4 ...étape par étape ...
[OLD] Compiler et installer un noyau Linux 2.4 ...étape par étape ... Convertir en PDF Version imprimable Suggérer par mail
Ecrit par Jean-Yves   
12-02-2006

1 Avez-vous vraiement besoin d'un nouveau noyau ???

Si vous possédez une distribution Linux qui fonctionne parfaitement avec votre matériel alors vous n'avez pas besoin d'un nouveau noyau. Les raisons majeures lorsque l'on désire upgrader son noyau sont : des drivers non reconnus suite à l'achat d'un nouveau matériel, des corrections de bug ou de faille de sécurité, ou encore des fonctionnalités nouvelles du noyau que l'on souhaite pouvoir exploiter.



2 Se procurer les sources

Si vous souhaitez ajouter des modules supplémentaires à votre noyau actuel, alors vous devez vérifier que les sources sont bien présentes sur votre disque. Comme nous sommes sous Mandrake 8.2 (valable aussi avec Redhat et SuSe), lancer la commande :

#rpm -qa | grep kernel

Vous devez obtenir le résultat suivant :

kernel-doc-2.4.18-6mdk

kernel-2.4.18.6mdk-1-1mdk

kernel-source-2.4.18-6mdk

kernel-header-2.4.18-25mdk


Pour une autre distribution généralement les sources se trouvent dans /usr/src/linux-2.4.x.x. Il suffit de vérifier leur présence dans ce

répertoire.


#cd /usr/src/linux-2.4.18-6mdk/

# ll

drwxr-xr-x 18 root root 4096 nov 13 00:12 3rdparty/

drwxr-xr-x 11 root root 4096 nov 7 19:57 alsa-driver-0.5.12a/

drwxr-xr-x 3 root root 4096 nov 7 19:57 arch/

-rw-r--r-- 1 root root 18689 oct 10 2001 COPYING

-rw-r--r-- 1 root root 78872 mar 15 2002 CREDITS

drwxr-xr-x 29 root root 4096 nov 7 19:57 Documentation/

drwxr-xr-x 41 root root 4096 nov 13 00:12 drivers/

drwxr-xr-x 10 root root 4096 nov 7 19:58 freeswan-1.95/

drwxr-xr-x 50 root root 4096 nov 13 00:12 fs/

drwxr-xr-x 2 root root 4096 nov 7 19:58 grsecurity/

drwxr-xr-x 10 root root 4096 nov 13 00:12 include/

drwxr-xr-x 2 root root 4096 nov 13 00:12 init/

drwxr-xr-x 2 root root 4096 nov 13 00:12 ipc/

drwxr-xr-x 3 root root 4096 nov 7 19:58 kdb/

drwxr-xr-x 2 root root 4096 nov 13 00:12 kernel/

drwxr-xr-x 2 root root 4096 nov 13 00:12 lib/

-rw-r--r-- 1 root root 40234 mar 15 2002 MAINTAINERS

-rw-r--r-- 1 root root 20350 mar 15 2002 Makefile

drwxr-xr-x 2 root root 4096 nov 13 00:12 mm/

drwxr-xr-x 28 root root 4096 nov 13 00:12 net/

-rw-r--r-- 1 root root 14242 oct 5 2001 README

-rw-r--r-- 1 root root 2815 avr 6 2001 REPORTING-BUGS

-rw-r--r-- 1 root root 9010 fév 25 2002 Rules.make

drwxr-xr-x 5 root root 4096 nov 13 00:12 scripts/


Par contre si vous souhaitez passer à une version plus récente du noyau, il vous faut télécharger les sources. Le mieux est d'aller sur le site officiel kernel.org où vous trouverez toutes les archives des noyaux Linux depuis les toutes premières versions.


      http://www.kernel.org/pub/linux/kernel/


Pour ceux qui utilisent une Mandrake :


#urpmi kernel-source

Une fois les sources récupérées il faut décompresser les archives. Si le format est en .tgz ou .tar.gz comme par exemple : linux-2.4.22.tar.gz


#tar -zxvf linux-2.4.22.tar.gz


Si le format est bunzip2 la commande pour décompresser l'archive est la suivante :


#tar -jxvf linux-2.4.22.tar.bz2



3 Configuration


Avant toute manipulation


Faire une disquette de boot de votre noyau actuel !!!!!!


# dd if=vmlinuz-2.4.18-6mdk of=/dev/fd0


Sauvegardez le fichier .config. Il s'agit d'un fichier caché se trouvant à la racine du répertoire contenant les sources et qui contient toutes les options du noyau.


#cp .config .config.orig


Les différentes commandes de configuration


  • make mrproper : détruit le fichier .config.


Il vous faudra sélectionner les options du noyau selon ce que vous voulez faire.


  • make config : Configuration du noyau en mode texte brut à la console :


[root@monserver linux]# make config

rm -f include/asm

( cd include ; ln -sf asm-i386 asm)

/bin/sh scripts/Configure arch/i386/config.in

#

# Using defaults found in .config

#

*

* Code maturity level options

*

Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]


  • make menuconfig : Configuration du noyau avec un menu en mode texte .




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • make xconfig : Configuration du noyau en mode graphique. Très gourmande en ressources car on utilise le serveur X.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Remarque : Il se peut que vous rencontriez des problèmes pour lancer xconfig. Vérifier que les libtairies ncurses sont présentes sur votre systeme.

# rpm -qa | grep ncurse

Le script, écrit en TCL/TK permettant de lancer xconfig peut être lancer à la main.

#cd /usr/src/linux-2.4.22-26mdk/scripts

wish -f scripts/kconfig.tk

Je ne vous décrit pas ici les options qu'il vous choisir. Là, c'est à vous de jouer. Je ne peux pas connaître vos besoins. Sachez toutefois que :

  • En mode texte avec config : le Y correspond à une option compilée dans le noyau, le N à une non sélection, le M à un module.

  • En mode texte avec menuconfig : le “*” correspond à une option compilée dans le noyau, le “” à une non sélection, le M à un module.

  • En mode graphique avec xconfig : le “y” correspond à une option compilée dans le noyau, le “n” à une non sélection, le m à un module

Il existe aussi la commande make oldconfig qui permet d'upgrader le noyau en conservant votre configuration actuelle. Uniquement les

nouvelles options vous seront proposées. Pour que cela fonctionne, il faut au préalable avoir copié le fichier .config de votre ancien noyau

dans le répertoire où se trouvent les sources de votre nouveau noyau. Vous serez alors en mode texte comme avec la commande make config.

Pour une montée de versions il est judicieux de toujours copier ce fichier.


4 Compilation


Une fois la phase de configuration terminée et que vous êtes sûr ou presque d'avoir une nouveau noyau tout beau tout neuf, vous pouvez le compiler.

La commande est très simple :

#make dep clean --> Pour créer les dépendances entre les différents éléments necessaires à la compilation.

#make bzImage --> Pour créer une version compressée du noyau. Attention le I de bzImage est une majuscule.

#make modules ---> Pour compiler les modules


5 Installation


Selon la puissance de votre machine la compilation dure de 20 minutes à quelques heures .....Pour info, sur mon Athlon 2600XP cela prend environ 25 mn.


Pour installer les modules :

#make modules_install

Pour l'installation du noyau, il y deux écoles. La première préfère les outils d'installation automatique, la seconde préconise de le faire à la main.

Je vais vous décrire les deux et à vous de choisir celle qui vous convient le mieux.

 

Installation automatique

#make install

                        --> installe dans /boot le nouveau noyau après avoir sauvegardé l'ancien en .old


                         --> installe dans /boot le nouveau fichier system.map après avoir sauvegardé l'ancien en .old

--> Modifie le fichier /etc/lilo.conf pour prendre en compte le boot sur le nouveau noyau après avoir sauvegradé

l'ancien en .old


Installation manuelle


Copiez le nouveau noyau dans le répertoire /boot :

#cp /usr/src/linux-2.4.22/arch/i386/boot/bzImage /boot/vmlinuz-2.4.22

Copiez le fichier /usr/src/linux-2.4.22/system.map dans /boot

#cp /usr/src/linux-2.4.22/system.map /boot/system.map-2.4.22

Sauvegardez les fichiers suivants : initrd-2.4.18.img,config-2.4.18, system.map-2.4.18, vmlinuz-2.4.18-6mdk, /etc/lilo.conf

Modifiez le fichier /etc/lilo.conf en vous inspirant du fichier exemple

Relancez lilo : /sbin/lilo -v


Si vous utilisez un RAM Disk, pour booter sur un disque SCSI par exemple, il vous faut recréer un fichier initrd.img. Si vous ne savez

pas si cela vous concerne, regardez dans /boot. Si vous avez un fichier initrd alors oui, vous êtes concerné.

#cd /usr/src/

#mkinitrd -v /boot/initrd-2.4.22.img 2.4.22


Rebootez !!!!



A l'invite lilo, sélectionnez le nouveau noyau.

Si le nouveau noyau ne fonctionne pas, utilisez l'ancien fichier lilo.conf préalablement sauvegardé.


#cp /etc/lilo.conf.bak /etc/lilo.conf



Dernière mise à jour : ( 15-04-2014 )
 
< Précédent   Suivant >

Nombre de visiteur


Depuis le 12/03/2006