| 1 |
<?xml version="1.0" encoding="ISO-8859-1"?>
|
| 2 |
<!-- original version: 36584 -->
|
| 3 |
|
| 4 |
<sect1 id="kernel-baking"><title>Compiler un nouveau noyau</title>
|
| 5 |
<para>
|
| 6 |
|
| 7 |
Pourquoi vouloir compiler un nouveau noyau ?
|
| 8 |
Ce n'est en général pas nécessaire, car le noyau par défaut de
|
| 9 |
Debian reconnaît la plupart des configurations. En outre différents noyaux sont
|
| 10 |
disponibles. Vous devriez chercher s'il n'existe pas de paquet contenant un noyau
|
| 11 |
qui corresponde à votre matériel. Cependant, il peut être
|
| 12 |
utile de compiler un nouveau noyau dans les cas suivants :
|
| 13 |
|
| 14 |
<itemizedlist>
|
| 15 |
<listitem><para>
|
| 16 |
|
| 17 |
Gérer des périphériques spéciaux, ou des conflits de périphériques dans
|
| 18 |
les noyaux par défaut ;
|
| 19 |
|
| 20 |
</para></listitem>
|
| 21 |
<listitem><para>
|
| 22 |
|
| 23 |
Activer des options qui ne sont pas incluses dans le noyau par défaut,
|
| 24 |
permettre la gestion de la mémoire haute par exemple ;
|
| 25 |
|
| 26 |
</para></listitem>
|
| 27 |
|
| 28 |
<listitem><para>
|
| 29 |
|
| 30 |
Optimiser le noyau en enlevant les pilotes inutiles, ce qui peut
|
| 31 |
accélérer le démarrage de la machine ;
|
| 32 |
|
| 33 |
</para></listitem>
|
| 34 |
<listitem><para>
|
| 35 |
|
| 36 |
Créer un noyau monolithique à la place d'un noyau modulaire ;
|
| 37 |
|
| 38 |
</para></listitem>
|
| 39 |
<listitem><para>
|
| 40 |
|
| 41 |
Utiliser une version de développement du noyau ;
|
| 42 |
|
| 43 |
</para></listitem>
|
| 44 |
<listitem><para>
|
| 45 |
|
| 46 |
Mieux connaître le noyau linux.
|
| 47 |
|
| 48 |
</para></listitem>
|
| 49 |
</itemizedlist>
|
| 50 |
|
| 51 |
</para>
|
| 52 |
|
| 53 |
<sect2><title>Gestion des images du noyau</title>
|
| 54 |
<para>
|
| 55 |
|
| 56 |
N'ayez pas peur de compiler un nouveau noyau. C'est amusant et vous apprendrez
|
| 57 |
de nouvelles choses.
|
| 58 |
|
| 59 |
</para><para>
|
| 60 |
|
| 61 |
Pour compiler un noyau « façon Debian », vous avez besoin des
|
| 62 |
paquets suivants :
|
| 63 |
<classname>fakeroot</classname>, <classname>kernel-package</classname>,
|
| 64 |
<phrase condition="classic-kpkg"><classname>kernel-source-&kernelversion;</classname>
|
| 65 |
(la version la plus récente lors de la rédaction de ce document)</phrase>
|
| 66 |
<phrase condition="common-kpkg"><classname>linux-source-2.6</classname></phrase>
|
| 67 |
et quelques autres qui sont probablement déjà installés sur votre machine
|
| 68 |
(pour la liste complète, voyez
|
| 69 |
<filename>/usr/share/doc/kernel-package/README.gz</filename>).
|
| 70 |
|
| 71 |
</para><para>
|
| 72 |
|
| 73 |
Cette méthode crée un .deb à partir des sources du noyau ; si
|
| 74 |
vous utilisez des modules non standard, elle incorpore aussi ces dépendances
|
| 75 |
dans le .deb. C'est une bonne solution pour gérer les images du noyau ;
|
| 76 |
le répertoire <filename>/boot</filename> contiendra le noyau, le System.map
|
| 77 |
et une sauvegarde du fichier de configuration utilisé pour ce paquet.
|
| 78 |
|
| 79 |
</para><para>
|
| 80 |
|
| 81 |
Il faut remarquer qu'il n'est pas <emphasis>obligatoire</emphasis> de
|
| 82 |
compiler votre noyau « façon Debian »; mais vous vous rendrez compte
|
| 83 |
qu'utiliser le système de gestion des paquets pour
|
| 84 |
gérer les noyaux rend leur installation plus simple et plus sûre.
|
| 85 |
En fait, vous pouvez simplement télécharger les sources de Linus et non pas
|
| 86 |
<phrase condition="classic-kpkg"><classname>kernel-source-&kernelversion;</classname>,
|
| 87 |
</phrase>
|
| 88 |
<phrase condition="common-kpkg"><classname>linux-source-2.6</classname>,</phrase>
|
| 89 |
tout en utilisant la méthode de compilation <classname>kernel-package</classname>.
|
| 90 |
|
| 91 |
</para><para>
|
| 92 |
|
| 93 |
Notez que vous trouverez une documentation complète sur l'utilisation de
|
| 94 |
<classname>kernel-package</classname> dans le répertoire
|
| 95 |
<filename>/usr/share/doc/kernel-package</filename>. Cette section ne
|
| 96 |
contient qu'un bref didacticiel.
|
| 97 |
|
| 98 |
</para>
|
| 99 |
<para>
|
| 100 |
|
| 101 |
Dans ce qui suit, nous supposerons que vous pouvez tout faire sur votre
|
| 102 |
machine et que vous allez extraire les sources du noyau dans votre répertoire
|
| 103 |
personnel <footnote>
|
| 104 |
<para> D'autres endroits sont possibles pour extraire les sources et construire
|
| 105 |
le noyau, mais c'est le plus facile car aucun droit spécial n'est demandé.
|
| 106 |
</para></footnote>.
|
| 107 |
Nous supposerons aussi que la version du noyau est &kernelversion;. Allez
|
| 108 |
dans le répertoire où vous voulez désarchiver
|
| 109 |
les sources et désarchivez-les avec
|
| 110 |
<phrase condition="classic-kpkg"><userinput>tar xjf /usr/src/kernel-source-&kernelversion;.tar.bz2</userinput></phrase>
|
| 111 |
<phrase condition="common-kpkg"><userinput>tar xjf
|
| 112 |
/usr/src/linux-source-&kernelversion;.tar.bz2</userinput></phrase>,
|
| 113 |
et déplacez-vous dans le répertoire
|
| 114 |
<phrase condition="classic-kpkg"><filename>kernel-source-&kernelversion;</filename></phrase>
|
| 115 |
<phrase condition="common-kpkg"><filename>linux-source-&kernelversion;</filename></phrase>
|
| 116 |
qui vient d'être créé.
|
| 117 |
|
| 118 |
</para><para>
|
| 119 |
|
| 120 |
Maintenant, vous pouvez configurer votre noyau. Exécutez
|
| 121 |
<userinput>make xconfig</userinput> si X11 est installé, configuré et lancé.
|
| 122 |
Exécutez <userinput>make menuconfig</userinput> dans le cas contraire
|
| 123 |
(vous aurez alors besoin du paquet <classname>libncurses5-dev</classname>).
|
| 124 |
Prenez le temps
|
| 125 |
de lire l'aide en ligne et de choisir judicieusement les options à activer.
|
| 126 |
En cas de doute, il est souvent préférable d'inclure les pilotes de
|
| 127 |
périphériques (tels que les contrôleurs SCSI, cartes Ethernet, etc.) que vous
|
| 128 |
ne connaissez pas bien.
|
| 129 |
Faites attention : les autres options, non spécifiques au matériel,
|
| 130 |
doivent être laissées à leur valeur par défaut si vous ne les comprenez pas.
|
| 131 |
N'oubliez pas de sélectionner « Kernel module loader » dans la
|
| 132 |
section « Loadable module support »
|
| 133 |
(elle n'est pas sélectionnée par défaut), sinon votre système Debian risque
|
| 134 |
d'avoir des problèmes.
|
| 135 |
|
| 136 |
</para><para>
|
| 137 |
|
| 138 |
Nettoyez l'arborescence des sources et réinitialisez les paramètres
|
| 139 |
de <classname>kernel-package</classname>. Pour ce faire, tapez
|
| 140 |
<userinput>make-kpkg clean</userinput>.
|
| 141 |
|
| 142 |
</para><para>
|
| 143 |
|
| 144 |
Maintenant, compilez votre noyau :
|
| 145 |
<userinput>fakeroot make-kpkg --revision=custom.1.0 kernel_image</userinput>.
|
| 146 |
Bien sûr, le numéro de version « 1.0 » peut être changé ;
|
| 147 |
il s'agit juste d'un moyen de suivre vos différentes
|
| 148 |
versions du noyau. De la même façon, vous pouvez remplacer le mot
|
| 149 |
« custom\ » par ce que vous voulez (par exemple le nom d'une
|
| 150 |
machine). La compilation d'un noyau peut être assez longue, selon la puissance
|
| 151 |
de votre machine.
|
| 152 |
|
| 153 |
</para><para condition="supports-pcmcia">
|
| 154 |
|
| 155 |
Si vous avez besoin des PCMCIA, vous devrez installer le
|
| 156 |
paquet <classname>pcmcia-source</classname>. Désarchivez le fichier
|
| 157 |
tar comprimé, en tant que superutilisateur, dans le répertoire
|
| 158 |
<filename>/usr/src</filename> (il est important que les modules soient à
|
| 159 |
l'endroit où ils sont supposés être, c'est-à-dire dans
|
| 160 |
<filename>/usr/src/modules</filename>). Ensuite, en étant superutilisateur,
|
| 161 |
tapez <userinput>make-kpkg modules_image</userinput>.
|
| 162 |
|
| 163 |
</para><para>
|
| 164 |
|
| 165 |
Une fois la compilation terminée, vous pouvez installer votre noyau
|
| 166 |
personnalisé comme n'importe quel autre paquet. En étant superutilisateur,
|
| 167 |
tapez <userinput>dpkg -i ../kernel-image-&kernelversion;-<replaceable>subarchitecture</replaceable>_custom.1.0_&architecture;.deb</userinput>.
|
| 168 |
La partie <replaceable>subarchitecture</replaceable> est une
|
| 169 |
sous-architecture optionnelle,
|
| 170 |
<phrase arch="i386"> telle que <quote>i586</quote>, </phrase>
|
| 171 |
suivant les options de compilation que vous avez définies.
|
| 172 |
<userinput>dpkg -i kernel-image...</userinput> installera votre noyau ainsi
|
| 173 |
que les autres fichiers qui lui seront nécessaires.
|
| 174 |
Par exemple, le fichier <filename>System.map</filename> sera installé
|
| 175 |
correctement (très utile pour le débogage des problèmes de noyau) et un
|
| 176 |
fichier <filename>/boot/config-&kernelversion;</filename> sera installé, qui
|
| 177 |
contiendra votre configuration noyau.
|
| 178 |
Votre nouveau paquet <classname>kernel-image-&kernelversion;</classname> est
|
| 179 |
tellement malin qu'il utilise automatiquement le programme d'amorçage de votre
|
| 180 |
plateforme pour mettre à jour l'information sur l'image de noyau utilisée
|
| 181 |
pendant le démarrage, sans qu'il soit nécessaire de réexécuter le programme
|
| 182 |
d'amorçage. Si vous avez créé un paquet pour les modules, par exemple si vous
|
| 183 |
avez PCMCIA, vous devrez installer ce paquet également.
|
| 184 |
|
| 185 |
</para><para>
|
| 186 |
|
| 187 |
Vous devez maintenant redémarrer votre système : lisez attentivement les
|
| 188 |
éventuels avertissements produits par les étapes précédentes, puis exécutez
|
| 189 |
<userinput>shutdown -r now</userinput>.
|
| 190 |
|
| 191 |
</para><para>
|
| 192 |
|
| 193 |
D'autres informations sur la compilation des noyaux Debian
|
| 194 |
se trouvent dans le
|
| 195 |
<ulink url="&url-kernel-handbook;"><quote>Debian Linux Kernel Handbook</quote></ulink>.
|
| 196 |
|
| 197 |
Pour plus d'informations sur <classname>kernel-package</classname>, lisez
|
| 198 |
la documentation dans <filename>/usr/share/doc/kernel-package</filename>.
|
| 199 |
|
| 200 |
</para>
|
| 201 |
</sect2>
|
| 202 |
</sect1>
|