Outils pour utilisateurs

Outils du site


tutoriels:kernel

KERNEL : Compilation sur Debian

Un noyau de système d’exploitation, ou kernel (en anglais), est la partie fondamentale de certains systèmes d’exploitation. Il gère les ressources de l’ordinateur et permet aux différents composants — matériels et logiciels — de communiquer entre eux.

Structure Linux Kernel

Mise en place du Kernel linux-2.6.30.1 sur Debian Lenny (x64)

Extraction des sources

* Installation des packages nécessaires :

aptitude install kernel-package ncurses-dev fakeroot wget bzip2 build-essential

* On commence par récupérer l'archive :

cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.1.tar.gz
tar xvzf linux-2.6.30.1.tar.gz
cd linux-2.6.30.1

Choix de votre configuration

  • Vous devez choisir les modules et drivers en fonction de votre matériel
  • Les options du noyau sont contenues dans le fichier .config
  • Différentes options pour gérer les options de votre conf, mais en console utiliser:

En CLI :

make config

Pour gérer tout ça en graphique :

make menuconfig
Voici le screen du menu que vous devriez obtenir:

Make menuconfig screen

  • Une astuce peut-être de récupérer le fichier de config de votre kernel actuel.

Pour charger la config du Kernel existant, utilisez l'option “Load an alternate configuration file
Le chemin du fichier est /boot/config-X.X.X…

Compilation du Kernel linux-2.6.30.1

Compilation kernel

  • Pour lancer la compilation, exécuter les commandes suivantes:

make-kpkg clean
fakeroot make-kpkg --revision=custom.1.0 kernel_image

Et là, servez vous l'apéro… Car c'est environ une heure en fonction du processeur du host !

  • Erreur de compilation, reprenez les étapes en nettoyant vos traces :

make clean
make menuconfig
...

  • La compil terminée avec succès, on obtient un package Debian (.deb) :

ls /usr/src/
linux-image-2.6.30.1_custom.1.0_amd64.deb

Installer le package du kernel créé

  • Installer le paquet avec dpkg

dpkg -i linux-image-2.6.30.1_custom.1.0_amd64.deb
Sélection du paquet linux-image-2.6.30.1 précédemment désélectionné.
(Lecture de la base de données... 43761 fichiers et répertoires déjà insta
Dépaquetage de linux-image-2.6.30.1 (à partir de linux-image-2.6.30.1_cust
Done.
Paramétrage de linux-image-2.6.30.1 (custom.1.0) ...
Running depmod.
Running postinst hook script update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /vmlinuz-2.6.30.1
Found kernel: /vmlinuz-2.6.26-2-amd64
Updating /boot/grub/menu.lst ... done

On constate que la mise à jour de Grub est faite automatiquement (l'ancien et le nouveau).

  • Créer le ramdisk du nouveau kernel (initrd):

cd /boot
update-initramfs -c -k '2.6.30.1'
ls
initrd.img-2.6.30.1

  • Ajouter le ramdisk dans l'entrée de GRUB:

initrd          /initrd.img-2.6.30.1
title           Debian GNU/Linux, kernel 2.6.30.1
root            (hd0,1)
kernel          /vmlinuz-2.6.30.1 root=/dev/sda3 ro quiet
initrd          /initrd.img-2.6.30.1

title           Debian GNU/Linux, kernel 2.6.30.1 (single-user mode)
root            (hd0,1)
kernel          /vmlinuz-2.6.30.1 root=/dev/sda3 ro single
initrd          /initrd.img-2.6.30.1

Test du nouveau kernel

  • Reboot du host pour tester le kernel 2.6.30.1 :

init 6

  • Au menu grub, notre entrée a bien été ajouté :

Kernel new entry

  • AVANT :

Kernel uname before

  • APRES :

Kernel uname after

tutoriels/kernel.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page