You are on page 1of 6

04/05/14 18:48 Compiler le noyau Linux sur Debian et l'installer

Page 1 sur 6 http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm


Compiler le noyau Linux sur Debian et l'installer (Mthode
Debian)
Comment compiler une nouvelle version du noyau Linux sur une distribution Debian et l'installer
avec GNU grub.
Voir aussi Dveloppement logiciel, Open Source, MOM, JMS, MQ Series, Linux Debian
Configurer les queue et queue connection factory (Accs JMS) pour IBM WebSphere MQ sous
Linux
Configurer Xinetd pour IBM WebSphere MQ
Rsum:
Cette page prsente la mthode Debian de compilation et d'installation du noyau
Linux.
Les tapes suivantes de la compilation du noyau Linux sur Debian sont dcrites:
Connaitre la version utilise du noyau Linux et celle installer, Vrifier les pr-requis
ncessaires, Tlcharger les sources du noyau Linux, Crer un utilisateur ddi,
Dcompresser l'archive des sources, Crer un fichier de configuration, Slectionner
les modules pour les iptables, Lancer la compilation du noyau, Vrifier les paramtres
de GNU grub, Redmarrer avec le nouveau noyau Linux, Problmes possibles au
boot avec le nouveau noyau, Table des partitions avance, Utilisation d'initrd.
Ce qui est prsent ici a t test avec la version 2.6.18.1 du kernel Linux sur une
distribution Debian.
Mots cls:
Compiler le noyau Linux, debian, kernel, noyau, Linux, kernel Linux, make-kpkg,
fichier .config, kernal-image, grub, dpkg, boot, modules iptables, table des partitions,
initrd, installation du noyau Linux.
Compiler le noyau Linux sur une distribution Debian
Connaitre la version utilise du noyau Linux et celle installer
Vrifier les pr-requis ncessaires pour compiler le noyau Linux
Tlcharger les sources du noyau Linux
Crer un utilisateur ddi pour compiler le noyau
Dcompresser l'archive des sources du noyau
Crer un fichier de configuration
Slectionner les modules pour les iptables
Lancer la compilation du noyau
Installer le nouveau noyau Linux
Vrifier les paramtres de GNU grub
Annonces Google ! Linux 2.6 ! Grub Linux ! Sous Linux ! GZ Linux
04/05/14 18:48 Compiler le noyau Linux sur Debian et l'installer
Page 2 sur 6 http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm
Redmarrer avec le nouveau noyau Linux
Problmes possibles au boot avec le nouveau noyau
Table des partitions avance
Utilisation d'initrd
Dsinstaller un noyau Linux
Connaitre la version utilise du noyau Linux et celle installer
Quelle version du noyau Linux tourne actuellement ?
La version du noyau Linux en cours d'excution est donne par la commande uname:
pyf-debian:/home/fourmond$ uname -r
2.6.15
En outre, la version du systme d'exploitation est retourne par:
uname -v
Dans /boot, on a donc:
pyf-debian:/home/fourmond$ ls /boot
System.map-2.6.15 config-2.6.15 grub initrd.img-2.6.15 vmlinuz-2.6.15
Quelle version du noyau choisir ?
La liste des versions disponibles du noyau Linux se trouve l'adresse
http://www.kernel.org/kdist/finger_banner.
En date du 1er novembre 2006, la dernire version stable du noyau tait:
The latest stable version of the Linux kernel is: 2.6.18.1
A titre d'exemple, on compilera donc ici la version 2.6.18.1 du noyau Linux, mais la procdure
dcrite ici fonctionne videmment pour toute autre version du noyau.
D'autres versions plus rcentes du noyau Linux sont probablement sorties depuis cette date.
Par exemple, la dernire version stable du noyau Linux est la version 2.6.25 sortie le 17 Avril
2008.
Vous pouvez aller vrifier sur le site http://www.kernel.org.
Vrifier les pr-requis ncessaires pour
compiler le noyau Linux
Afin de pouvoir compiler le noyau Linux, nous allons
avoir besoin:
D'un environnement de dveloppement complet
(gcc, ld, make, make-kpkg, ...),
Des sources du noyau Linux,
Et notamment du paquet kernel-package qui
contient la commande make-kpkg utilise sur
les distributions Debian,
Mais aussi d'espace disque (pour ceux qui en
manqueraient !), l'archive dcompresse des
sources du noyau Linux fait plus de 230 Mga octets
Aprs avoir vrifi la prsence des commandes gcc, ld et make via la commande:
04/05/14 18:48 Compiler le noyau Linux sur Debian et l'installer
Page 3 sur 6 http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm
pyf-debian:/home/fourmond$ dpkg -l | egrep -e "gcc|make|binutils"
ii binutils 2.15-6 The GNU assembler, linker and binary utilities
ii gcc-3.3 3.3.5-13 The GNU C compiler
ii gcc-3.3-base 3.3.5-13 The GNU Compiler Collection (base package)
ii libgcc1 3.4.3-13sarge1 GCC support library
ii make 3.80-9 The GNU version of the "make" utility.
On tlchargera les sources du noyau Linux sur le site http://www.kernel.org.
Si gcc, ld ou make venaient manquer, on utilisera apt-get install suivi du nom du package
installer. La commande ld appartient au package binutils dont le package gcc-3.3 dpend.
Tlcharger les sources du noyau Linux
La version 2.6.18.1 du noyau peut tre tlcharge sur:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2,
ou ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.gz
via la commande:
pyf-debian:/home/fourmond$ wget -c
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
ou
pyf-debian:/home/fourmond$ wget -c
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.gz
Crer un utilisateur ddi pour compiler le noyau
Plutt que de compiler le noyau Linux en tant que root, nous allons crer un utilisateur nomm
kernel qui appartiendra au groupe src:
Sous root:
pyf-debian:/root$ useradd -G src kernel
pyf-debian:/root$ passwd kernel
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Dcompresser l'archive des sources du noyau
On va ensuite se logger avec le nouvel utilisateur kernel et on dcompresse l'archive:
kernel@pyf-debian:/data$ id
uid=1002(kernel) gid=100(users) groupes=40(src),100(users)
kernel@pyf-debian:/data$ ls linux-2.6.18.1.tar.bz2
linux-2.6.18.1.tar.bz2
kernel@pyf-debian:/data$ tar -xjf linux-2.6.18.1.tar.bz2
kernel@pyf-debian:/data$ cd linux-2.6.18.1
Si on a utilis linux-2.6.18.1.tar.gz:
kernel@pyf-debian:/data$ tar -xzf linux-2.6.18.1.tar.gz
Crer un fichier de configuration
Comme on ne dsire pas changer la configuration du systme Linux utilis, mais simplement
profiter des dernires corrections du noyau, on reprend le fichier de configuration de la version
prcdente (2.6.15):
kernel@pyf-debian:/data/linux-2.6.18.1$ cp /boot/config-2.6.15 .config
On entre ensuite:
04/05/14 18:48 Compiler le noyau Linux sur Debian et l'installer
Page 4 sur 6 http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm
kernel@pyf-debian:/data/linux-2.6.18.1$ make menuconfig
A l'affichage du menu, on fait simplement Exit, puis la question "Do you want to save ...", on
entre "Yes".
Le fichier .config est alors sauvegard.
Note:
L'utilisation de make menuconfig ncessite l'installation pralable du package libncurses5-dev.
Slectionner les modules pour les iptables
Depuis la version 2.6.14 du noyau, il faut activer explicitement certains modules pour les iptables
dans le fichier de configuration du noyau, sinon il ne le sont pas par dfaut.
On vrifiera donc que l'on a bien notamment la ligne suivante dans .config:
CONFIG_NETFILTER_XTABLES=y
Lancer la compilation du noyau
Toujours dans le rpertoire /data/linux-2.6.18.1, on
entre la commande suivante avec l'utilisateur kernel:
kernel@pyf-debian:/data/linux-2.6.18.1$
make-kpkg --rootcmd fakeroot --initrd --
append-to-version=.`date +%y%m%d` --
revision=2.6.18.1 kernel-image
Le paramtres --rootcmd fakeroot permet d'obtenir
les droits root, ce qui est ncessaire pour la cration
du package du noyau.
On peut galement utiliser make-kpkg ...
buildpackage qui effectue les oprations suivantes:
clean kernel_doc kernel_source kernel_headers et
kernel_image
La commande make-kpkg aura pour effet de crer le fichier .deb suivant:
kernel-image-2.6.18.1.`date +%y%m%d`_2.6.18.1_i386.deb
Une fois le package debian gnr, on prendra soin de faire un clean dans l'arborescence des
sources:
kernel@pyf-debian:/data/linux-2.6.18.1$ make-kpkg clean
Installer le nouveau noyau Linux
Pour installer le noyau que l'on vient de compiler:
dpkg -i kernel-image-2.6.18.1.`date +%y%m%d`_2.6.18.1_i386.deb
Attention: Cela suppose d'installer auparavant la package initrd-tools.
La commande dpkg va:
installer les modules dans /lib/modules/2.6.18.1.061101/,
crer les fichiers /boot/System.map-2.6.18.1.061101, /boot/config-2.6.18.1.061101 et
/boot/vmlinuz-2.6.18.1.061101
Vrifier les paramtres de GNU grub
04/05/14 18:48 Compiler le noyau Linux sur Debian et l'installer
Page 5 sur 6 http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm
Le fichier de configuration de GNU grub, /boot/grub/menu.lst a t modifi comme suit:
title Debian GNU/Linux, kernel 2.6.18.1.061101
root (hd0,1)
kernel /boot/vmlinuz-2.6.18.1.061101 root=/dev/hda2 ro
initrd /boot/initrd.img-2.6.18.1.061101
savedefault
boot
Cette section a t ajoute par la commande dpkg prcdente.
Redmarrer avec le nouveau noyau Linux
On redmarre la machine avec le nouveau noyau: il sera en premire position dans le fichier
menu.lst de grub.
reboot
Au redmarrage, on peut vrifier la version du noyau:
pyf-debian:/home/fourmond$ dmesg | grep 2.6.18
Linux version 2.6.18.1 (kernel@pyf-debian) (version gcc 3.3.5 (Debian 1:3.3.5-
13)) #1 PREEMPT Sun Nov 5 15:00:35 CET 2006
ou avec uname -r:
pyf-debian:/home/fourmond$ uname -r
2.6.18.1
Problmes possibles au boot avec le nouveau noyau
Table des partitions avance
Il peut arriver que le noyau Linux ne reconnaisse pas le disque si la table des partitions avance
est active dans le fichier .config.
On a alors une erreur au boot du noyau:
VFS: Cannot open root device "hda2" or unknown block (0,0)
Kernel panic - not syncing: VFS Unable to mount root fs on unknow block (0,0)
Dans ce cas, aprs make menuconfig, diter le fichier .config de configuration du noyau en
changeant:
CONFIG_PARTITION_ADVANCED=y
en
# CONFIG_PARTITION_ADVANCED is not set.
Utilisation d'initrd
L'installation du noyau Linux sans crer de fichier d'init peut poser quelques problmes, aussi ne
pas oublier l'option --initrd sur la ligne de commande make-kpkg.
Dsinstaller un noyau Linux
Pour dsinstaller un noyau que l'on n'utilise plus:
pyf-debian:/root$ apt-get remove --purge kernel-image-2.6.8-16sarge1
ou
pyf-debian:/root$ dpkg --purge kernel-image-2.6.8-16sarge1
04/05/14 18:48 Compiler le noyau Linux sur Debian et l'installer
Page 6 sur 6 http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm
Le nom utiliser pour dsinstaller un paquet Debian suit le format kernel-image, un tiret puis
kernel_version, ou kernel_version dsigne la version du noyau Linux (troisime colonne de la
commande dpkg -l).
Modifi le: vendredi 18.06.2010 17:09:15 P-Y Fourmond, 2005-2009

You might also like