Connexion
Identifiant :

Mot de passe :

Se souvenir de moi



Mot de passe perdu ?

Inscrivez-vous !
 

 


Recherche
 

 


Menu principal
 

 


Derniers articles
 

 


 
[31 :: Cette page]  

Compiler son propre noyau sous Debian

Pourquoi compiler son propre noyau? Parce qu'on peut le faire!

Sérieusement, certaines machines tr?s récentes ou utilisant des fonctionnalités avancées (sans-fil, économie d'énergie sur portable, etc.), sont tout simplement plus performantes avec l'utilisation d'un noyau (en Anglais kernel) récent et sur mesure.

Plusieurs nouveaux utilisateurs de Linux voient cette procédure comme étant réservée aux initiés seulement. C'est pourquoi les gens de chez Debian ont depuis bien longtemps pensé ? simplifier le processus, du téléchargement ? l'installation, en passant par la configuration.

Voici un petit "Comment faire", que je dédie ? "ceux qui osent."

J'invite les débutants ? lire le texte "Pourquoi choisir un noyau optimisé?" ? titre d'introduction.

Préalables

Ce texte suppose que vous avez configuré sudo, ou alors que vous savez comment obtenir les droits d'administrateur (root) sur votre machine.

La source

Tout d'abord, on télécharge la source du noyau. Celle-ci peut provenir de plusieurs "fournisseurs" (lesquels livrent un noyau lég?rement modifié), mais autant se fournir ? la source de la source : http://kernel.org

Supposons pour cet article que notre utilisateur s'appelle mastah et que notre répertoire de téléchargements répond au chemin d'acc?s suivant :


/home/mastah/download

On se positionne dans le répertoire de téléchargements :


cd 
~/download

Pour télécharger de gros fichiers, j'adore utiliser wget un petit programme tr?s puissant et tr?s versatile :


wget ftp
://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.20.tar.bz2

*facultatif* On peut télécharger les correctifs (patch) que l'on veut (tel suspend2, pour des fonctionnalités d'économie d'énergie encore plus évoluées) :


wget http
://www.suspend2.net/downloads/all/suspend2-2.2.5-for-2.6.16.9.tar.bz2

Ensuite, histoire de pouvoir compiler sans ?tre super-utilisateur root (par prudence), on se doit de donner le droit ? notre utilisateur de compiler dans le répertoire source :


sudo adduser mastah src
Qui veut dire qu'on ajoute l'utilisateur mastah (lequel est déj? existant) au groupe src (aussi déj? existant).

? noter que l'ajout d'un utilisateur ? un groupe donné ne prend effet que lorsque l'utilisateur redémarre sa session. Il faut donc quitter la session et se reconnecter, ou simplement redémarrer la machine.

La préparation

Avant toute chose nous aurons besoin de certains outils:


sudo apt
-get install build-essential debhelper devscripts dh-make module-assistant kernel-package libncurses-dev bzip2 fakeroot

Ensuite on navigue jusqu'au répertoire source :


cd 
/usr/src

On décompresse les archives précedemment téléchargées :


tar jxf 
~/download/linux-2.6.16.20.tar.bz2

*facultatif* Pour le correctif suspend2 :


tar jxf 
~/download/suspend2-2.2.5-for-2.6.16.9.tar.bz2

On entre dans le répertoire de compilation :


cd linux
-2.6.16.20

*facultatif* Pour ceux utilisant suspend2, une étape de plus -- on doit appliquer le correctif :


../suspend2-2.2.5-for-2.6.16.9/apply

*facultatif* Si vous avez déj? compilé sur votre syst?me en utilisant la m?me source de noyau, on s'assure de remettre les pendules ? l'heure :


make mrproper

La configuration

Certaines commandes peuvent fournir un bon indice sur la meilleure façon de modeler le parfait noyau pour votre ordinateur.


cat 
/proc/cpuinfo
renseigne sur le type de processeur (CPU).


lspci
donne un aperçu des composantes de l'ordinateur.

*facultatif* Avant de commencer le vrai boulot, on peut choisir une base de configuration, telle celle du présent noyau :


cp 
/boot/config-$(uname -r) .config

Nous sommes maintenant pr?t ? configurer le tout :


make menuconfig

? présent un menu de type "ncurse" (graphiques simples ? l'intérieur d'une console) s'offre ? l'utilisateur. C'est ici que le gros du travail se fait: on doit choisir les options (fonctionnalités intégrées ou comprises dans des modules) de configuration du noyau. Soyez tr?s conservateur et ne faites pas de changements par rapport aux valeurs par défaut, ? moins d'?tre s?rs de vous. Pour vous aider, il existe une fonction "Help" pour chacune des valeurs.

Quelques suggestions (sur mesure pour un syst?me Pentium 4 ? utilisation domestique) :

Processor type and features ---> Processor family ---> (X) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon

Preemption Model ---> (X) Preemptible Kernel (Low-Latency Desktop)

Timer frequency ---> (X) 1000 HZ

Kernel hacking ---> Désactivez TOUT

*facultatif* Pour ceux ayant appliqué le correctif suspend2, quelques réglages supplémentaires :

Power management options (ACPI, APM) ---> [ ] Software Suspend [*] Suspend2 ---> [*] Swap Writer

Cryptographic options ---> <*> LZF compression algorithm

*facultatif* Modules externes

Certains modules externes peuvent ?tre ajoutés au noyau. Nous prendrons ici en exemple les pilotes graphiques ATI.

Tout d'abord il faut télécharger le plus récent pilote ATI, disponible sur le site de la compagnie (en version 32 bits ou 64 bits).

La commande suivante rend le fichier d'installation exécutable :


chmod 
+x ati-driver-installer-8.25.18-x86.run

Une fois le fichier "ati-driver-installer-8.25.18-x86.run" sauvegardé, il est possible de produire sur mesure des packets pour plusieurs distributions. La commande


./ati-driver-installer-8.25.18-x86.run --listpkg
affiche la liste compl?te des distributions supportées.

Ensuite nous pouvons construire les packets (par exemple pour Debian Sarge) :


fakeroot 
./ati-driver-installer-8.25.18-x86.run --buildpkg Debian/sarge

Seulement 2 des 5 packets produits sont nécessaires :


sudo dpkg 
-i fglrx-driver_8.25.18-1_i386.deb fglrx-kernel-src_8.25.18-1_i386.deb

Puis on navigue dans le répertoire source et on prépare le module :


cd 
/usr/src
tar jxf fglrx
.tar.bz2

La compilation

Nous sommes maintenant pr?ts ? compiler :


fakeroot make
-kpkg clean
fakeroot make
-kpkg modules_clean
fakeroot make
-kpkg --append-to-version "-mon-kernel" --revision "05062006" --us --uc --initrd kernel_image

"mon-kernel" peut ?tre remplacé par un suffix de votre choix, de m?me que "05062006" (date d'aujourd'hui) par le nombre de votre choix.

La compilateur va maintenant prendre entre quelques minutes et quelques heures (en fonction de la puissance de calcul de votre syst?me et des valeurs de configuration choisies) pour produire votre noyau.

*facultatif* Les utilisateurs désireux d'utiliser des modules externes (tel celui nécessaire pour les pilotes graphiques ATI) doivent taper une commande supplémentaire :


fakeroot make
-kpkg --append-to-version "-mon-kernel" --revision "05062006" --us --uc modules_image

L'installation

Pour installer le noyau (en format packet Debian .deb) résultant :


cd 
..
sudo dpkg -i linux-image-2.6.16.20-mon-kernel_05062006_i386.deb

*facultatif* Puis l'installation du module externe ATI :


sudo dpkg 
-i fglrx-kernel-2.6.16.20-mon-kernel_8.25.18-1+05062006_i386.deb

On s'assure que tous les modules sont correctement liés au nouveau noyau:


sudo depmod 
-ae 2.6.16.20-mon-kernel

Une fois votre machine redémarrée, vous pourrez choisir de charger votre nouveau noyau ? partir du menu de démarrage (grub ou lilo).

Et voil?!

Aide-mémoire

ATI :


fakeroot 
./ati-driver-installer-8.25.18-x86.run --buildpkg Debian/sarge
sudo dpkg 
-i fglrx-driver_8.25.18-1_i386.deb fglrx-kernel-src_8.25.18-1_i386.deb

NOYAU :


cd 
/usr/src
tar jxf 
~/download/linux-2.6.16.20.tar.bz2
[suspend2tar jxf ~/download/suspend2-2.2.5-for-2.6.16.9.tar.bz2
[ATItar jxf fglrx.tar.bz2
cd linux
-2.6.16.20/
[
suspend2] ../suspend2-2.2.5-for-2.6.16.9/apply
cp 
/boot/config-$(uname -r) .config
make menuconfig
fakeroot make
-kpkg clean
fakeroot make
-kpkg modules_clean
fakeroot make
-kpkg --append-to-version "-mon-kernel" --revision "05062006" --us --uc --initrd kernel_image
[ATIfakeroot make-kpkg --append-to-version "-mon-kernel" --revision "04062006" --us --uc modules_image
sudo dpkg 
-i linux-image-2.6.16.20-mon-kernel_05062006_i386.deb
[ATIsudo dpkg -i fglrx-kernel-2.6.16.20-mon-kernel_8.25.18-1+05062006_i386.deb
sudo depmod 
-ae 2.6.16.20-mon-kernel

Remerciements

Mille fois merci au Guide de référence pour Debian, en particulier ? son tr?s instructif septi?me chapitre.

Avertissement

Les instructions ci-dessus peuvent contenir des erreurs ou des inexactitures. Tout dommage fait ? votre syst?me est en dehors de ma responsabilité personnelle: en fait, vous seul ?tes responsable de votre ordinateur.
mis à jour le : 20.06.06 par ggoodluck47
 

QuebecOS est basé à Rimouski et fondé par Sébastien Gagnon © 2004-2010

Theme QOS-humain


annuaire    


Qui est en ligne
38 utilisateur(s) en ligne (5 membre(s) connecté(s) sur Wiki)

Membre(s): 1
Invité(s): 37

alphad, Plus ...
 

 


Donner maintenant!
Veuillez sélectionner un montant


Est-ce que vous voulez que votre nom d'utilisateur soit révélé avec votre don?
Oui - Marquez- moi en tant que généreux donateur
Non - Je veux que mon don soit anomyme


 

 


Forums
Messages réçents :
 

 


Linux Identity
 

 


Partenaires