Sahid Ferdjaoui Blog - Funraill Foundation Bienvenue, Log in - thème 2007 RC1

Powered by OpenSource Softwares

Outil de déboggage colaborative
reduire

Compiler son noyau Linux sous Debian GNU/Linux

le 14 juillet 2007 par sahid

Optimiser son systÚme avec un noyau Linux plus legé

La compilation de son noyau Linux sous Debian se fait assez simplement et ne demande que trés peu de connaissances, de plus sur le manuel officiel Debian on retrouve la manipulation à éffectuer.
Dans cet article, je ne vais pas avoir la prétention d’inventer quoi que ce soit, mais peut être de donner quelques indications au vue d’expériences que j’ai pu avoir durant mes multiples compilations du noyau Linux.

Pourquoi compilé son noyau Linux

Tout d’abord comprendre son sytÚme, on a la chance de disposer d’un systeme totalement libre et ouvert, en compilant son noyau on comprend peut être un peu mieux comment son systÚme fonctionne, on arrive aussi plus simplement à faire la différence entre le systÚme d’exploitation GNU, et son noyau Linux, d’ou le GNU/Linux.

Ensuite et pour une raison de confort, le noyau qu’on installe via un paquet est trÚs gros, il contient de nombreux drivers, et souvent pour une raison de compatibilité, les options d’optimisation de performances sont désactivées, car elles causent certains problÚmes sur certaines plateformes. Compiler son noyau, c’est désactiver toutes ces options superflues et inutiles a sa plateforme (principalement les drivers) ensuite compiler son noyau c’est optimiser au mieux son systÚme. Je pense qu’à chaque nouvelle release qui sort, il peut être intéressant si on a un peu de temps de recompiler son noyau, ça permet de se tenir au courant de ce qu’il se fait de nouveau, de reporter des bugs, de plus ça va assez vite étant donné qu’on recupÚre à chaque fois notre ancienne configuration.

Etapes

  • Préparation d’un espace de travail
  • Le téléchargement de la derniÚre version stable du noyau Linux
  • La configuration du noyau (.config)
  • La création d’un paquetage Debian (.deb)
  • L’installation
  • Premier boot et test
  • Nettoyage du systÚme

ça semble être beaucoup de boulot, néanmoins avec un bon Coca ! (enfin un Perrier pour moi) un peu de patience durant la compilation …on est assez fier de soi

Préparation de son environnement de travail

Dans son home user, on crée un répertoire qui servira de dépÎt pour la configuration, compilation et installation :

  1. mkdir ~/kernel
  2. cd ~/kernel

Configuration du fichier “kernel-pkg.conf” avec notre nom et notre adresse email.

  1. su
  2. emacs /etc/kernel-pkg.conf
  3. exit

Téléchargement de la dérniere version stable du noyau Linux

Le téléchargement se fait sur le site http://www.kernel.org, il faut récuperer les sources de la dérniere version stable (F) pour ma part ce sera la 2.6.22.1. on la décompresse dans notre répertoire ~/kernel.

  1. tar xvf linux-version.tar.bz2
  2. cd linux-version/

Configuration du noyau

Dans un premier temps, on récupÚre la config debian, elle nous servira de base.

  1. cp /boot/config-vesion .config

Ensuite on configure notre noyau via le menuconfig

  1. make menuconfig

Je vais simplement vous donner une liste des repertoires qui sont à mon sens incontournable pour bien configurer et optimiser son noyau. Il ne faut vraiment pas hésiter à désactiver toutes les options ne faisant pas partie de votre config, de plus si votre noyau ne boot pas pendant la phase de test, vous pouvez toujours repartir avec l’ancien noyau, et si vous souhaitez réellement voir une différence de réaction, et de démarrage de votre systÚme, il ne faut pas hésiter !

