<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.docbook.org/xml/4.3/docbookx.dtd" [

<!-- Liens stables -->

<!ENTITY howto          "http://www.traduc.org/docs/howto/lecture/">
<!ENTITY guide          "http://www.traduc.org/docs/guides/lecture/">

]>

<article lang="fr">

  <articleinfo>
    <title>
        Guide pratique du logiciel <application>Linux 
        Crash</application>
    </title>
    
    <subtitle>
        Adaptation française du <foreignphrase>Linux Crash
        HOWTO</foreignphrase>
    </subtitle>

    <author>
      <firstname>Norman</firstname>
      <surname>Patten</surname>
      <affiliation><address>
        <email>nepatten CHEZ us POINT ibm POINT com</email>
      </address></affiliation>
    </author>

    <othercredit role="traduction">
      <firstname>Simon</firstname>
      <surname>Depiets</surname>
      <contrib>Adaptation française</contrib>
      <email>2df CHEZ tuxfamily POINT org</email>
    </othercredit>

    <othercredit role="relecture">
      <firstname>Karine</firstname>
      <surname>Volpi</surname>
      <contrib>Relecture de la version française</contrib>
      <email>nemy CHEZ nemy POINT net</email>
    </othercredit>

    <othercredit role="publication">
        <firstname>Jean-Philippe</firstname>
        <surname>Guérard</surname>
        <contrib>Préparation de la publication de la v.f.</contrib>
        <email>fevrier CHEZ tigreraye POINT org</email>
    </othercredit>


    <pubdate>2004-03-21</pubdate>
    <releaseinfo>1.0.fr.1.0</releaseinfo>
    
    <abstract><para>
    
        Ce document décrit l'installation et l'utilisation du paquet
        <application>LKCD</application> (<foreignphrase>Linux Kernel
        Crash Dump</foreignphrase>). Ce paquet permet la récupération
        d'une copie de la mémoire suite à un plantage du noyau.
    
    </para></abstract>

    <revhistory>
    
       <!-- La version la plus récente est en haut -->
         
       <revision>
         <revnumber>1.0.fr.1.0</revnumber>
         <date>2004-03-21</date>
         <authorinitials>SD,KV,JPG</authorinitials>
         <revremark>
         
           Première adaptation française
         
         </revremark>
       </revision>
       
       <revision>
         <revnumber>1.0</revnumber>
         <date>2002-01-30</date>
         <authorinitials>NM</authorinitials>
         <revremark>
           
           Version initiale &mdash; <emphasis>Initial
           release.</emphasis>
         
         </revremark>
       </revision>
    </revhistory>

  </articleinfo>

  <section id="introduction">
  
    <title>Introduction</title>
    
    <para>
    
        Le projet <emphasis role="strong">LKCD</emphasis><footnote>
        
        <para> 

        <foreignphrase>Linux Kernel Crash Dump</foreignphrase> &mdash;
        Sauvegarde de la mémoire du noyau Linux en cas de plantage.

        </para></footnote>
        
        est un ensemble de correctifs du noyau Linux et d'outils
        permettant de sauvegarder une copie de la mémoire du noyau
        lorsque celui-ci panique. L'image mémoire du noyau permet une
        analyse après coup de la cause de sa panique. Ceci grâce aux
        outils inclus dans le paquet. La plupart des systèmes Unix
        commerciaux sont vendus avec des outils semblables. Sur Linux,
        cependant, ce paquet est assez nouveau et doit être ajouté
        manuellement. L'utilitaire <application>LKCD</application> n'est
        pas destiné à donner des informations utiles dans le cas d'une
        panique causée par un problème matériel ou lors d'une violation
        de la segmentation mémoire. Le paquet
        <application>LKCD</application> complet peut être téléchargé sur
        <ulink url="http://lkcd.sourceforge.net/"/>.
        
    </para>

    <section id="droits.d.utilisation">
    
    <title>Droits d'utilisation</title>

      <para>

        Copyright &copy; 2002 Norman Patten.

      </para>

      <para>

        Copyright &copy; 2004 Simon Depiets, Karine Volpi et 
        Jean-Philippe Guérard pour l'adaptation française.

      </para>

      <para>
        
        Vous avez la permission de copier, de distribuer et de modifier
        ce document selon les termes de la licence de documentation
        libre GNU (GFDL), dans sa version 1.1 ou dans une version
        ultérieure, telle que publiée par la Free Software
        Foundation&nbsp;; sans section invariante, ni texte de première
        de couverture, ni texte de quatrième de couverture. Une copie de
        cette licence est disponible sur <ulink
        url="http://www.gnu.org/copyleft/fdl.html"/>.

      </para>
      
      <para><foreignphrase>

        Permission is granted to copy, distribute and/or modify this
        document under the terms of the GNU Free Documentation License,
        Version 1.1 or any later version published by the Free Software
        Foundation; with no Invariant Sections, with no Front-Cover
        Texts, and with no Back-Cover Texts. A copy of the license is
        available at <ulink
        url="http://www.gnu.org/copyleft/fdl.html"/>.

      </foreignphrase></para>

      <para>
      
        Linux est une marque enregistrée de Linus Torvalds. LKCD est
        distribué sous copyright par Silicon Graphics Inc.

      </para>
      
      <para><foreignphrase>

        Linux is a registered trademark of Linus Torvalds . LKCD is 
        distributed under the copyright of Silicon Graphics Inc.

      </foreignphrase></para>

      <para>
      
        Envoyez vos commentaires et corrections en anglais à 
        <email>nepatten CHEZ us POINT ibm POINT com</email>. 
      
      </para>
      
      <para><foreignphrase>

        Send feedback to

        <email>nepatten AT us DOT ibm DOT com</email>. 

      </foreignphrase></para>

      <para>
       
          N'hésitez pas à faire parvenir tout commentaire relatif à la
          version française de ce document à
          
          <email>commentaires CHEZ traduc POINT org</email>
          
          en précisant le titre et la version de ce document.
      
      </para>

    </section>
  </section>

    <section id="comment.ca.marche">
  
      <title>
      
        Comment fonctionne <application>LKCD</application>
        
      </title>
    
      <para>
    
        Quand un noyau rencontre certaines erreurs, il appelle la
        fonction <function>panic</function> qui est produite par une
        erreur irréversible. Lors d'une telle situation,
        <application>LKCD</application> réalisera une copie de la
        mémoire du noyau vers une zone pré-désignée. La zone est par
        défaut la partition d'échange principale (<foreignphrase>primary
        swap</foreignphrase>). Le noyau n'est pas complètement
        fonctionnel à cette étape, mais il y dispose de capacités
        suffisantes pour recopier la mémoire sur le disque.  Lorsque la
        copie est terminée, le système redémarre.
      
      </para>
    
      <para>
            
        Lors du redémarrage du système, si une nouvelle copie de la
        mémoire est trouvée sur la partition d'échange principale, elle
        est copiée par défaut vers le répertoire <filename
        class="directory">/var/log/dump</filename>. Une fois l'image
        recopiée, le démarrage se poursuit normalement et une analyse
        médico-légale pourra être effectuée plus tard.
      
      </para>
      
      <section id="cedontvousaurezbesoin">
   
        <title>Ce dont vous aurez besoin</title>

        <para>
    
          Le fichier
          <filename>lkcd-<replaceable>noyauxxx</replaceable>.diff</filename>
          qui est un correctif à appliquer au noyau. La version du noyau
          à laquelle s'applique ce correctif change régulièrement.
          
        </para>
        
        <para>
          
          <filename>lkcdutils-<replaceable>xx</replaceable>.src.rpm</filename>
          &mdash; ce sont les scripts et les sources des outils dont
          vous aurez besoin pour installer
          <application>LKCD</application> et lire la copie mémoire. Au
          moment où j'écris, il existe un paquet rpm binaire destiné aux
          processeurs i386. Il est disponible sur <ulink
          url="http://lkcd.sourceforge.net/"/>. Cependant, vous aurez
          quand même besoin des correctifs à appliquer aux scripts de
          démarrage. Vous trouverez ces correctifs dans le paquet rpm
          des sources.
        
      </para>
  
    </section>
  </section>

  <section id="installation">
  
    <title>L'installation de <application>LKCD</application></title>

    <section>
    
      <title>Installer depuis le code source</title>
      
      <para>
      
        Téléchargez <filename>lkcdutils-xxx.src.rpm</filename> et
        installez le en utilisant la commande&nbsp;:
        
      </para>

