![]() Comment compiler un noyau |
Le
but de cette section n'est pas de faire une explication détaillée
des fonctions du noyau mais une méthode pour compiler son noyau
afin de choisir les fonctions les plus intéressantes.
Première étape |
Vérifions
que le système posséde les utilitaires nécessaires
à la compilation du noyau.
|
|
gcc -v ( ou type gcc ) | egcs-1.1.2-x.i386.rpm
( x concerne une valeur de la version du package )
cpp-1.1.x.i386.rpm |
make -v ( ou type make ) | make-3.77.x.i386.rpm ( x concerne une valeur de la version du package ) |
automake --version ( ou type automake ) | automake-1.4.x.noarch.rpm ( x concerne une valeur de la version du package ) |
type as86 | dev86-0.14.x.i386.rpm ( x concerne une valeur de la version du package ) |
patch -v ( ou type patch ) | patch-2.x.i386.rpm ( x concerne une valeur de la version du package ) |
Dans le cas de make xconfig ou de make menuconfig
|
|
ls -l /usr/include/strings.h | glibc-devel-2.1.x.i386.rpm ( x concerne une valeur de la version du package ) |
ls -l /usr/include/curses.h | ncurses-devel-x.i386.rpm ( x concerne une valeur de la version du package ) |
Deuxième étape |
Vérifions que les sources du noyau sont présentes sur la distribution :
|
|
rpm -qiv kernel-source | kernel-source-2.2.xy.i386.rpm |
rpm -qiv modutils | .modutils-2.3.x.i386.rpm ( recommended ) |
ou
bien
si
vous désirez installer un nouveau noyau ( différent des sources
de la distribution )
- récupérer l'archive du noyau ( via ftp ou CD-Rom )Dans le cas du Proliant 2000 et du noyau 2.2.12, il n'est pas intégré la prise en charge de la carte et du chipset SIM710. Il faut donc patcher le noyau avec le fichier sim710-991111.diff.bz2 ( à télécharger ici ).
ex : ftp://ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.14.tar.gz
- déplacement dans l'arborescence : cd /usr/src
- suppression du lien symbolique : rm linux
- création du répertoire source : mkdir linux-N° du Noyau ( ex : mkdir linux-2.2.14 )
- création du lien symbolique : ln -s linux-2.2.14 linux
- decompression de l'archive : tar xfvz /somewhere/linux-2.2.14.tar.gz
- le copier dans /usr/src : cp /somewhere/sim710-991111.diff.bz2 /usr/src
- déplacement dans le le répertoire : cd /usr/src
- décompression du patch : bzip2 sim710-991111.diff.bz2
- application du patch : patch -p0 < sim710-991111.diff
Troisième étape |
Maintenant nous allons configurer le noyau:
- déplacement dans le répertoire : cd /usr/src/linuxil existe trois commandes possibles :
make config : dans le cas d'un terminal passif ne gérant ni couleur, ni graphisme
make menuconfig : dans le cas d'un terminal texte, gérant les couleurs
make xconfig : ne peut être éxecuté que sur un système X.
dans
le dernier cas voici l'écran que verrez apparaitre :
Les différentes sections proposent des options qui seront aux nombres de trois:
y : option directement intégrée au noyauQuelques Sections sont importantes dans le cas de notre Compaq Proliant 2000.
n : option désactivée
m : option intégrée sous forme de module externe
section Processor type and features
section Loadable Module Support
section General Setup
section Networking
section SCSI Support
section SCSI low level drivers
section mice
Ces
choix sont importants mais peuvent être modifiés selon les
besoins.
Vous
pouvez maintenant faire "Save and Exit".
Les
options sont stockés dans le fichier /usr/src/linux/.config
Vous
pouvez telechargez les versions dont je me suis servi
Fichier config pour le noyau 2.2.12-20 | 2.2.12 ici ( en la renommant ensuite en ".config" ) |
Fichier config pour le noyau 2.2.14-5.0 | 2.2.14 ici ( en la renommant ensuite en ".config" ) |
Fichier config pour le BOOT 2.2.12-20 | BOOT 2.2.12 ici ( en la renommant ensuite en ".config" ) |
Fichier config pour le BOOT 2.2.14-5.0 | BOOT 2.2.14 ici ( en la renommant ensuite en ".config" ) |
Quatrième étape |
La compilation elle-même ( déplacement dans le répertoire : cd /usr/src/linux )
Il existe deux méthodes :
Première méthode |
make install : la commande détermine les dépendances,ATTENTION: Dans ce cas , éditez auparavant le fichier /etc/lilo.conf et remplacer :
compile le noyau,
crée automatiquement les fichiers liens dans le répertoire /boot/ grace à la commande /sbin/installkernel
( ex : /sbin/installkernel 2.2.12-20 /usr/src/linux/arch/i386/boot/bzImage /usr/src/linux/System.map )
et exécute la commande lilo -v.
image=/boot/vmlinuz-2.2.12-20
par
image=/boot/vmlinuz
Deuxième méthode |
make dep : pour déterminer les dépendances(NB: Dans le cas de la disquette de Boot-Redhat ou Rescue-Redhat,
make clean : pour supprimer les anciens fichiers-objets
make bzImage : construit le noyau et le stocke dans /usr/src/linux/arch/i386/boot/
taper les commandes pour refaire les liens de Boot :
- mv /boot/vmlinuz-2.2.12-20 /boot/vmlinuz.old
- mv /boot/System.map-2.2.12-20 /boot/System.map.old
- cat /usr/src/linux/arch/i386/boot/bzImage > /boot/vmlinuz-2.2.14
- cp /usr/src/linux/System.map /boot/System.map-2.2.14
- ln -fs vmlinuz-2.2.14 /boot/vmlinuz
- ln -fs System.map-2.2.14 /boot/System.mapéditez auparavant le fichier /etc/lilo.conf et remplacer :- /sbin/lilo -v
image=/boot/vmlinuz-2.2.12-20
par
image=/boot/vmlinuz
Cinquième étape |
Construction
des modules : make modules
Installation
des modules : make modules_install
Vous pouvez aussi utiliser "linuxconf" pour éditer facilement lilo.conf afin d'amorcer sur différentes versions du noyau.
Il
ne vous reste plus qu'à
redémarrer ( en ayant pris
la précaution d'avoir une disquette rescue pour
6.0 ou pour 6.1
ou pour 6.2 sous la
main ).
Retour
au Sommaire