[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
[suspend2] tar jxf ~/download/suspend2-2.2.5-for-2.6.16.9.tar.bz2
[ATI] tar 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
[ATI] fakeroot 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
[ATI] sudo 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.
QuebecOS est basé à Rimouski et fondé par Sébastien Gagnon © 2004-2010
Theme QOS-humain