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.
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/
dans /usr/src/
exemple :
on décompresse le noyaux à
l'aide de la commande
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
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.
pour une autre machine.
Ensuite on copie la configuration du
noyaux actuel dans le fichier racine de la nouvelle source.
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
menuconfig
cette commande lance une interface
ncurse, il en existe d'autres tel que
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,
seront comme ci-dessous,
arch/i386/bzimage --> le
noyau
noyau
System.map -- > la table
des symboles utilisées par les logiciels pour discuter avec le
système
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 »
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.
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
Debian GNU/Linux, kernel 2.6.18-abdel
root
(hd0,0)
(hd0,0)
kernel
/boot/vmlinuz-2.6.18-abdel root=/dev/sda1 ro
/boot/vmlinuz-2.6.18-abdel root=/dev/sda1 ro
initrd
/boot/initrd.img-2.6.18-abdel
/boot/initrd.img-2.6.18-abdel
savedefault
Par Abdellah KABOU Network and System expert