<programlisting>
rpm -i kcdutils-<replaceable>xxx</replaceable>.src.rpm
</programlisting>

      <para>

        Cela placera un fichier appelé
        <filename>lkcdutils-<replaceable>xxx</replaceable>.tar.gz</filename>
        dans le répertoire <filename
        class="directory">/usr/src/redhat/SOURCES</filename>. Ce fichier
        est une archive au format tar compressée de l'arborescence des
        sources de <application>LKCD</application>.
        
      </para>

      <para>

        Décompressez les sources dans le répertoire de votre choix,
        comme par exemple <filename
        class="directory">/usr/src</filename> en utilisant la
        commande&nbsp;:
        
      </para>

<programlisting>
tar -zxvf kcdutils-<replaceable>xxx</replaceable>.src.rpm
</programlisting>

      <para>

        Cela créera un répertoire appelé
        <filename>kcdutils-<replaceable>xxx</replaceable></filename>
        contenant les sources des outils
        <application>LKCD</application>.
              
      </para>
    
    </section>

    <section>
    
      <title>
        
        Compiler et installer les outils <application>LKCD</application>
        
      </title>
      
      <para>
  
        <application>LKCD</application> utilise les fichiers
        <application>make</application> et le compilateur
        <application>gcc</application> standards. Pour compiler
        l'ensemble <application>LKCD</application>, rendez-vous au
        répertoire des sources de <application>LKCD</application> et
        lancez <userinput>./configure</userinput> pour fabriquer les
        fichiers de configuration. L'étape suivante est de lancer
        <userinput>make</userinput> pour compiler les outils et
        finalement <userinput>make install</userinput> pour installer
        les outils et les pages de manuels.
        
      </para>
    
    </section>

    <section>
    
      <title>
      
        Qu'est-ce qui est installé
        
      </title>
      
