Subversion Repositories svn LFS-FR

Rev

Rev 1347 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
475 gleu 1
<?xml version="1.0" encoding="ISO-8859-1"?>
594 gleu 2
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
475 gleu 4
  <!ENTITY % general-entities SYSTEM "../general.ent">
5
  %general-entities;
6
]>
594 gleu 7
 
519 gleu 8
<sect1 id="ch-bootable-kernel" role="wrap">
594 gleu 9
  <?dbhtml filename="kernel.html"?>
3 guillel 10
 
602 texou 11
  <sect1info condition="script">
12
    <productname>linux</productname>
13
    <productnumber>&linux-version;</productnumber>
14
    <address>&linux-url;</address>
15
  </sect1info>
16
 
594 gleu 17
  <title>Linux-&linux-version;</title>
3 guillel 18
 
594 gleu 19
  <indexterm zone="ch-bootable-kernel">
20
    <primary sortas="a-Linux">Linux</primary>
21
  </indexterm>
3 guillel 22
 
594 gleu 23
  <sect2 role="package">
24
    <title/>
475 gleu 25
 
594 gleu 26
    <para>Le paquet Linux contient le noyau Linux.</para>
475 gleu 27
 
594 gleu 28
    <segmentedlist>
29
      <segtitle>&buildtime;</segtitle>
30
      <segtitle>&diskspace;</segtitle>
475 gleu 31
 
594 gleu 32
      <seglistitem>
33
        <seg>&linux-ch8-sbu;</seg>
34
        <seg>&linux-ch8-du;</seg>
35
      </seglistitem>
36
    </segmentedlist>
475 gleu 37
 
594 gleu 38
  </sect2>
475 gleu 39
 
594 gleu 40
  <sect2 role="installation">
41
    <title>Installation du noyau</title>
42
 
602 texou 43
    <para>Construire le noyau implique un certain nombre d'étapes&mdash;la
44
    configuration, la compilation et l'installation. Lisez le fichier
594 gleu 45
    <filename>README</filename> contenu dans les sources du noyau pour d'autres
46
    méthodes que celle utilisée par le livre pour configurer le noyau.</para>
47
 
1347 jmengual 48
 
49
    <para>Appliquez le correctif Grsecurity&nbsp;:</para>
50
 
51
<screen><userinput remap="pre">patch -Np1 -i ../&grsecurity-patch;</userinput></screen>
52
 
594 gleu 53
    <para>Préparez la compilation en lançant la commande suivante&nbsp;:</para>
54
 
602 texou 55
<screen><userinput remap="pre">make mrproper</userinput></screen>
475 gleu 56
 
594 gleu 57
    <para>Ceci nous assure que le répertoire du noyau est complètement nettoyé.
58
    L'équipe du noyau recommande que cette commande soit lancée avant chaque
59
    compilation du noyau. Vous ne devez pas penser que le répertoire des sources
60
    est propre juste après avoir été déballé.</para>
61
    <!-- Support for compiling a keymap into the kernel is deliberately removed -->
519 gleu 62
 
849 texou 63
    <para>Configurez le noyau via une interface par menu. Sur des informations générales sur la configuration du noyau, voir
888 texou 64
    <ulink url="http://lfs.traduc.org/view/astuces/kernel-configuration-fr.txt"/>. BLFS a quelques
594 gleu 65
    informations concernant les besoins particuliers du noyau en terme de
66
    configuration pour les paquetages en dehors de LFS sur
67
    <ulink url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>&nbsp;:</para>
519 gleu 68
 
594 gleu 69
<screen role="nodump"><userinput>make LANG=<replaceable>&lt;valeur_LANG_du_hote&gt;</replaceable> LC_ALL= menuconfig</userinput></screen>
519 gleu 70
 
594 gleu 71
    <variablelist>
72
      <title>Voici la signification des paramètres de make&nbsp;:</title>
475 gleu 73
 
594 gleu 74
      <varlistentry>
75
        <term><parameter>LANG=&lt;valeur_LANG_du_hote&gt; LC_ALL=</parameter></term>
76
        <listitem>
77
          <para>Ceci établit le paramétrage local à celui utilisé sur l'hôte.
602 texou 78
          Ceci est nécessaire pour que le dessin de la ligne de l'interface de
594 gleu 79
          menuconfig soit correct sur la console texte de Linux en UTF-8</para>
475 gleu 80
 
