Compiler Le Noyau Linux
-
Upload
wassim-nostra -
Category
Documents
-
view
14 -
download
0
description
Transcript of Compiler Le Noyau Linux
Compiler le Compiler le noyau Linux noyau Linux
Réalisé par :Réalisé par :
Ait taleb brikAit taleb brik
El maidani ilyasEl maidani ilyas
parrainé par :
Mr Ezzati
Le noyau :Le noyau : Le noyau est le cœur du système. C'est lui qui fait Le noyau est le cœur du système. C'est lui qui fait
l'interface entre vos applications et votre matériel. Par l'interface entre vos applications et votre matériel. Par exemple, il gère la mémoire, donne l'ordre d'exécution exemple, il gère la mémoire, donne l'ordre d'exécution des tâches sur le(s) processeur(s), interagit avec vos des tâches sur le(s) processeur(s), interagit avec vos périphériques via les pilotes matériels (souris, claviers, périphériques via les pilotes matériels (souris, claviers, etc), s'occupe du réseau, ... etc), s'occupe du réseau, ...
Le noyau (Le noyau (kernelkernel en anglais) est composé d'une partie en anglais) est composé d'une partie statique à laquelle on peut dynamiquement greffer des statique à laquelle on peut dynamiquement greffer des modulesmodules. La partie statique est utilisée lors du démarrage . La partie statique est utilisée lors du démarrage de votre ordinateur et sera toujours chargée en mémoire, de votre ordinateur et sera toujours chargée en mémoire, tandis que les modules peuvent être chargés seulement tandis que les modules peuvent être chargés seulement une fois la machine démarrée et uniquement en cas de une fois la machine démarrée et uniquement en cas de besoin. besoin.
Pourquoi Compiler son noyau ? Pourquoi Compiler son noyau ?
Cas du matériel dont le support a été ajouté dans une Cas du matériel dont le support a été ajouté dans une nouvelle version du noyau. nouvelle version du noyau.
un trou de sécurité a été découvert dans le noyau actuel, un trou de sécurité a été découvert dans le noyau actuel, ce problème étant réglé dans une nouvelle version.ce problème étant réglé dans une nouvelle version.
disposer d'une fonctionnalité qui n'est pas encore dans la disposer d'une fonctionnalité qui n'est pas encore dans la
branche principale du noyau. branche principale du noyau.
La plupart du temps, on n’a pas réellement besoin d'un La plupart du temps, on n’a pas réellement besoin d'un nouveau noyau. Il serait suffisant de rester à jour avec nouveau noyau. Il serait suffisant de rester à jour avec votre distribution puisque celle-ci s'occupe des logiciels votre distribution puisque celle-ci s'occupe des logiciels qui ont des problèmes de sécurité ou des bugs.qui ont des problèmes de sécurité ou des bugs.
Connaître la version de son kernel :Connaître la version de son kernel :
#uname –r : affiche le numéro du version du #uname –r : affiche le numéro du version du noyau . noyau .
#uname –a : affiche notamment la date de #uname –a : affiche notamment la date de compilation du noyau . compilation du noyau .
Sauvegarde du noyau ,des modules et Sauvegarde du noyau ,des modules et de la configuration de grub de la configuration de grub
kernelkernel#cd /boot#cd /boot
#ls vmlinuz*#ls vmlinuz*
vmlinuz-2.6.9-42.ELvmlinuz-2.6.9-42.EL
#mv vmlinuz-2.6.9-42.EL vmlinuz-2.6.9-42.EL.old#mv vmlinuz-2.6.9-42.EL vmlinuz-2.6.9-42.EL.old
GrubGrub# cp /etc/grub.conf /etc/grub.conf.save# cp /etc/grub.conf /etc/grub.conf.save
1-Télécharger le code source du 1-Télécharger le code source du noyau :noyau :
Pour pouvoir compiler un nouveau noyau, il faut en Pour pouvoir compiler un nouveau noyau, il faut en télécharger le code source sur le site télécharger le code source sur le site http://www.kernel.org/http://www.kernel.org/. .
supposons que nous voulons compiler la supposons que nous voulons compiler la version 2.6.21.3 du noyau Linux version 2.6.21.3 du noyau Linux
On commence par décompresser avec On commence par décompresser avec bunzipbunzip
# tar xvjf linux-2.6.21.3.tar.bz2 # tar xvjf linux-2.6.21.3.tar.bz2
-2. Configurer le noyau :-2. Configurer le noyau :
Nous devons configurer le noyau avant de commencerNous devons configurer le noyau avant de commencer
le compiler. Pendant la phase de configuration, nousle compiler. Pendant la phase de configuration, nous
sélectionnerons les composants qui feront partie desélectionnerons les composants qui feront partie de
notre futur noyau. notre futur noyau.
##make menuconfigmake menuconfig : : invoque l'interface ncurses. D'autres invoque l'interface ncurses. D'autres
options commeoptions comme ##make xconfigmake xconfig etet ##make configmake config sont sont disponibles.disponibles.
Une fois que les composants de notre Une fois que les composants de notre noyau sont choisis, nous pouvons noyau sont choisis, nous pouvons
quitter l'interface de configuration. quitter l'interface de configuration. Reste à sélectionner l'option Reste à sélectionner l'option permettant d'enregistrer la permettant d'enregistrer la
configuation dans le menu de configuation dans le menu de configuration avant de sortir.configuration avant de sortir.
* Construire les dépendances :
Cette étape est requise pour les noyaux antérieurs à la série 2.6 elle consiste à créer les dépendances nécessaires.
#make dep
-3. Compilation après configuration du noyau:
* Créer l'image finale * Créer l'image finale
Il est possible de construire divers types d'images Il est possible de construire divers types d'images binaires de noyau. Nous pouvons compiler une image binaires de noyau. Nous pouvons compiler une image de noyau complète ou une version compressée de de noyau complète ou une version compressée de celle-ci ; habituellement, on choisit la version celle-ci ; habituellement, on choisit la version compressée ou l'image bzImage, que l'on peut créer compressée ou l'image bzImage, que l'on peut créer en saisissant : en saisissant :
#make bzImage #make bzImage
* Compiler et installer les modules * Compiler et installer les modules
Si, dans la section configuration, nous avons Si, dans la section configuration, nous avons sélectionné des composants devant être intégrés en sélectionné des composants devant être intégrés en tant que modules du noyau, il faut maintenant les tant que modules du noyau, il faut maintenant les compiler. Pour compiler les modules, exécutons la compiler. Pour compiler les modules, exécutons la commande : commande :
# make modules# make modules Après la compilation des modules, il est à présent Après la compilation des modules, il est à présent
temps de les installer. pour ce faire, exécutez la temps de les installer. pour ce faire, exécutez la commande : commande :
#make modules_install#make modules_install
On peut rassembler tous ces commandesOn peut rassembler tous ces commandes
Dans une seule ligne :Dans une seule ligne :
# make dep && make clean && make bzImage # make dep && make clean && make bzImage && make modules && make modules_install && make modules && make modules_install
* Amorcer à partir du nouveau noyau * Amorcer à partir du nouveau noyau
L'installation des modules terminée, nous pouvons L'installation des modules terminée, nous pouvons entreprendre une procédure d'installation automatique entreprendre une procédure d'installation automatique du noyau pour l'exécutable du noyau. Saisissons du noyau pour l'exécutable du noyau. Saisissons simplement : simplement :
#make install#make install• Cette commande permet de mettre à jour l'image du Cette commande permet de mettre à jour l'image du
noyau dans le répertoire /boot, d'actualiser le fichier de noyau dans le répertoire /boot, d'actualiser le fichier de configuration du chargeur d'amorçage (lilo.conf ou configuration du chargeur d'amorçage (lilo.conf ou grub.conf), puis d'effectuer les actions nécessaires grub.conf), puis d'effectuer les actions nécessaires pour rendre le nouveau noyau amorçable.pour rendre le nouveau noyau amorçable.
4-Installer manuellement le noyau 4-Installer manuellement le noyau Au cas où make install ne fonctionne pas ou si pour toute autre Au cas où make install ne fonctionne pas ou si pour toute autre
raison, nous ne pouvons pas effectuer une installation raison, nous ne pouvons pas effectuer une installation automatique, il faut envisager une installation manuelle du automatique, il faut envisager une installation manuelle du noyau. noyau.
Voici les étapes à suivre en tant que super-utilisateur si nous Voici les étapes à suivre en tant que super-utilisateur si nous faisons appel au chargeur d'amorçage lilo : faisons appel au chargeur d'amorçage lilo :
#cp -a arch/i386/boot/bzImage /boot/bzImage-2.6.9 #cp -a arch/i386/boot/bzImage /boot/bzImage-2.6.9
Après cette commande, ajoutons la ligne suivante dans Après cette commande, ajoutons la ligne suivante dans /etc/lilo.conf :/etc/lilo.conf :
#image=/boot/bzImage-2.6.9 label=2.6.9-kernel #image=/boot/bzImage-2.6.9 label=2.6.9-kernel root=votre_partition_racineroot=votre_partition_racine
MerciMerci
pour pour
votre attentionvotre attention