<screen>
/etc/sysconfig/dump            # Configuration de dump (recopie mémoire)
/sbin/lcrash                   # L'outil « crash » (analyse 
                               #  médico-légale)
/sbin/lkcd                     # Script de paramétrage du système
/sbin/lkcd_config              # Outil de configuration de « dump »
/sbin/lkcd_ksyms               # Outil de reconstruction des symboles du
                               #  noyau
/usr/include/sial_api.h        # Fichier d'en-têtes C des fonctions 
                               #  utilisateurs SIAL
/usr/lib/libsial.a             # Bibliothèque SIAL (Langage Simple 
                               #  d'Accès aux Images)
/usr/man/man1/lcrash.1         # Page de manuel de « lcrash »
/usr/man/man1/lkcd_config.1    # Page de manuel de « lkcd_config »
/usr/man/man1/lkcd_ksyms.1     # Page de manuel de « lkcd_ksyms »
/usr/share/sial/lcrash/ps.sial # Commande ps réalisée avec SIAL
</screen>

    </section>

    <section>
    
      <title>
        
        Installer les outils <application>LKCD</application> à partir du
        paquet RPM
     
       </title>
       
      <para>
      
        Vous pouvez installer les utilitaires pré-compilés à partir du
        paquet rpm en utilisant la commande&nbsp;:
        
      </para>
        
<programlisting>
rpm -i kcdutils-<replaceable>xxx</replaceable>.rpm
</programlisting>

      <para>
      
        Vous aurez toujours à appliquer le correctif au noyau et à
        installer les scripts de démarrage. Cependant vous n'aurez pas à
        effectuer l'étape de compilation des outils.
      
      </para>
      
    </section>

    <section>
    
      <title>
      
        Appliquer le correctif au noyau
        
      </title>
      
      <para>
      
        L'étape suivante consiste à appliquer le correctif et à
        recompiler le noyau. Vous devrez appliquer au code source du
        noyau le correctif
        <filename>lkcd-<replaceable>xxx</replaceable>.diff</filename>
        que vous aurez téléchargé depuis <ulink
        url="http://lkcd.sourceforge.net/"/>. Copiez le correctif dans
        le répertoire des sources noyau et lancez la commande&nbsp;:

      </para>