594 gleu 81
          <para>Assurez-vous de remplacer
82
          <replaceable>&lt;valeur_LANG_du_hote&gt;</replaceable> par la valeur
83
          de la variable <envar>$LANG</envar> de votre hôte. Si ce n'est pas
84
          paramétré, vous pourriez plutôt utiliser la valeur de
85
          <envar>$LC_ALL</envar> ou <envar>$LC_CTYPE</envar> de l'hôte.</para>
86
        </listitem>
87
      </varlistentry>
475 gleu 88
 
594 gleu 89
    </variablelist>
475 gleu 90
 
594 gleu 91
    <para>Sinon, <command>make oldconfig</command> peut être plus approprié dans
92
    certaines situations. Voir le fichier <filename>README</filename> pour plus
93
    d'informations.</para>
475 gleu 94
 
594 gleu 95
    <para>Si désiré, passez la configuration du noyau en copiant le fichier de
96
    configuration, <filename>.config</filename>, à partir du système hôte
97
    (en supposant qu'il est disponible) dans le répertoire
602 texou 98
    <filename class="directory">linux-&linux-version;</filename> tout juste
99
    déballé. Néanmoins, nous ne recommandons pas cette option. Il est souvent mieux
594 gleu 100
    d'explorer tous les menus de configuration et de créer la configuration du
101
    noyau à partir de rien.</para>
561 gleu 102
 
594 gleu 103
    <para>Compilez l'image du noyau et les modules&nbsp;:</para>
475 gleu 104
 
1347 jmengual 105
<screen><userinput remap="make">make CC="gcc -fno-PIE -no-fatal-warnings"</userinput></screen>
475 gleu 106
 
1347 jmengual 107
 
1115 jmengual 108
    <para>Si vous utilisez des modules du noyau, il peut être nécessaire de
109
    configurer les modules dans le fichier
1114 jmengual 110
    <filename class="directory">/etc/modprobe.d</filename>. Des
111
    informations au sujet de la configuration du noyau et des modules se trouvent sur
112
    <xref linkend="ch-scripts-udev"/> et dans la documentation du noyau, dans
113
    le répertoire <filename class="directory">linux-&linux-version;/Documentation</filename>.
114
    De plus, <filename>modprobe.conf(5)</filename> pourrait aussi
602 texou 115
    avoir de l'intérêt.</para>
475 gleu 116
 
602 texou 117
    <para>Installez les modules si la configuration du noyau les
118
                utilise&nbsp;:</para>
475 gleu 119
 
602 texou 120
<screen><userinput remap="install">make modules_install</userinput></screen>
475 gleu 121
 
1402 jmengual 122
     <para>Déballez, construisez et installez le module Frandom&nbsp;:</para>
123
 
124
<screen><userinput remap="install">tar xf ../frandom-&frandom-version;.tar.gz
125
cd frandom-&frandom-version;
126
make CC="gcc -fno-PIE -no-fatal-warnings"
127
install -m 644 frandom.ko /lib/modules/&linux-version;-grsec/kernel/drivers/char/
128
depmod -a
129
cd ../</userinput></screen>
130
 
594 gleu 131
    <para>Une fois la compilation du noyau terminée, des étapes
132
    supplémentaires sont requises pour terminer l'installation. Certains
602 texou 133
    fichiers ont besoin d'être copiés dans le répertoire
594 gleu 134
    <filename class="directory">/boot</filename>.</para>
475 gleu 135
 
594 gleu 136
    <para>Le chemin vers l'image du noyau pourrait varier suivant la
1023 jmengual 137
    plateforme d'utilisation. Vous pouvez changer le nom du fichier
138
    ci-dessous selon votre goût, mais le schéma du nom de fichier devrait ressembler à
139
    <emphasis>vmlinux</emphasis> pour être compatible avec le paramétrage automatique du
140
    processus de démarrage décrit dans la section suivante. La commande suivante suppose qu'on se
594 gleu 141
    trouve sur une architecture x86&nbsp;:</para>
475 gleu 142
 
1347 jmengual 143
<screen><userinput remap="install">cp -v arch/x86/boot/bzImage /boot/vmlinux-&linux-version;-hlfs-&version;</userinput></screen>
475 gleu 144
 
594 gleu 145
    <para><filename>System.map</filename> est un fichier de symboles
146
    pour le noyau. Il cartographie les points d'entrées de chaque
147
    fonction dans l'API du noyau, ainsi que les adresses des structures
1128 jmengual 148
    de données du noyau pour le noyau en cours d'exécution.
149
    Il sert de ressource lors d'une enquête sur des problèmes de noyau.
150
    Lancez la commande suivante pour installer le fichier carte&nbsp;:</para>
475 gleu 151
 
602 texou 152
<screen><userinput remap="install">cp -v System.map /boot/System.map-&linux-version;</userinput></screen>
475 gleu 153
 
602 texou 154
    <para>Le fichier de configuration du noyau <filename>.config</filename>
155
    produit à l'étape <command>make menuconfig</command>
156
    ci-dessus contient toutes les sélections de
667 texou 157
    configuration pour le noyau tout juste compilé. Conserver ce fichier
594 gleu 158
    est une bonne idée pour pouvoir s'y référer plus tard&nbsp;:</para>
475 gleu 159
 
602 texou 160
<screen><userinput remap="install">cp -v .config /boot/config-&linux-version;</userinput></screen>
475 gleu 161
 
594 gleu 162
    <para>Installez la documentation du noyau Linux&nbsp;:</para>
555 gleu 163
 
602 texou 164
<screen><userinput remap="install">install -d /usr/share/doc/linux-&linux-version;
594 gleu 165
cp -r Documentation/* /usr/share/doc/linux-&linux-version;</userinput></screen>
475 gleu 166
 
594 gleu 167
    <para>Il est important de noter que les fichiers dans le répertoire
168
    des sources du noyau n'appartiennent pas à
169
    <emphasis>root</emphasis>. Chaque fois qu'un paquet est déballé en
170
    tant qu'utilisateur <emphasis>root</emphasis> (comme on a fait dans
171
    chroot), les fichiers ont les ID de l'utilisateur et du groupe où
172
    ils étaient sur l'ordinateur du paquet. En principe cela n'est pas
173
    un problème pour tout autre paquet lorsqu'il est installé car
174
    l'arborescence des sources est supprimée après l'installation. Par
175
    contre, l'arborescence de Linux est souvent longtemps conservée. Du
176
    coup, il y a des chances que tout ce que l'ID de l'utilisateur ayant
177
    déballé le paquet a utilisé ne soit affecté à quelqu'un sur la
178
    machine. Cette personne pourrait alors avoir un droit d'écriture sur
179
    les sources du noyau.</para>
555 gleu 180
 
594 gleu 181
    <para>Si vous allez conserver l'arborescence des sources du noyau,
182
    lancez <command>chown -R 0:0</command> sur le répertoire
183
    <filename class="directory">linux-&linux-version;</filename> pour
602 texou 184
    vous assurer que tous les fichiers appartiennent à
594 gleu 185
    <emphasis>root</emphasis>.</para>
555 gleu 186
 
594 gleu 187
    <warning>
602 texou 188
      <para>Certaines documentations du noyau recommandent de créer un lien
594 gleu 189
      symbolique à partir de
190
      <filename class="symlink">/usr/src/linux</filename> pointant vers
602 texou 191
      le répertoire des sources du noyau. Ceci est spécifique aux noyaux
192
                        antérieurs à la série 2.6 et <emphasis>ne doit pas</emphasis> être réalisé
193
                        sur un système LFS car il peut poser des problèmes pour les
194
                        paquetages que vous souhaiter construire une fois que votre
195
                        système LFS de base est complet.</para>
594 gleu 196
    </warning>
475 gleu 197
 
594 gleu 198
    <warning>
199
      <para>Les en-têtes compris dans le répertoire
602 texou 200
      <filename class="directory">include</filename>
201
      devraient <emphasis>toujours</emphasis> être ceux avec lesquels Glibc a
202
                été compilé et, du coup, ne devraient <emphasis>jamais</emphasis> être
203
                remplacés par les en-têtes du noyau ou par d'autres en-têtes nettoyées
204
          du noyau.</para>
594 gleu 205
    </warning>
475 gleu 206
 
594 gleu 207
  </sect2>
475 gleu 208
 
831 texou 209
  <sect2 id="conf-modprobe" role="configuration">
210
    <title>Configuration de l'ordre de chargement des modules Linux</title>
211
 
212
    <indexterm zone="conf-modprobe">
1114 jmengual 213
      <primary sortas="e-/etc/modprobe.d/usb.conf">/etc/modprobe.d/usb.conf</primary>
831 texou 214
    </indexterm>
215
 
1114 jmengual 216
    <para>Vous devez créer le fichier <filename>/etc/modprobe.d/usb.conf</filename> afin que, si les pilotes USB (ehci_hcd, ohci_hcd et uhci_hcd)
831 texou 217
    ont été construits en module, ils seront chargés dans le bon ordre&nbsp;; ehci_hcd doit être chargé avant ohci_hcd et uhci_hcd afin
218
    d'éviter un avertissement qui sort au moment du démarrage.</para>
219
 
1114 jmengual 220
    <para>Créez un nouveau <filename>/etc/modprobe.d/usb.conf</filename> en lançant ce qui suit&nbsp;:</para>
831 texou 221
 
1115 jmengual 222
<screen><userinput>install -v -m755 -d /etc/modprobe.d
1114 jmengual 223
cat &gt; /etc/modprobe.d/usb.conf &lt;&lt; "EOF"
224
<literal># Begin /etc/modprobe.d/usb.conf
831 texou 225
 
226
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
227
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
228
 
1114 jmengual 229
# Fin de /etc/modprobe.d/usb.conf</literal>
831 texou 230
EOF</userinput></screen>
231
 
232
  </sect2>
233
 
594 gleu 234
  <sect2 id="contents-kernel" role="content">
235
    <title>Contenu de Linux</title>
475 gleu 236
 
594 gleu 237
    <segmentedlist>
238
      <segtitle>Fichiers installés</segtitle>
1162 jmengual 239
      <segtitle>Répertoires installés</segtitle>
555 gleu 240
 
594 gleu 241
      <seglistitem>
1217 jmengual 242
        <seg>config-&linux-version;,
243
        vmlinux-&linux-version;-lfs-&version;-&linux-version; et
594 gleu 244
        System.map-&linux-version;</seg>
1162 jmengual 245
        <seg>/lib/modules, /usr/share/doc/linux-&linux-version;</seg>
594 gleu 246
      </seglistitem>
247
    </segmentedlist>
475 gleu 248
 
594 gleu 249
    <variablelist>
250
      <bridgehead renderas="sect3">Descriptions courtes</bridgehead>
251
      <?dbfo list-presentation="list"?>
252
      <?dbhtml list-presentation="table"?>
475 gleu 253
 
594 gleu 254
      <varlistentry id="config">
255
        <term><filename>config-&linux-version;</filename></term>
256
        <listitem>
257
          <para>Contient toutes les sélections de la configuration pour le noyau</para>
258
          <indexterm zone="ch-bootable-kernel config">
259
            <primary sortas="e-/boot/config">/boot/config-&linux-version;</primary>
260
          </indexterm>
261
        </listitem>
262
      </varlistentry>
475 gleu 263
 
594 gleu 264
      <varlistentry id="lfskernel">
1128 jmengual 265
        <term><filename>vmlinux-&linux-version;-lfs-&version;</filename></term>
594 gleu 266
        <listitem>
602 texou 267
          <para>Le moteur du système Linux. Au démarrage de l'ordinateur, le
268
                                        noyau est la première partie du système d'exploitation
269
                                        à être chargée. Il détecte et initialise tous composants matériels de
270
                                  l'ordinateur, puis rend disponible les composants par un ensemble de
271
                                        fichiers pour les logiciels qui en ont besoin, et
272
          transforme un CPU unique en une machine multitâches capable 'exécuter
273
          des bouts de programmes quasiment au même moment.</para>
594 gleu 274
          <indexterm zone="ch-bootable-kernel lfskernel">
275
            <primary sortas="b-lfskernel">lfskernel-&linux-version;</primary>
276
          </indexterm>
277
        </listitem>
278
      </varlistentry>
279
 
280
      <varlistentry id="System.map">
281
        <term><filename>System.map-&linux-version;</filename></term>
282
        <listitem>
602 texou 283
          <para>Une liste d'adresses et de symboles&nbsp;; il fait correspondre
284
          les points d'entrées et les adresses de toutes
285
                                        les fonctions et structures de données dans le noyau</para>
594 gleu 286
          <indexterm zone="ch-bootable-kernel System.map">
287
            <primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary>
288
          </indexterm>
289
        </listitem>
290
      </varlistentry>
291
 
292
    </variablelist>
293
 
294
  </sect2>
295
 
174 guillaume 296
</sect1>