lundi 22 mars 2010

Complier un noyaux linux

Compiler un noyaux sous linux.


L'intérêt de ceci est
d'avoir une machine avec dans le noyaux ce dont on a besoin.

Pour se faire il faut récupérer les sources et les headers


pour savoir quel noyaux est disponible on peut utiliser sous debian par exemple :



debian#apt-cache search linux-source | more



Ensuite on télécharge:



debian#apt-get install linux-headers-2.6.18-4

 ou alors avec wget, on se mets
dans /usr/src/


exemple :

 on décompresse le noyaux à
l'aide de la commande

debian#tar -xjf linux-2.6.18.6.tar.bz2

 on obtiens un répertoire
linux-2.6.18.6

on rentre dans ce répertoir et on tape la config suivante,

debian:/usr/src/linux-2.6.18.6# make mrproper

cette commande va nettoyer les librairies dans le cas ou elle avaient été compilées
pour une autre machine.

Ensuite on copie la configuration du
noyaux actuel dans le fichier racine de la nouvelle source.

cp /boot/config-2.6.18-4-486 .config

Ajouter des options au noyaux ou en supprimer il faut lancer la commande

debian:/usr/src/linux-2.6.18.6#make
menuconfig

cette commande lance une interface
ncurse, il en existe d'autres tel que

make xconfig ou make gconfig

une fois les options choisies, taper alt E et dire yes à la question save ?

 Àfin de nommer le noyaux d'une façon spécifique on va renommer les dans le fichier /

la compilation du noyau va générer deux fichier /usr/src/linux-2.6.18.6/Makefile

dans la partie Extraversion =-macompile et sauvegarder la fichier.

Ne pas oublier le – avant le nom de votre compile.

Pour compiler il faut lancer la commande « make »

Vous obtiendrez des messages comme ceci




Les fichier générées
seront comme ci-dessous,



arch/i386/bzimage --> le
noyau

System.map -- > la table
des symboles utilisées par les logiciels pour discuter avec le
système

Ensuite il faut copier le noyau et la tables des symboles dans /boot/vmlinuz-2.6.18-abdel

Afin de garder une trace du fichier de configuration

on le copie dans



#cp .config /boot/vmlinuz-2.6.18-abdel/config-2.6.18-abdel


Une partie du code source du noyaux est compilé sous forme de modules.

Il faut installer les derniers dans le répertoires /lib/modules/2.6.18-abdel

pour se faire il faut aller dans /usr/src/linux-source-2.6.18/ et

taper « make
modules_install »



Esnuite on génère et installe un mini système comme suit :


update-initramfs -c -k 2.6.18-abdel

si il existe déjà il vous affichera un message comme celui-ci

/boot/initrd.img-2.6.18-abdel already exists, cannot create.



Maintenant que le nouveau noyau est installé il faut le mettre dans le
grub qui est le système de gestion de l'amorçage, ceci afin de voire notre version compilé au démarrage.


Editer le menu de GRUB en tapant la commande ci-dessous


#vi /boot/grub/menu.lst



et ajouter ceci au fichier


title
Debian GNU/Linux, kernel 2.6.18-abdel

root
(hd0,0)

kernel
/boot/vmlinuz-2.6.18-abdel root=/dev/sda1 ro

initrd
/boot/initrd.img-2.6.18-abdel

savedefault

Par Abdellah KABOU Network and System expert

Aucun commentaire:

Enregistrer un commentaire