<programlisting>
patch -p0 &lt; lkcd-<replaceable>noyauxxx</replaceable>.diff
</programlisting>
        
      <para>
        
        Assurez-vous que le correctif que vous utilisez est bien pour
        votre version du noyau. Vous devrez ensuite configurer le noyau
        pour activer l'option «&nbsp;Kernel crash dumps&nbsp;». Cette
        option est désactivée par défaut. Si vous utilisez
        <userinput>make menuconfig</userinput> ou <userinput>make
        xconfig</userinput>, vous trouverez cette option dans la section
        «&nbsp;Kernel hacking&nbsp;». N'oubliez pas d'activer les
        fonctions du noyau dont votre système a besoin. Consultez le
        <ulink url="&howto;Kernel-HOWTO.html">guide pratique du noyau
        Linux</ulink> pour plus d'informations.
        
      </para>
      
    </section>

    <section>
      <title>
        
        Compiler et installer le noyau
      
      </title>
      
      <para>
      
        Il vous faut maintenant compiler et installer le noyau incluant
        le support <application>LKCD</application>. Dans le répertoire
        des sources du noyau, lancez dans l'ordre les commandes 
        suivantes&nbsp;:
      
      </para>

<screen>
make depend
make install
make modules
make modules_install
</screen>

      <para>

        Cela compilera et installera le nouveau noyau. Vous devrez aussi
        copier le fichier <filename>Kerntypes</filename> inclus dans les
        sources du noyau dans le répertoire <filename
        class="directory">/boot</filename>. Il sera peut-être également
        nécessaire d'éditer le fichier <filename>lilo.conf</filename>
        pour qu'il pointe vers votre nouveau noyau. Consultez le <ulink
        url="&howto;Kernel-HOWTO.html">guide pratique du noyau
        Linux</ulink> pour plus d'informations sur la compilation et
        l'installation d'un nouveau noyau.
    
      </para>
    
    </section>

  </section>

  <section id="configuration">
    
    <title>
    
      Installer, essayer et lancer crash
      
    </title>

    <section>
    
      <title>
        
        Installer crash dump
      
      </title>
      
      <para>
      
        Afin de pouvoir récupérer l'image mémoire qui a été écrite sur
        la partition d'échange, il est nécessaire de sauvegarder cette
        image mémoire avant que la partition d'échange n'aie été montée
        par le système. À cette fin, le fichier de démarrage
        <application>sysinit</application> doit être modifié. Le paquet
        des sources de <application>LKCD</application> inclut un
        répertoire <filename>scripts</filename> qui contient des
        correctifs pour plusieurs des scripts de démarrage
        <application>sysinit</application>. Ces correctifs ajoutent les
        commandes <literal>lkcd config</literal> et <literal>lkcd
        save</literal> pour activer la recopie mémoire en cas de panne
        et pour sauvegarder au démarrage une éventuelle copie mémoire
        préexistante.
        
      </para>
      
    </section>

    <section>
      
      <title>
        
        Essayer crash
      
      </title>
      
      <para>

        Pour forcer une panique afin d'essayer votre nouvelle
        installation de <application>crash</application>, compilez le
        code ci-dessous avec la commande&nbsp;: «&nbsp;<userinput>cc -c
        -O2 -isystem /lib/modules/`uname -r`/build/include -Wall
        panic.c</userinput>&nbsp;». Après avoir compilé le module
        <filename>panic.o</filename>, il vous suffira d'utiliser la
        commande <command>insmod panic.o</command> pour déclencher une
        panique du noyau.
      
      </para>

<programlisting>
### panic.c ###########################
#define __KERNEL__
#define MODULE

#include &lt;linux/module.h&gt;

int init_module (void)
{
    panic(" panic a ete appele");
    return 0;
}
        
</programlisting>

    </section>

    <section>
    
     <title>
     
       Lancez <application>crash</application>
     
     </title>
      
    <para>
      
      Afin d'examiner votre sauvegarde de la mémoire du noyau, vous
      devrez lancer <command>lcrash</command> avec quelques
      paramètres&nbsp;:
      
    </para>

<screen>
lcrash [ fichier System.map ] [ copie de la mémoire ] [ Kerntypes ]
</screen>

    <para>
    
      Par exemple&nbsp;:
    
    </para>

<screen>
lcrash /boot/System.map ./dump.1 /boot/Kerntypes
</screen>

      <para>
      
        Le chargement de l'image mémoire prendra une minute avant que
        vous ne vous retrouviez dans l'interpréteur de commandes de
        <application>crash</application>. Vous pouvez taper un
        <userinput>?</userinput> pour obtenir la liste des commandes
        disponibles.
      
      </para>
    
    </section>
  
  </section>

</article>