Petite précision :

  • (M) désigne que l’élément sera compilé en module et chargé durant le démarrage si besoin
  • (*) signifie que l’élément sera compilé dans le noyau (plus intéressant)
  • ( ) signifie que l’élément ne sera pas présent sans le noyau
  • (?) important !! celaa vous donne des informations sur l’élément sélectionné
  • Processor type and features
    (j’ai par exemple activé 64bit IO, multiprocessor=2, et désactivé la paravirtualisation à cause de problemes avec les drivers ATI et Nvidia)
  • Power management options –> CPU Frequency scaling (Support pour certains processeurs, j’ai un Athlon64, j’ai donc
    désactivé tous les autres.)
  • Bus options
    (Si votre carte ne dispose pas de bus ISA…)
  • Device driver –> Serial ATA et Parallel ATA drivers
    (Moi perso j’ai une carte mÚre nforce4, j’ai donc gardé le support nforce et générique, le reste poubelle)
  • Device driver –> Graphics support (Soyez prudent et virez ce qui ne vous interesse pas, ensuite il y a l’option “framebuffer” à activer si vous souhaité un splashboot, et “bootup logo” pour avoir le pinguin au démarrage du systÚme)

On sauve et on quitte, notre noyau est configuré

Creation d’un paquetaged Debian

  1. make-kpkg clean
  2. fakeroot make-kpkg –append_to_version -486 –initrd –revision=rev.01 kernel_image

Un peu de patience… ( :

Installation du paquetage

L’installation se fait avec l’outil dpkg.

  1. cd..
  2. su
  3. dpkg -i kernel-image-version.deb
  4. exit

Premier boot et test

L’installation du paquetage configure directement GNU/Grub, ainsi vous n’avez plus qu’à redémarrer le systÚme, selectionner votre nouveau noyau, et vérifier que tout fonctionne correctement.

Nettoyage du systÚme

Une fois votre phase de test terminée, vous pouvez supprimer l’espace de travail ainsi que l’ancien noyau, via votre utilitaire préféré (apt-remove, aptitude remove, synaptic)

  1. rm -r ~/kernel
  2. apt-get remove linux-header-version

Documentations annexes

  • Documentation debian
  • Linux Kernel in a nutshell


Toujours ouvert aux remarques ( :

2 commentaires pour Compiler son noyau Linux sous Debian GNU/Linux

  1. Oslo dit :

    Personnellement je me retrouve face a un soucis qui est un peu rigolo, vu de l’exterieur mais qui me fait sortir de mes gonds …. :’(

    J’ai lu ton article de mon coté tout ou presque colle …
    Je me suis téléchargé les 21CDs de la debian 4.0r0 (eh oui j’ai une carte ASUS M4N2SLI avec un chipset NFORCE4, qui pose soucis pour une installation en CDnet)

    Bref, en trichant grâce a une autre carte ETH pci, j’ai pu installer la Debian, de sans, j’avais plus que le minima, et jamais j’ai pu pomper qu’un seul des packages sur l’un des CDs. Cela se résumait à de faux téléchargement, qui bien évidement était HS

    Apres installation, comme j’ai recupéré les Drv nforce4 pour la dite carte mÚre ASUS, j’ai compilé le nouveau kernel 2.6.22.1

    Pour ne pas m’ennuyer, j’ai utilisé :
    make oldconfig
    N.B: J’ai laissé tous les nouveaux parametres avec leur valeur préconisée par défaut

    un coup de :
    make modules bzImage modules_install install

    Et là hop tout paraissait bon
    Erreur, il manquait mkinitrd, j’ai donc installer via ‘aptitude’ initrd-tools
    un p’tit coup de mkinitrd -o /boot/initrd.img-2.6.22.1

    là tout était PRESQUE BON :’(

    vu que certaines parties restaient non dispo pour le systÚme comme certains FS, j’ai voulu faire un make menuconfig :
    iùmpossible , curses n’etant pas installé
    j’ai donc essayé un make xconfig:
    impossible, les libs QT n’étant pas installées

    Soucis, d’ou la question qui tue : —>

    Comment les installer : Vu que dans aptitude, je ne les ai pas en dispo

  2. Le Blog de J@r0d » Compiler un noyaux a la sauce Debian dit :

    […] http://sahid.funraill.org/2007/07/14/compiler-son-noyau-linux-sous-debian-gnulinux/ […]

Tu peux laisser un commentaire pour Compiler son noyau Linux sous Debian GNU/Linux