Subversion Repositories svn LFS-FR

Rev

Rev 1344 | Go to most recent revision | 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
 
594 gleu 122
    <para>Une fois la compilation du noyau terminée, des étapes
123
    supplémentaires sont requises pour terminer l'installation. Certains
602 texou 124
    fichiers ont besoin d'être copiés dans le répertoire
594 gleu 125
    <filename class="directory">/boot</filename>.</para>
475 gleu 126
 
594 gleu 127
    <para>Le chemin vers l'image du noyau pourrait varier suivant la
1023 jmengual 128
    plateforme d'utilisation. Vous pouvez changer le nom du fichier
129
    ci-dessous selon votre goût, mais le schéma du nom de fichier devrait ressembler à
130
    <emphasis>vmlinux</emphasis> pour être compatible avec le paramétrage automatique du
131
    processus de démarrage décrit dans la section suivante. La commande suivante suppose qu'on se
594 gleu 132
    trouve sur une architecture x86&nbsp;:</para>
475 gleu 133
 
1347 jmengual 134
<screen><userinput remap="install">cp -v arch/x86/boot/bzImage /boot/vmlinux-&linux-version;-hlfs-&version;</userinput></screen>
475 gleu 135
 
594 gleu 136
    <para><filename>System.map</filename> est un fichier de symboles
137
    pour le noyau. Il cartographie les points d'entrées de chaque
138
    fonction dans l'API du noyau, ainsi que les adresses des structures
1128 jmengual 139
    de données du noyau pour le noyau en cours d'exécution.
140
    Il sert de ressource lors d'une enquête sur des problèmes de noyau.
141
    Lancez la commande suivante pour installer le fichier carte&nbsp;:</para>
475 gleu 142
 
602 texou 143
<screen><userinput remap="install">cp -v System.map /boot/System.map-&linux-version;</userinput></screen>
475 gleu 144
 
602 texou 145
    <para>Le fichier de configuration du noyau <filename>.config</filename>
146
    produit à l'étape <command>make menuconfig</command>
147
    ci-dessus contient toutes les sélections de
667 texou 148
    configuration pour le noyau tout juste compilé. Conserver ce fichier
594 gleu 149
    est une bonne idée pour pouvoir s'y référer plus tard&nbsp;:</para>
475 gleu 150
 
602 texou 151
<screen><userinput remap="install">cp -v .config /boot/config-&linux-version;</userinput></screen>
475 gleu 152
 
594 gleu 153
    <para>Installez la documentation du noyau Linux&nbsp;:</para>
555 gleu 154
 
