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