602 texou 155
<screen><userinput remap="install">install -d /usr/share/doc/linux-&linux-version;
594 gleu 156
cp -r Documentation/* /usr/share/doc/linux-&linux-version;</userinput></screen>
475 gleu 157
 
594 gleu 158
    <para>Il est important de noter que les fichiers dans le répertoire
159
    des sources du noyau n'appartiennent pas à
160
    <emphasis>root</emphasis>. Chaque fois qu'un paquet est déballé en
161
    tant qu'utilisateur <emphasis>root</emphasis> (comme on a fait dans
162
    chroot), les fichiers ont les ID de l'utilisateur et du groupe où
163
    ils étaient sur l'ordinateur du paquet. En principe cela n'est pas
164
    un problème pour tout autre paquet lorsqu'il est installé car
165
    l'arborescence des sources est supprimée après l'installation. Par
166
    contre, l'arborescence de Linux est souvent longtemps conservée. Du
167
    coup, il y a des chances que tout ce que l'ID de l'utilisateur ayant
168
    déballé le paquet a utilisé ne soit affecté à quelqu'un sur la
169
    machine. Cette personne pourrait alors avoir un droit d'écriture sur
170
    les sources du noyau.</para>
555 gleu 171
 
594 gleu 172
    <para>Si vous allez conserver l'arborescence des sources du noyau,
173
    lancez <command>chown -R 0:0</command> sur le répertoire
174
    <filename class="directory">linux-&linux-version;</filename> pour
602 texou 175
    vous assurer que tous les fichiers appartiennent à
594 gleu 176
    <emphasis>root</emphasis>.</para>
555 gleu 177
 
594 gleu 178
    <warning>
602 texou 179
      <para>Certaines documentations du noyau recommandent de créer un lien
594 gleu 180
      symbolique à partir de
181
      <filename class="symlink">/usr/src/linux</filename> pointant vers
602 texou 182
      le répertoire des sources du noyau. Ceci est spécifique aux noyaux
183
                        antérieurs à la série 2.6 et <emphasis>ne doit pas</emphasis> être réalisé
184
                        sur un système LFS car il peut poser des problèmes pour les
185
                        paquetages que vous souhaiter construire une fois que votre
186
                        système LFS de base est complet.</para>
594 gleu 187
    </warning>
475 gleu 188
 
594 gleu 189
    <warning>
190
      <para>Les en-têtes compris dans le répertoire
602 texou 191
      <filename class="directory">include</filename>
192
      devraient <emphasis>toujours</emphasis> être ceux avec lesquels Glibc a
193
                été compilé et, du coup, ne devraient <emphasis>jamais</emphasis> être
194
                remplacés par les en-têtes du noyau ou par d'autres en-têtes nettoyées
195
          du noyau.</para>
594 gleu 196
    </warning>
475 gleu 197
 
594 gleu 198
  </sect2>
475 gleu 199
 
831 texou 200
  <sect2 id="conf-modprobe" role="configuration">
201
    <title>Configuration de l'ordre de chargement des modules Linux</title>
202
 
203
    <indexterm zone="conf-modprobe">
1114 jmengual 204
      <primary sortas="e-/etc/modprobe.d/usb.conf">/etc/modprobe.d/usb.conf</primary>
831 texou 205
    </indexterm>
206
 
1114 jmengual 207
    <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 208
    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
209
    d'éviter un avertissement qui sort au moment du démarrage.</para>
210
 
1114 jmengual 211
    <para>Créez un nouveau <filename>/etc/modprobe.d/usb.conf</filename> en lançant ce qui suit&nbsp;:</para>
831 texou 212
 
1115 jmengual 213
<screen><userinput>install -v -m755 -d /etc/modprobe.d
1114 jmengual 214
cat &gt; /etc/modprobe.d/usb.conf &lt;&lt; "EOF"
215
<literal># Begin /etc/modprobe.d/usb.conf
831 texou 216
 
217
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
218
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
219
 
1114 jmengual 220
# Fin de /etc/modprobe.d/usb.conf</literal>
831 texou 221
EOF</userinput></screen>
222
 
223
  </sect2>
224
 
594 gleu 225
  <sect2 id="contents-kernel" role="content">
226
    <title>Contenu de Linux</title>
475 gleu 227
 
594 gleu 228
    <segmentedlist>
229
      <segtitle>Fichiers installés</segtitle>
1162 jmengual 230
      <segtitle>Répertoires installés</segtitle>
555 gleu 231
 
594 gleu 232
      <seglistitem>
1217 jmengual 233
        <seg>config-&linux-version;,
234
        vmlinux-&linux-version;-lfs-&version;-&linux-version; et
594 gleu 235
        System.map-&linux-version;</seg>
1162 jmengual 236
        <seg>/lib/modules, /usr/share/doc/linux-&linux-version;</seg>
594 gleu 237
      </seglistitem>
238
    </segmentedlist>
475 gleu 239
 
594 gleu 240
    <variablelist>
241
      <bridgehead renderas="sect3">Descriptions courtes</bridgehead>
242
      <?dbfo list-presentation="list"?>
243
      <?dbhtml list-presentation="table"?>
475 gleu 244
 
594 gleu 245
      <varlistentry id="config">
246
        <term><filename>config-&linux-version;</filename></term>
247
        <listitem>
248
          <para>Contient toutes les sélections de la configuration pour le noyau</para>
249
          <indexterm zone="ch-bootable-kernel config">
250
            <primary sortas="e-/boot/config">/boot/config-&linux-version;</primary>
251
          </indexterm>
252
        </listitem>
253
      </varlistentry>
475 gleu 254
 
594 gleu 255
      <varlistentry id="lfskernel">
1128 jmengual 256
        <term><filename>vmlinux-&linux-version;-lfs-&version;</filename></term>
594 gleu 257
        <listitem>
602 texou 258
          <para>Le moteur du système Linux. Au démarrage de l'ordinateur, le
259
                                        noyau est la première partie du système d'exploitation
260
                                        à être chargée. Il détecte et initialise tous composants matériels de
261
                                  l'ordinateur, puis rend disponible les composants par un ensemble de
262
                                        fichiers pour les logiciels qui en ont besoin, et
263
          transforme un CPU unique en une machine multitâches capable 'exécuter
264
          des bouts de programmes quasiment au même moment.</para>
594 gleu 265
          <indexterm zone="ch-bootable-kernel lfskernel">
266
            <primary sortas="b-lfskernel">lfskernel-&linux-version;</primary>
267
          </indexterm>
268
        </listitem>
269
      </varlistentry>
270
 
271
      <varlistentry id="System.map">
272
        <term><filename>System.map-&linux-version;</filename></term>
273
        <listitem>
602 texou 274
          <para>Une liste d'adresses et de symboles&nbsp;; il fait correspondre
275
          les points d'entrées et les adresses de toutes
276
                                        les fonctions et structures de données dans le noyau</para>
594 gleu 277
          <indexterm zone="ch-bootable-kernel System.map">
278
            <primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary>
279
          </indexterm>
280
        </listitem>
281
      </varlistentry>
282
 
283
    </variablelist>
284
 
285
  </sect2>
286
 
174 guillaume 287
</sect1>