Le HOWTO du noyau Linux (Kernel HOWTO)
 par Brian Ward, [email protected]
 Version 1.0, 5 juin 1999

 (5 juillet 1999. Adaptation fran�aise par Eric Dumas [email protected]
 jusqu'� la version 0.80, Christophe Deleuze [email protected]
 � partir de la version 1.0).  Il s'agit d'un guide d�taill� sur la
 configuration du noyau, sa compilation et ses mises � jour pour les
 plates-formes x86.
 ______________________________________________________________________

 Table des mati�res






















































 1. Introduction

    1.1 Lisez ceci en premier (enfin bon, c'est un conseil) !
    1.2 Un mot sur le style

 2. Quelques questions... avec leurs r�ponses

    2.1 Mais quel est le r�le du noyau ?
    2.2 Pourquoi voudrais-je mettre � jour mon noyau ?
    2.3 Quel genre de mat�riel supportent les nouveaux noyaux ?
    2.4 Quelle version de gcc ou de libc utiliser ?
    2.5 Que sont les modules chargeables (loadable modules) ?
    2.6 De combien d'espace disque ai-je besoin ?
    2.7 Combien de temps �a prend ?

 3. Comment configurer le noyau ?

    3.1 R�cup�rer les sources
    3.2 Installer les sources
    3.3 Configurer le noyau
       3.3.1 Kernel math emulation (Precessor type and features)
       3.3.2 Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices)
       3.3.3 Networking support (General Setup)
       3.3.4 System V IPC (General Setup)
       3.3.5 Processor family (Processor type and features)
       3.3.6 SCSI support
       3.3.7 Network device support
       3.3.8 Filesystems
          3.3.8.1 Mais je ne sais pas de quels syst�mes de fichiers j'ai besoin !
       3.3.9 Character devices
       3.3.10 Sound
       3.3.11 Autres options de configuration
       3.3.12 Kernel hacking
    3.4 Gar�on, la suite ! (Le Makefile)

 4. Compiler le noyau

    4.1 Nettoyer et chercher les d�pendances
    4.2 La compilation
    4.3 Les autres options du
    4.4 Installer le noyau

 5. Mettre � jour le noyau

    5.1 Appliquer un patch
    5.2 Si quelque chose ne fonctionne pas
    5.3 Comment se d�barasser des fichiers .orig ?
    5.4 Autres patches

 6. Paquetages suppl�mentaires

    6.1 kbd
    6.2 util-linux
    6.3 hdparm
    6.4 gpm

 7. Quelques pi�ges

    7.1 make clean
    7.2 Noyaux �normes ou lents
    7.3 Le port parall�le ne fonctionne pas/mon imprimante ne fonctionne pas
    7.4 Le noyau ne compile pas
    7.5 La nouvelle version du noyau ne boote plus !
    7.6 Vous avez oubli� de lancer LILO, ou le syst�me ne boote plus du tout
    7.7 Il me dit
    7.8 Je n'arrive pas � faire marcher mon CD-ROM IDE/ATAPI
    7.9 Le noyau me dit des insanit�s � propos de requ�tes obsol�tes !
    7.10 Le Firewall ne fonctionne pas dans la version 1.2.0
    7.11 Ce n'est pas une image noyau compress�e !
    7.12 Probl�mes avec la console apr�s mise � jour � la version 1.3.x
    7.13 Le noyau ne semble pas pouvoir compiler apr�s une mise � jour
    7.14 Augmenter les limites

 8. Note concernant la mise � jour pour les noyaux 2.0.x, 2.2.x

 9. Modules

    9.1 Installer les utilitaires pour g�rer les modules
    9.2 Modules distribu�s avec le noyau

 10. Trucs et astuces

    10.1 Rediriger la sortie standard des commandes make ou patch
    10.2 Installations diverses du noyau
    10.3 Mises � jour des noyaux

 11. D'autres HOWTO qui peuvent �tre utiles

 12. Divers

    12.1 Auteur
    12.2 Reste � faire
    12.3 Contributions
    12.4 Copyright, traduction, licence et autres


 ______________________________________________________________________

 11..  IInnttrroodduuccttiioonn


 Faut-il que vous lisiez ce document ? Oui, si vous avez les sympt�mes
 suivants :


 �  "Arg ! Cette archive TrucBidule-46.5.6 n�cessite la version du
    noyau 2.8.193 et je n'ai que la version 1.0.9 ! "

 �  Il y a un pilote de p�riph�rique dont vous avez besoin dans l'un
    des nouveaux noyaux.

 �  Vous n'avez aucune id�e de la mani�re dont il faut s'y prendre pour
    recompiler le noyau.

 �  "Est-ce que ce truc dans le fichier _R_E_A_D_M_E d�crit toute la marche �
    suivre ?"

 �  Vous avez essay�, �a ne marche pas !

 �  Vous devez donner un conseil � une personne qui a certains
    probl�mes.


 11..11..  LLiisseezz cceeccii eenn pprreemmiieerr ((eennffiinn bboonn,, cc''eesstt uunn ccoonnsseeiill)) !!


 Certains exemples pr�sent�s dans ce document pr�supposent que vous
 poss�dez les programmes GNU tar, find et xargs.  Ils sont assez
 standards, et ne devraient pas vous poser trop de probl�mes.  On
 suppose �galement que vous connaissez la structure de votre disque
 (partitions). Si vous ne le savez pas, il est imp�ratif que vous
 gardiez une copie sur papier du r�sultat de l'ex�cution de la commande
 mount (ou bien une copie du fichier /etc/fstab, si vous savez le
 lire).  Cette information est importante, et ne change pas � moins que
 vous ne repartitionniez votre disque, en ajoutiez un nouveau,
 r�installiez votre syst�me, ou quelque chose de similaire.

 La derni�re version stable du noyau au moment o� j'�cris ces mots est
 la 2.2.9, ce qui signifie que les r�f�rences et les exemples donn�s
 correspondent � cette version. M�me si j'ai essay� de faire en sorte
 que ce document soit aussi ind�pendant que possible des versions, le
 noyau est en perp�tuel d�veloppement, donc si vous r�cup�rez une
 nouvelle version, il risque d'y avoir quelques diff�rences. Cela ne
 devrait pas poser trop de probl�mes mais risque de semer un peu la
 confusion.

 Il existe deux versions des sources du noyau : une version dite
 "stable" et une version de d�veloppement. Les version stables ont des
 num�ros de version pairs : 1.2.x, 2.0.x sont des versions stables...
 tout comme la 2.2.x. Ces noyaux sont consid�r�s comme �tant les plus
 stables et sans erreurs. Les noyaux de d�veloppement (1.3.x, 2.1.x,
 etc) sont des noyaux de test, pour les d�veloppeurs, les testeurs...
 mais ces noyaux peuvent �tre tr�s bogu�s. Vous �tes pr�venus.


 11..22..  UUnn mmoott ssuurr llee ssttyyllee


 Un texte qui ressemble � celui-ci est soit un message qui appara�t sur
 votre �cran, soit un fichier, soit quelque chose qui peut �tre
 directement saisi, comme une commande ou des options pour une commande
 (si vous poss�dez une version texte de ce document, il n'y a pas de
 diff�rence).



 22..  QQuueellqquueess qquueessttiioonnss...... aavveecc lleeuurrss rr��ppoonnsseess



 22..11..  MMaaiiss qquueell eesstt llee rr��llee dduu nnooyyaauu ??


 Le noyau Unix joue le r�le d'interm�diaire entre vos programmes et
 votre mat�riel.  Premi�rement, il g�re la m�moire pour tous les
 programmes en cours d'ex�cution (processus), et s'assure qu'ils
 occupent tous une part �quitable (ou non) du temps processeur.  En
 plus, il fournit une interface (simple � utiliser) aux programmes pour
 communiquer avec votre mat�riel (appels syst�me).

 Bien s�r c'est un petit peu plus compliqu� que �a, mais ces fonctions
 de bases sont les plus importantes � conna�tre.


 22..22..  PPoouurrqquuooii vvoouuddrraaiiss--jjee mmeettttrree �� jjoouurr mmoonn nnooyyaauu ??


 Les nouveaux noyaux offrent plus de facilit� pour communiquer avec
 plus de mat�riels (c'est-�-dire qu'ils g�rent plus de
 p�riph�riques...), ils peuvent avoir une meilleure gestion des
 processus, tourner plus rapidement que les anciennes versions, �tre
 plus stables et ils corrigent les erreurs stupides des versions
 pr�c�dentes.  Beaucoup de gens mettent � jour leurs noyaux car ils
 veulent avoir les nouveaux pilotes de p�riph�riques et les corrections
 d'erreurs.



 22..33..  QQuueell ggeennrree ddee mmaatt��rriieell ssuuppppoorrtteenntt lleess nnoouuvveeaauuxx nnooyyaauuxx ??


 Jetez un coup d'oeil sur le Hardware-HOWTO. Vous pouvez aussi regarder
 le fichier "config.in" dans les sources de LLiinnuuxx, ou juste essayer
 "make config", ce qui vous permet de voir tous les mat�riels support�s
 par le noyau standard, mais pas tout ce que LLiinnuuxx supporte. En effet,
 beaucoup de p�riph�riques assez utiles (tels les p�riph�riques PCMCIA,
 et quelques lecteurs de cartouches) sont des modules chargeables
 maintenus et distribu�s s�par�ment.


 22..44..  QQuueellllee vveerrssiioonn ddee ggcccc oouu ddee lliibbcc uuttiilliisseerr ??


 Linus recommande une version de gcc dans le fichier README fourni avec
 le code source.  Si vous ne poss�dez pas cette version, la
 documentation dans la version recommand�e de gcc devrait vous indiquer
 si vous avez besoin de mettre � jour votre libc.  Ce n'est pas une
 op�ration compliqu�e, mais il est important de suivre les
 instructions.


 22..55..  QQuuee ssoonntt lleess mmoodduulleess cchhaarrggeeaabblleess ((llooaaddaabbllee mmoodduulleess)) ??


 Ce sont des parties du noyau (pilotes de p�riph�riques g�n�ralement)
 qui ne sont pas compil�es dans celui-ci. On peut les compiler
 s�par�ment, les ins�rer et les retirer du noyau � n'importe quel
 moment. En raison de cette souplesse, c'est devenu la m�thode pr�f�r�e
 pour coder certaines fonctionnalit�s du noyau.  Bon nombre de pilotes
 de p�riph�riques tels que PCMCIA et les gestionnaires de cartouches
 QIC-80/40 sont des modules chargeables.


 22..66..  DDee ccoommbbiieenn dd''eessppaaccee ddiissqquuee aaii--jjee bbeessooiinn ??


 Cela d�pend de la configuration de votre syst�me. Tout d'abord, le
 code source compress� de LLiinnuuxx fait presque 16 Mo pour la version
 2.2.9.  Vous voulez g�n�ralement le garder dans un coin apr�s l'avoir
 d�compress�. D�compress� et compil� avec une configuration moyenne, il
 occupe 67 Mo de plus.


 22..77..  CCoommbbiieenn ddee tteemmppss ��aa pprreenndd ??


 Sur les machines r�centes la compilation demande beaucoup beaucoup
 moins de temps que sur les anciennes. Un AMD K6-2/300 avec un disque
 rapide peut compiler un noyau 2.2.x en � peu pr�s quatre minutes. Avec
 de vieux Pentium, 486 ou 386 soyez pr�ts � patienter, �ventuellement
 des heures, jours...

 Si cela vous pose probl�me et que vous avez acc�s � une machine
 rapide, vous pouvez compiler sur celle-ci (fournissez les bons
 param�tres, assurez-vous que vos utilitaires sont � jour, etc.) et
 transf�rer l'image du noyau sur la machine lente.



 33..  CCoommmmeenntt ccoonnffiigguurreerr llee nnooyyaauu ??




 33..11..  RR��ccuupp��rreerr lleess ssoouurrcceess


 Vous pouvez r�cup�rer les sources via ftp depuis ftp.kernel.org dans
 le r�pertoire /pub/linux/kernel/vx.y, o� x.y est la version (par ex.
 2.2). Comme expliqu� plus haut les versions se terminant par un
 chiffre impair sont les versions de d�veloppement et peuvent �tre
 instables. Le fichier est typiquement linux-x.y.z.tar.gz, o� x.y.z est
 le num�ro de version. Une version avec suffixe en .bz2 (compress� avec
 bzip2) est aussi g�n�ralement disponible (la compression bzip2 est
 plus performante donc le transfert sera plus rapide).

 Il vaut mieux utiliser ftp.xx.kernel.org o� xx est votre code de pays,
 par exemple ftp.fr.kernel.org pour la France, ftp.be.kernel.org pour
 la Belgique.


 33..22..  IInnssttaalllleerr lleess ssoouurrcceess


 Faites un su (super utilisateur) ou bien loggez-vous en tant que
 "root", et allez dans le r�pertoire /usr/src.  Si vous avez d�j�
 install� les sources du noyau, il y aura d�j� un r�pertoire appel�
 "linux", contenant l'ensemble des sources du noyau.  Si vous avez de
 la place disque et que vous voulez jouer la carte s�curit�, il est
 pr�f�rable de conserver ce r�pertoire intact.  Un syst�me assez
 pratique consiste � renommer votre r�pertoire en fonction du num�ro de
 la version. La commande "uname -r" vous indiquera le num�ro de la
 version du noyau actuellement en fonction.

 Par exemple, si "uname -r" donne "1.0.9," vous pourrez d�placer votre
 r�pertoire (avec mv) "linux" en "linux-1.0.9".  Si vous �tes du genre
 t�m�raire, d�truisez le r�pertoire. Dans tous les cas, soyez s�r qu'il
 n'y ait aucun r�pertoire "linux" dans /usr/src avant de d�compresser
 et d'installer les sources.

 Dans /usr/src, installez les sources en faisant "tar zxpvf linux-
 x.y.z.tar.gz" (si vous avez uniquement un fichier .tar, sans de .gz �
 la fin,"tar xpvf linux.x.y.z.tar" marchera sans probl�me).  Vous
 verrez la liste des fichiers se d�rouler sous vos yeux.  Lorsque c'est
 termin�, il y aura un nouveau r�pertoire "linux".  Allez dans lliinnuuxx et
 jetez un coup d'oeil au fichier README.  Il y a une section
 "INSTALLING the kernel".  Suivez les instructions lorsque n�cessaire -
 prenez garde � ce que les liens soient en place et que les fichiers .o
 soient d�truits, etc.

 Si votre fichier est en .bz2, il vous faudra utiliser le programme
 bzip2 (voir  <http://www.muraroa.demon.co.uk/>). Faites:


      bz2cat linux-x.y.z.tar.bz2 | tar xvf -




 33..33..  CCoonnffiigguurreerr llee nnooyyaauu


 Note : il s'agit d'une r�p�tition, clarification de la section
 correspondante dans le fichier README de Linus.

 La commande "make config" lance un script qui va vous poser un certain
 nombre de questions. Il a besoin de bash, donc v�rifiez que vous
 poss�dez bien /bin/bash, /bin/sh, ou $BASH.


 Il existe un certain nombre de possibilit�s autres que make config et
 il est possible que vous les trouviez plus simples � utiliser. Pour
 ceux qui utilisent X, vous pouvez essayer make xconfig si vous avez au
 pr�alable install� Tk (_c_l_i_c_k_-_o_-_r_a_m_a - Nat).  make menuconfig est
 destin� � ceux qui ont install� (n)curses et qui pr�f�rent utiliser un
 menu en mode texte.  Ces interfaces ont un avantage : si vous vous
 trompez lors de la configuration, vous pouvez facilement corriger
 l'erreur sans devoir tout relancer.

 Avec make menuconfig et make xconfig les options de configuration
 appara�tront hi�rarchis�es.

 Vous �tes alors pr�t � r�pondre aux questions, la plupart du temps par
 "y" ou par "n". Les pilotes de p�riph�riques acceptent aussi
 g�n�ralement "m", pour "module". Le pilote sera compil� non pas
 directement dans le noyau mais en tant que module chargeable. Une
 interpr�tation plus amusante est que le "m" est pour "maybe"
 (peut-�tre). Certaines options non critiques ou �videntes ne seront
 pas d�crites ici. Consultez le paragraphe "Autres options de
 configuration" pour une courte descriptions de quelques options non
 d�taill�es ici. Avec make menuconfig vous pouvez utiliser la barre
 d'espace.

 � partir des versions 2.0.x, une option "?" est pr�sente : elle permet
 d'obtenir une aide pour l'option d�sir�e qui correspond s�rement aux
 informations les plus � jour. Voici une liste d�crivant bri�vement les
 options les plus importantes avec leur place dans la hi�rarchie (NdT :
 et la traduction de l'intitul�).


 33..33..11..  KKeerrnneell mmaatthh eemmuullaattiioonn ((PPrreecceessssoorr ttyyppee aanndd ffeeaattuurreess))


 _(_�_m_u_l_a_t_i_o_n _d_u _c_o_p_r_o_c_e_s_s_e_u_r _A_r_i_t_h_m_�_t_i_q_u_e_) Si vous ne poss�dez pas de
 coprocesseur arithm�tique (autrement dit, vous ne disposez que d'un
 386 ou d'un 486SX), r�pondez "y".  Si vous en avez un et que vous
 r�pondez "y", ce n'est pas grave : le coprocesseur sera utilis� et
 l'�mulation ignor�e. Pour toute machine pas trop vieille, la r�ponse
 sera non.


 33..33..22..  EEnnhhaanncceedd ((MMFFMM//RRLLLL)) ddiisskk aanndd IIDDEE ddiisskk//ccddrroomm ssuuppppoorrtt ((BBlloocckk
 DDeevviicceess))


 _(_G_e_s_t_i_o_n _a_m_�_l_i_o_r_�_e _d_e_s _d_i_s_q_u_e_s _d_u_r_s_) Vous devez � peu pr�s toujours
 r�pondre oui � cette question. Cela signifie que le  noyau pourra
 g�rer les disques standards des PC comme IDE, que bon nombre de gens
 poss�dent. Ceci n'inclut pas les disques SCSI : ils sont
 s�lectionnables plus tard dans la configuration.

 Une question porte sur les gestionnaires de p�riph�riques "old disk-
 only" et "new IDE". Vous devez choisir l'un des deux.  La principale
 diff�rence est que le vieux gestionnaire de p�riph�rique ne supporte
 qu'au plus deux disques sur une seule interface. Le nouveau
 gestionnaire g�re une deuxi�me interface IDE et les disques CD-ROM
 IDE/ATAPI , et il est plus gros de 4 ko que l'ancien. Il est suppos�
 "am�lior�" ce qui signifie qu'� part avoir un nombre diff�rent de
 bogues il peut am�liorer les performances de votre disque, notamment
 si vous poss�dez du mat�riel r�cent (comme de l'EIDE).


 33..33..33..  NNeettwwoorrkkiinngg ssuuppppoorrtt ((GGeenneerraall SSeettuupp))



 _(_G_e_s_t_i_o_n _d_u _R_�_s_e_a_u_) En principe, vous ne devriez r�pondre "y" que si
 votre machine se trouve sur un r�seau tel qu'Internet ou si vous
 voulez utiliser SLIP, PPP, term, etc. pour communiquer avec un acc�s
 Internet externe.  Toutefois, bon nombre de paquetages (tels que le
 syst�me X Window) ont besoin de ce support r�seau m�me si votre
 machine n'y est pas reli�e ; dans ce cas, r�pondez "y".  Plus tard, on
 vous demandera si vous voulez avoir le support TCP/IP. De m�me,
 r�pondez "y", � moins que vous ne soyez s�r de ce que vous faites.


 33..33..44..  SSyysstteemm VV IIPPCC ((GGeenneerraall SSeettuupp))



 L'une des meilleures d�finition des IPC (communication inter-
 processus) se trouve dans le glossaire du livre de Perl. Ces
 m�canismes sont utilis�s par certains d�veloppeurs Perl et quelques
 autres paquetages (comme par exemple DOOM), donc ce n'est pas vraiment
 une bonne id�e de r�pondre "n" � cette question � moins que vous ne
 sachiez exactement ce que vous faites.


 33..33..55..  PPrroocceessssoorr ffaammiillyy ((PPrroocceessssoorr ttyyppee aanndd ffeeaattuurreess))


 _(_F_a_m_i_l_l_e _d_e _p_r_o_c_e_s_s_e_u_r_) Dans les anciens noyaux, il s'agissait de
 l'option Use -m486 flag for 486-specific optimizations.

 Cette option s�lectionnait certaines optimisations pour un type de
 processeur, le noyau fonctionnant normalement avec les autres
 processeurs. Le noyau g�n�r� avait toutefois une taille l�g�rement
 sup�rieure. Dans les nouveaux noyaux, cette diff�rence de taille n'est
 plus d'actualit� donc vous pouvez indiquer le processeur que vous
 allez utiliser avec le nouveau noyau. Un noyau "386" fonctionnera avec
 toutes les machines.


 33..33..66..  SSCCSSII ssuuppppoorrtt


  _(_G_e_s_t_i_o_n _S_C_S_I_) Si vous avez au moins un p�riph�rique SCSI, r�pondez
 "y".  On vous demandera alors de plus amples renseignements sur la
 gestion des CD-ROM, des disques, et quel type de contr�leur SCSI vous
 poss�dez. Consultez le SCSI-HOWTO pour plus de d�tails.


 33..33..77..  NNeettwwoorrkk ddeevviiccee ssuuppppoorrtt


 _(_G_e_s_t_i_o_n _d_e _p_�_r_i_p_h_�_r_i_q_u_e_s _r_�_s_e_a_u_) Si vous avez une carte r�seau, ou si
 vous voulez utiliser SLIP, PPP, ou un adaptateur sur port parall�le,
 r�pondez "y".  Le script de configuration vous demandera alors quel
 type de carte vous poss�dez et quels protocoles vous voulez inclure.


 33..33..88..  FFiilleessyysstteemmss


 _(_S_y_s_t_�_m_e_s _d_e _f_i_c_h_i_e_r_s_) On vous demandera quels types de syst�mes de
 fichiers vous souhaitez g�rer :

 Standard (minix) - Les distributions r�centes ne cr�ent pas de
 syst�mes de fichiers de type minix, et bon nombre de personnes ne s'en
 servent pas, mais cela peut �tre malgr� tout une bonne id�e de le
 configurer. Quelques programmes de "sauvetage de disques" l'utilisent,
 et encore aujourd'hui, un bon nombre de disquettes risquent d'avoir ce
 syst�me de fichiers, car il est assez pratique pour les disquettes.

 Second extended - C'est le syst�me de fichiers standard de Linux. Vous
 en aurez tr�s certainement besoin, donc "y".  (NdT : et puis c'est un
 Fran�ais qui l'a fait alors... !)

 msdos - Si vous voulez utiliser les partitions de votre disque MS-DOS,
 ou monter des disquettes au format MS-DOS, r�pondez "y".

 Des syst�mes de fichiers originaires d'autres syst�mes d'exploitation
 sont �galement disponibles.

 /proc - Un des syst�mes de fichiers les plus puissants (id�e
 effront�ment chip�e aux Laboratoires Bell, je pense). �a n'a rien �
 voir avec vos partitions disques, mais c'est une interface sous forme
 de syst�me de fichiers avec le noyau et les processus. Un grand nombre
 d'outils de visualisation de processus (comme "ps") l'utilisent. Si
 vous l'avez install�, essayez "cat /proc/meminfo" ou "cat
 /proc/devices".  Quelques shells (comme rc) utilisent /proc/self/fd
 (connu comme /dev/fd sur d'autres syst�mes) pour les entr�es/sorties.
 Vous devriez r�pondre "y" � ceci : de nombreux programmes Linux
 standards en ont besoin.

 NFS - Si vous �tes en r�seau et que vous voulez utiliser des volumes
 pr�sents sur d'autres machines, r�pondez "y".

 ISO9660 - Format rencontr� sur la plupart des CD-ROM. Si vous poss�dez
 un CD-ROM et que vous comptez vous en servir sous Linux, r�pondez "y".


 33..33..88..11..  MMaaiiss jjee nnee ssaaiiss ppaass ddee qquueellss ssyysstt��mmeess ddee ffiicchhiieerrss jj''aaii
 bbeessooiinn !!


 Bon, tapez "mount", cela va vous afficher un truc comme �a :



              blah# mount
              /dev/hda1 on / type ext2 (defaults)
              /dev/hda3 on /usr type ext2 (defaults)
              none on /proc type proc (defaults)
              /dev/fd0 on /mnt type msdos (defaults)




 Observez chacune des lignes. Le mot � c�t� de "type" est le type du
 syst�me de fichiers. Dans cet exemple, mes partitions / et /usr sont
 du type ext2fs, j'utilise /proc, et il y a une disquette mont�e avec
 le syst�me de fichiers MS-DOS (beuurrrk !).

 Essayez "cat /proc/filesystems" si vous avez /proc. Cela vous donnera
 la liste des syst�mes de fichiers que votre noyau g�re.

 Le support de syst�mes de fichiers rarement utilis�s et qui ne sont
 pas absolument n�cessaires peut augmenter la taille du noyau. Voir la
 section sur les modules chargeables pour r�soudre ce probl�me, ainsi
 que la section sur les pi�ges.


 33..33..99..  CChhaarraacctteerr ddeevviicceess


 _(_P_�_r_i_p_h_�_r_i_q_u_e_s _c_a_r_a_c_t_�_r_e_) Vous trouverez ici les pilotes pour g�rer
 votre imprimante parall�le, souris bus, souris PS/2 (beaucoup de
 portables utilisent une souris constructeur de type PS/2), quelques
 lecteurs de bande et d'autres p�riph�riques de type "caract�re".
 R�pondez en cons�quence.

 Note : "gpm" est un programme qui vous permet d'utiliser la souris �
 l'ext�rieur de X Window pour effectuer des op�rations de copier-coller
 entre les consoles virtuelles. C'est assez utile si vous avez une
 souris s�rie, car cela coexiste bien avec X Window, mais vous devrez
 faire quelques trucs pour que cela fonctionne avec les autres.


 33..33..1100..  SSoouunndd


 _(_S_o_n_) Si vous tenez � entendre biff aboyer, r�pondez "y", puis donnez
 au programme de configuration tout ce qu'il veut savoir sur votre
 carte son. � propos : lorsqu'il vous demande si vous voulez installer
 la version enti�re du pilote, vous pouvez r�pondre `n' et donc
 �conomiser de la m�moire en ins�rant uniquement les caract�ristiques
 dont vous avez besoin.

 Si vous vous int�ressez de pr�s au support des cartes son, jetez un
 oeil sur les pilotes libres �  <http://www.linux.org.uk/OSS/> et au
 Open Sound System (commercial) �  <http://www.opensound.com/>.


 33..33..1111..  AAuuttrreess ooppttiioonnss ddee ccoonnffiigguurraattiioonn


 Toutes les options de configuration ne sont pas d�taill�es dans ce
 document car elles changent trop souvent ou bien sont vraiment
 �videntes (par exemple, le support de la carte 3Com 3C509 permet la
 compilation du pilote de cette carte). L'aide en ligne fournit une
 liste assez compl�te de ces options (plus une mani�re de les ins�rer
 dans le script Configure) mise � jour par Axel Boldt
 ([email protected]). La liste est dans le fichier
 Documentation/Configure.help des sources du noyau depuis la version
 2.0.


 33..33..1122..  KKeerrnneell hhaacckkiinngg


 Extrait du README de Linus :

 La configuration "kernel hacking" provoque g�n�ralement un noyau plus
 gros ou plus lent (ou les deux), et peut m�me rendre le noyau moins
 stable en configurant quelques routines pour essayer de chercher les
 d�fauts du code, pour trouver les probl�mes du noyau (kmalloc()).
 Donc, vous devrez r�pondre "n" � cette question si vous cr�ez un noyau
 pour un syst�me s�r.


 33..44..  GGaarr��oonn,, llaa ssuuiittee !! ((LLee MMaakkeeffiillee))


 Quand la configuration est termin�e, un message vous indique que le
 noyau est configur�, et qu'il faut "regarder le Makefile g�n�ral pour
 des configurations suppl�mentaires", etc.

 Donc, jetez un coup d'oeil au Makefile. Vous ne changerez probablement
 rien, mais �a ne peut pas vous faire de mal ! Vous pourrez �galement
 changer les options avec la commande "rdev" quand le noyau sera pr�t.
 Si vous ne comprenez rien � ce fichier, passez � la suite.


 44..  CCoommppiilleerr llee nnooyyaauu



 44..11..  NNeettttooyyeerr eett cchheerrcchheerr lleess dd��ppeennddaanncceess


 Lorsque le script de configuration va se terminer, il vous demandera
 de faire un "make dep" et (peut-�tre) "make clean". "make dep" assure
 que toutes les d�pendances, comme les fichiers d'en-t�tes (include)
 sont en place, et ne prend pas trop de temps � moins que vous n'ayez
 une machine tr�s lente. Pour les anciennes versions, lorsque c'est
 termin� faites un "make clean".  Cela d�truit tous les fichiers objets
 et d'autres fichiers que les anciennes versions laissent trainer.
 _N_'_o_u_b_l_i_e_z _p_a_s cette �tape avant de recompiler un noyau.


 44..22..  LLaa ccoommppiillaattiioonn


 Apr�s avoir cherch� les d�pendances et nettoy� l'arborescence, vous
 pouvez lancer la compilation par "make bzImage" ou "make bzdisk"
 (c'est cette partie qui prend du temps).  "make bzImage" va compiler
 le noyau, et cr�er le fichier "bzImage" dans le r�pertoire
 arch/i386/boot qui correspond au nouveau noyau compress�.  "make
 bzdisk" fait la m�me chose, mais copie le noyau sur une disquette que
 vous aurez ins�r�e dans le lecteur "A:".

 "bzdisk" est assez commode pour tester de nouveaux noyaux ; s'il ne
 fonctionne pas, enlevez juste la disquette et relancez la machine avec
 votre ancien noyau. C'est �galement une m�thode pratique si vous avez
 d�truit accidentellement votre noyau (ou quelque chose de ce genre).
 Vous pouvez �galement vous en servir pour installer de nouveaux
 syst�mes, en copiant directement le contenu d'un disque sur un autre
 ("tout �a ? ouah !").

 Tous les noyaux assez r�cents sont compress�s, comme l'indique le "bz"
 au d�but des noms. Un noyau compress� est automatiquement d�compact�
 lors de l'ex�cution.

 Pour les noyaux plus anciens, bzImage n'existait pas et on utilisait
 zImage. Cette possibilit� est toujours disponible mais vue la taille
 des noyaux r�cents il est � peu pr�s obligatoire d'utiliser bzImage
 car l'ancienne m�thode ne peut g�rer que des noyaux de taille limit�e.


 44..33..  LLeess aauuttrreess ooppttiioonnss dduu""mmaakkee""


 "make mrproper" est un "make clean" plus puissant. Cela est parfois
 n�cessaire, vous devriez le faire � chaque patch. Il efface �galement
 votre fichier de configuration donc il faudra �ventuellement en faire
 une copie avant (.config).

 "make oldconfig" essaiera de configurer le noyau � partir d'un vieux
 fichier de configation, il choisira toutes les options de "make
 config" pour vous. Si c'est la premi�re fois que vous compilez un
 noyau ou si vous n'avez pas un ancien fichier de configuration
 n'utilisez pas ceci, vous devrez sans doute changer la configuration
 par d�faut.

 Regardez la section sur les modules � propos du "make modules".




 44..44..  IInnssttaalllleerr llee nnooyyaauu


 Une fois que vous avez un nouveau noyau qui semble fonctionner comme
 vous le voulez, il est grand temps de l'installer. La plupart des gens
 utilisent LILO (LInux LOader).  "make zlilo" installera votre noyau,
 lancera LILO, et laissera votre machine pr�te � rebooter, mais
 SEULEMENT si lilo est configur� de la mani�re suivante : le noyau
 s'appelle /vmlinuz, lilo se trouve dans /sbin, et votre fichier de
 configuration pour LILO (/etc/lilo.conf) correspond � ces donn�es.

 Sinon, vous devrez utiliser LILO directement.  C'est un produit assez
 facile � installer, mais dont le fichier de configuration peut �tre
 d�routant. Regardez le fichier de configuration (/etc/lilo/config pour
 les versions les plus anciennes, /etc/lilo.conf pour les r�centes), et
 regardez son contenu.  Le fichier de configuration doit ressembler �
 ceci :


     image = /vmlinux
         label = Linux
         root = /dev/hda1
         ...



 La ligne "image =" sert � indiquer le nom du noyau utilis�.  Beaucoup
 de gens utilisent /vmlinuz.  "label" servira � indiquer � LILO sur
 quel noyau ou sur quel syst�me d'exploitation vous allez booter (nom
 logique), et "root" est la partition racine de ce syst�me
 d'expoitation.  Faites une sauvegarde de votre vieux noyau (quel que
 soit son nom), et copiez le nouveau noyau (bzImage) � sa place : "cp
 bzImage /vmlinuz" si vous utilisez "/vmlinuz", puis relancez lilo. Sur
 les syst�mes r�cents, vous pouvez simplement lancer "lilo", mais sur
 de plus anciens, vous devez faire un /etc/lilo/install ou
 /etc/lilo/lilo -C /etc/lilo/config.

 Si vous d�sirez en savoir plus sur la configuration de LILO, ou si
 vous voulez avoir LILO, r�cup�rez la derni�re version sur votre site
 FTP favori et suivez les instructions.

 Pour booter sur l'un de vos anciens noyaux situ�s sur votre disque dur
 (une autre m�thode de secours quand le noyau plante), copiez les
 lignes suivantes "image = xxx" � la fin du fichier de configuration
 LILO, et changez "image = xxx" par "image = yyy", o� "yyy" est le
 chemin complet du noyau de secours. Puis changez "label = zzz" en
 "label = linux-sauvegarde" et relancez lilo.  Si elle n'y est pas,
 vous devrez rajouter une ligne dans le fichier de configuration
 indiquant "delay=x", o� x est le temps en dixi�me de secondes qui
 indique � LILO le temps qu'il doit attendre avant d'amorcer la
 machine.  Vous pouvez l'interrompre (avec la touche shift par
 exemple), et taper le label de l'image du noyau de sauvegarde (au cas
 o� un probl�me se produit).



 55..  MMeettttrree �� jjoouurr llee nnooyyaauu



 55..11..  AApppplliiqquueerr uunn ppaattcchh


 Les nouvelles versions du noyau sont distribu�es sous la forme de
 patches.  Par exemple, si vous poss�dez la version 1.1.45, et que vous
 remarquez qu'il existe un "patch46.gz", cela signifie que vous pouvez
 passer � la version 1.1.46 en appliquant ce patch. Vous devriez faire
 avant une sauvegarde de votre arborescence des sources du noyau ("make
 clean" puis "cd /usr/src; tar zcf old-tree.tar.gz linux" va produire
 une archive compress�e).

 Poursuivons avec cet exemple et supposons que vous ayez mis le fichier
 "patch46.gz" dans /usr/src. Allez dans /usr/src et faites un "zcat
 patch46.gz | patch -p0" (ou "patch -p0 < patch46" si le patch n'est
 pas compress�).  Vous verrez alors une liste de messages vous
 indiquant les essais de modifications. Cela marche ou pas (en principe
 oui !).  G�n�ralement, cela va trop vite pour lire, et on ne sait pas
 trop si �a a march�. Vous pouvez utiliser l'option -s de patch qui lui
 indique qu'il ne doit afficher que les erreurs (vous n'avez pas grand
 chose � faire des "h�h�, mon ordinateur est en train de faire quelque
 chose...!").  Pour v�rifier que tout s'est pass� sans encombre, allez
 dans /usr/src/linux et cherchez les fichiers ayant pour extension
 .rej. Quelques versions de patch (vieilles versions) utilisent # pour
 les fichiers rejet�s. Vous pouvez utiliser "find" pour les trouver :

         find .  -name '*.rej' -print


 vous en donnera la liste avec le chemin pour y acc�der.

 Si tout a march�, faites un "make clean", "config," et "dep" comme
 d�crit dans les sections 3 et 4.

 La commande patch poss�de quelques options.  Comme indiqu� ci-dessus,
 patch -s supprime tous les messages sauf les erreurs. Si vous stockez
 les sources de votre noyau dans un autre r�pertoire que
 /usr/src/linux, un patch -p1 dans ce r�pertoire fera les choses
 proprement. Les autres options sont bien document�es dans les pages de
 manuel.


 55..22..  SSii qquueellqquuee cchhoossee nnee ffoonnccttiioonnnnee ppaass


 (Note : cette section traite plut�t des noyaux assez anciens)

 Le probl�me le plus fr�quent qui se pr�sentait �tait lorsqu'un patch
 modifiait le fichier "config.in" et que vous aviez chang� les options
 pour mieux coller � votre machine.  En principe, �a ne devrait plus
 trop se produire, mais avec les anciennes versions... Pour r�soudre ce
 probl�me, jetez un coup d'oeil au fichier config.in.rej et regardez
 son contenu.  Le changement sera indiqu� par "+" et "-" au d�but d'une
 ligne. Regardez ces lignes et retenez si elles sont marqu�es "y" ou
 "n". Maintenant, �ditez config.in, et changez les "y" en "n" et les
 "n" en "y" lorsque cela est n�cessaire. Faites un

         patch -p0 < config.in.rej


 et si cela fonctionne ("no fails"), alors vous pouvez continuer avec
 la configuration et la compilation. Le fichier config.in.rej restera,
 mais vous pouvez le d�truire.

 Si vous avez d'autres probl�mes, vous avez peut-�tre install� un patch
 d�fectueux.  Si la commande patch indique "previously applied patch
 detected: Assume -R?", vous �tes probablement en train d'appliquer un
 patch d�j� appliqu�.  Si vous r�pondez "y", cela risque de d�truire
 votre source et il vous faudra r�cup�rer un source complet (vous
 auriez peut-�tre d� commencer par l�).

 Pour revenir en arri�re (d�patcher), faites un "patch -R" sur le patch
 original.
 La meilleure chose � faire lorsqu'un patch d�truit tout est de
 repartir d'un noyau initial tout neuf ! (par exemple, � partir du
 fichier linux-x.y.z.tar.gz).


 55..33..  CCoommmmeenntt ssee dd��bbaarraasssseerr ddeess ffiicchhiieerrss ..oorriigg ??



 Apr�s avoir appliqu� quelques patches, les fichiers .orig vont
 commencer � s'empiler. Par exemple, j'en �tais � la version 1.1.51 et
 la derni�re fois que j'avais fait le m�nage, c'�tait avec la version
 1.1.48 (je crois...). D�truire les fichiers .orig a permis de
 r�cup�rer plus d'un demi M�ga octets.

         find .  -name '*.orig' -exec rm -f {} ';'


 fera cela pour vous. Quelques versions de patch qui utilisent # pour
 les rejets utilisent un tilde � la place de .orig.

 Il y a d'autres mani�res (meilleures ?) pour se d�barrasser des
 fichiers .orig en utilisant le programme GNU xargs :

         find .  -name '*.orig' | xargs rm


 ou la m�thode s�re mais un peu plus verbeuse :

         find . -name '*.orig' -print0 | xargs --null rm --




 55..44..  AAuuttrreess ppaattcchheess


 Il y a d'autres patches (je les appellerai "non-standards") que ceux
 distribu�s par Linus. Si vous les appliquez, les patches Linus
 risquent de ne plus marcher correctement et vous serez oblig� soit de
 les enlever, soit d'adapter les patches. C'est g�n�ralement un travail
 assez p�nible pour les novices, aussi revenir aux anciennes sources
 avant d'appliquer les patches de LLiinnuuxx semble �tre une bonne solution.
 Apr�s, vous pouvez regarder si les patches non standards fonctionnent.
 S'ils ne fonctionnent pas, vous pouvez revenir � l'ancienne version,
 ou essayer de modifier le patch pour le faire fonctionner, ou encore
 attendre qu'un nouveau patch arrive.

 Vous entendrez probablement parler de ces patches non standards.
 J'utilisais le patch "noblink" car j'ai horreur des curseurs qui
 clignotent (ce patch est (ou bien �tait) mis � jour fr�quemment pour
 les nouveaux noyaux). Les pilotes de p�riph�riques �tant de plus
 d�velopp�s sous la forme de modules chargeables, le nombre de patches
 "non standards" d�cro�t.



 66..  PPaaqquueettaaggeess ssuuppppll��mmeennttaaiirreess


 Votre noyau Linux a bon nombre de caract�ristiques qui ne sont pas
 expliqu�es dans le noyau lui-m�me ; elles sont typiquement utilis�es
 par des paquetages externes.  Une liste des plus utiles est donn�e
 ici.


 66..11..  kkbbdd


 La console de Linux poss�de de nombreuses caract�ristiques. Elle peut
 changer les polices de caract�res, remapper le clavier, permuter les
 modes vid�os (dans les noyaux les plus r�cents), etc. Le package kbd
 poss�de des programmes qui permettent � l'utilisateur de faire tout
 cela, plus une tonne de fontes et de types de claviers. (NdT : fr.map
 pour le clavier fran�ais). Il est disponible sur les m�mes sites qui
 proposent les sources du noyau.


 66..22..  uuttiill--lliinnuuxx


 Rik Faith ([email protected]) a rassembl� une grande quantit� d'outils
 Linux dans le paquetage util-linux. Ils est d�sormais maintenu par
 Andries Brouwer ([email protected]). Disponible via ftp anonyme
 sur sunsite.unc.edu dans /pub/Linux/system/misc, il contient des
 programmes tels que setterm, rdev, et ctrlaltdel, qui concernent le
 noyau. Comme le dit Rik, _n_'_i_n_s_t_a_l_l_e_z _p_a_s _s_a_n_s _r_�_f_l_�_c_h_i_r, vous n'avez
 pas besoin de tout installer dans la distribution, et cela pourrait
 vous causer de graves ennuis.


 66..33..  hhddppaarrmm


 Comme beaucoup de paquetages, c'�tait au d�part un patch pour le noyau
 et un ensemble de programmes. Le patch a �t� int�gr� dans le noyau
 standard et les programmes pour optimiser et jouer avec vos disques
 sont distribu�s s�par�ment.


 66..44..  ggppmm



 gpm est un gestionnaire de souris. Ce programme vous permet
 d'effectuer du couper-coller en mode texte entre les consoles
 virtuelles ainsi que d'autres op�rations avec un grand nombre de types
 de souris.



 77..  QQuueellqquueess ppii��ggeess



 77..11..  mmaakkee cclleeaann


 Si votre noyau a un comportement surnaturel (�a m'est arriv� !), il y
 a des chances pour que vous ayez oubli� de faire un "make clean".  Les
 sympt�mes peuvent �tre un plantage de votre syst�me, des probl�mes
 d'entr�es-sorties �tranges, une chute des performances, des reboot
 al�atoires... V�rifiez que vous avez �galement fait un make dep.


 77..22..  NNooyyaauuxx ��nnoorrmmeess oouu lleennttss


 Si votre noyau consomme beaucoup de m�moire, ou s'il est r�ellement
 gros, ou bien s'il faut une �ternit� pour le compiler m�me lorsque
 vous utilisez votre nouveau 986DX6/440, c'est que vous avez configur�
 un tas de choses (pilotes de p�riph�riques, syst�mes de fichiers) dont
 vous n'avez pas besoin.  Si vous ne les utilisez pas, ne les
 configurez pas car cela prend beaucoup de place en m�moire.  Le
 sympt�me le plus visible est l'augmentation sensible du fonctionnement
 du swap. Si votre disque fait beaucoup de bruit, et qu'il ne s'agit
 pas d'un de ces vieux disques Fujitsu Eagles qui font le bruit d'un
 avion lors de son atterrissage lorsque vous l'�teignez, jetez un coup
 d'oeil � votre configuration.

 Vous pouvez calculer la taille m�moire que le noyau utilise en prenant
 la m�moire totale de votre machine et en soustrayant la valeur de la
 m�moire totale ("total mem") dans  /proc/meminfo ou bien avec la
 commande "free".


 77..33..  ppaass LLee ppoorrtt ppaarraallll��llee nnee ffoonnccttiioonnnnee ppaass//mmoonn iimmpprriimmaannttee nnee ffoonncc��
 ttiioonnnnee


 Les options de configuration pour les PC sont : premi�rement, dans la
 cat�gorie "General Setup" s�lectionnez "Parallel port support" et "PC-
 style hardware". Puis dans "Character devices", s�lectionnez "Parallel
 printer support".

 Il y a ensuite le probl�me des noms de p�riph�rique des imprimantes
 qui ont chang� dans Linux 2.2. Si vous aviez une imprimante lp1 avec
 votre noyau pr�c�dent, elle s'appelle probablement lp0 maintenant.
 Utilisez "dmesg" ou cherchez dans les logs dans /var/log pour le
 v�rifier.


 77..44..  LLee nnooyyaauu nnee ccoommppiillee ppaass


 Si cela ne compile pas, alors un patch a probablement �chou�, ou bien
 vous poss�dez des sources corrompus. Votre version de gcc peut
 �galement ne pas �tre correcte, ou bien endommag�e (par exemple les
 fichiers d'include peuvent �tre faux). Soyez s�r que les liens que
 Linus d�crit dans le fichier README sont corrects. En g�n�ral, si un
 noyau standard ne compile pas, c'est qu'un truc ne tourne pas rond
 dans le syst�me, et il est plus que probable que certains outils
 doivent �tre reinstall�s.

 Dans des cas relativement rares, gcc peut �chouer en raison de
 probl�mes de mat�riel. Le message d'erreur ressemble � un truc assez
 myst�rieux "xxx exited with signal 15".  Je n'en n'aurais probablement
 pas parl� si cela ne m'�tait arriv� une fois.  J'avais un cache
 m�moire d�fectueux et le compilateur fonctionnait de mani�re plut�t
 al�atoire. Essayez dans un premier temps de reinstaller gcc si vous
 avez des probl�mes. Si votre noyau compile tr�s bien avec les caches
 externes vid�s ou une m�moire r�duite, alors vous pourrez commencer �
 soup�onner votre mat�riel.

 Certaines personnes ont tendance � ne pas aimer que je mette en doute
 leur mat�riel. Je n'invente rien. Il existe une FAQ d�di�e � ce sujet
 :  <http://www.bitwizard.nl/sig11/> (NdT : traduite en fran�ais �
 <http://www.linux-france.org/article/sig11-fr/sig11-fr.html>).


 77..55..  LLaa nnoouuvveellllee vveerrssiioonn dduu nnooyyaauu nnee bboooottee pplluuss !!


 Soit LILO ne fonctionne pas, soit il n'est pas configur� correctement.
 Une fois, un probl�me dans le fichier de configuration m'a pos� pas
 mal de soucis : j'avais mis "boot = /dev/hda1" � la place de "boot =
 /dev/hda" (ce genre d'erreurs n'est pas facile � trouver, mais une
 fois que vous avez un fichier de configuration qui fonctionne, il n'y
 a pas de raison d'y toucher).


 77..66..  ttoouutt VVoouuss aavveezz oouubbllii�� ddee llaanncceerr LLIILLOO,, oouu llee ssyysstt��mmee nnee bboooottee
 pplluuss dduu


 Argh ! La meilleure chose � faire est de booter � partir d'une
 disquette et de pr�parer une nouvelle disquette de boot ("make zdisk"
 fait cela tr�s bien).  Vous avez besoin de savoir o� votre partition
 racine (/) se trouve et quel est son type (ext2fs, minix, etc). Dans
 l'exemple ci-dessous, vous aurez �galement besoin de conna�tre la
 partition des sources du noyau (/usr/src/linux), et o� elle est
 mont�e.

 Dans cet exemple,la racine / est /dev/hda1, la partition qui supporte
 /usr/src/linux est /dev/hda3, normalement mont�e sur /usr. Toutes les
 deux ont un syst�me de fichiers de type ext2fs. L'image du noyau se
 trouve dans /usr/src/linux/arch/i386/boot/ et elle s'appelle bzImage.

 L'id�e est que s'il existe un noyau bzImage qui fonctionne il est
 possible de l'utiliser pour la nouvelle disquette.  Une autre
 possibilit� qui peut �tre meilleure ou pas est pr�sent�e apr�s cet
 exemple (cela d�pend de la fa�on dont vous avez plant� votre syst�me).

 Commencez par booter � partir d'une disquette d'installation
 (boot/root) ou d'une disquette de secours et montez la partition o� se
 trouve le noyau en �tat de marche :


         mkdir /mnt
         mount -t ext2 /dev/hda3 /mnt



 Si mkdir vous annonce que le r�pertoire existe, ignorez le message.
 Maintenant, allez dans le r�pertoire o� se trouve le noyau en �tat de
 marche.  Notez que

 /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot


 Ins�rez une disquette format�e dans le lecteur "A:" (v�rifiez qu'il ne
 s'agit pas de la disquette boot ou root !), faites une copie de
 l'image sur le disque et configurez votre partition racine :


 cd /mnt/src/linux/arch/i386/boot
 dd if=bzImage of=/dev/fd0
 rdev /dev/fd0 /dev/hda1



 Allez � la racine /, et d�montez la partition /usr :

 cd /
 umount /mnt



 Maintenant, vous devriez �tre capable de rebooter votre syst�me
 normalement � partir de cette disquette. N'oubliez pas de lancer lilo
 (ou ce que vous aviez oubli�) avant de rebooter !

 Comme mentionn� ci-dessus, il y a une autre mani�re tr�s pratique.
 S'il se trouve que vous avez un noyau op�rationnel dans / (/vmlinuz
 par exemple), on peut s'en servir. Supposons que vous remplissiez les
 conditions ci-dessus, et que votre noyau s'appelle /vmlinuz, faites
 comme ci-dessus en changeant /dev/hda3 en /dev/hda1 (la partition /),
 /mnt/src/linux en /mnt, et if=bzImage en if=vmlinuz.  La petite note
 expliquant comment aller dans /mnt/src/linux peut �tre oubli�e.

 Utiliser LILO avec de gros disques (avec un nombre de cyclindres
 sup�rieur � 1024) peut poser des probl�mes. Consultez le mini-Howto
 LILO ou la documentation.


 77..77..  IIll mmee ddiitt""wwaarrnniinngg:: bbddfflluusshh nnoott rruunnnniinngg""


 Cela peut �tre un probl�me assez grave. Avec les noyaux ayant une
 version sup�rieure � 1.0 (aux alentours du 20 avril 1994), le
 programme "update" qui vide p�riodiquement les tampons disque a �t�
 remplac� par "bdflush". R�cup�rez les sources de "bdflush" (vous
 pouvez les r�cup�rer l� o� vous avez trouv� votre noyau), et compilez-
 le (il vaut mieux fonctionner avec un ancien noyau pendant la
 compilation et pendant l'installation). Il s'installera tout seul
 comme "update" et le nouveau noyau devrait ensuite fonctionner
 correctement.


 77..88..  JJee nn''aarrrriivvee ppaass �� ffaaiirree mmaarrcchheerr mmoonn CCDD--RROOMM IIDDEE//AATTAAPPII


 Aussi �trange que cela puisse para�tre, beaucoup de gens n'arrivent
 pas � faire fonctionner leurs disques ATAPI, tout simplement parce
 qu'il y a un bon nombre de probl�mes potentiels.

 Si votre CD-ROM est le seul disque d'une interface IDE particuli�re il
 doit �tre configur� en "ma�tre (master)" ou "seul (single)". C'est
 l'erreur la plus fr�quemment rencontr�e.

 Creative Labs (par exemple) a mis des interfaces IDE sur ses cartes
 sons.  Toutefois, cela pose un probl�me pour les gens qui ont d�j�
 deux interfaces IDE sur leur carte m�re (IRQ15 g�n�ralement). Une
 pratique commune est de faire de l'interface soundblaster un troisi�me
 port IDE (IRQ11 je pense).

 Cela pose un probl�me avec Linux car les versions 1.2.x ne supportent
 pas une troisi�me interface IDE (cela est g�r� avec les versions 1.3.x
 mais ce sont des versions de d�veloppement, et la troisi�me interface
 n'est pas d�tect�e automatiquement). Pour r�soudre ce probl�me, vous
 avez plusieurs possibilit�s.

 Si avez d�j� un deuxi�me port IDE, il y a des chances pour que vous ne
 l'utilisiez pas ou qu'il n'ait pas deux p�riph�riques connect�s.
 D�sactivez l'interface ATAPI de la carte son (vous �conomisez un IRQ)
 et connectez le disque sur votre seconde interface.

 Si vous n'avez pas une seconde interface, mettez interface IDE (pas la
 partie son) de la carte son sur l'IRQ 15. Cela devrait fonctionner.


 77..99..  LLee nnooyyaauu mmee ddiitt ddeess iinnssaanniitt��ss �� pprrooppooss ddee rreeqquu��tteess oobbssooll��tteess !!


 R�cup�rez des versions r�centes du progamme route et de tous les
 autres programmes manipulant les routes : /usr/include/linux/route.h
 (qui est en fait un fichier dans /usr/src/linux) a chang�.



 77..1100..  LLee FFiirreewwaallll nnee ffoonnccttiioonnnnee ppaass ddaannss llaa vveerrssiioonn 11..22..00


 Passez � la version 1.2.1.


 77..1111..  CCee nn''eesstt ppaass uunnee iimmaaggee nnooyyaauu ccoommpprreessss��ee !!


 N'utilisez pas le fichier vmlinux cr�� dans /usr/src/linux comme image
 de boot mais [..]/arch/i386/boot/bzImage.


 77..1122..  PPrroobbll��mmeess aavveecc llaa ccoonnssoollee aapprr��ss mmiissee �� jjoouurr �� llaa vveerrssiioonn 11..33..xx


 Changez le mot dumb en linux dans l'entr�e console du fichier
 /etc/termcap. Il faudra peut-�tre aussi ajouter une entr�e terminfo.


 77..1133..  LLee nnooyyaauu nnee sseemmbbllee ppaass ppoouuvvooiirr ccoommppiilleerr aapprr��ss uunnee mmiissee �� jjoouurr


 Le source du noyau contient un certain nombre de fichiers d'en-t�tes
 (les fichiers se terminant par .h) qui se trouvent dans le r�pertoire
 /usr/include.  Ils sont r�f�renc�s ainsi (o� xyzzy.h doit �tre dans
 /usr/include/linux) :

     #include <linux/xyzzy.h>


 Normalement, il y a un lien appel� linux dans /usr/include sur le
 r�pertoire include/linux de la racine des sources du noyau
 (/usr/src/linux/include/linux dans un syst�me standard).  Si ce lien
 n'existe pas, ou bien pointe au mauvais endroit, bon nombre de pro�
 grammes ne compileront pas. Si vous d�cidez que les sources du noyau
 prennent trop de place sur votre disque et que vous les d�truisez,
 cela sera un probl�me. Un autre probl�me qui peut arriver, c'est avec
 les permissions d'acc�s aux fichiers. Si votre root a un umask qui
 n'autorise pas les autres utilisateurs � voir ses fichiers par d�faut,
 et que vous d�sarchiviez les sources du noyau sans l'option p (con�
 serve le mode), les utilisateurs ne pourront pas utiliser le compila�
 teur C. Vous pouvez alors utiliser la commande chmod pour r�soudre le
 probl�me mais il est probablement plus facile de r�installer les
 fichiers include.  Vous pouvez proc�der de la m�me mani�re que lors de
 l'installation des sources au d�but, en ajoutant un argument pour
 n'extraire que les includes :

     blah# tar zxvpf linux.x.y.z.tar.gz linux/include


 Notez que "make config" va recr�er le lien /usr/src/linux s'il
 n'existe pas.


 77..1144..  AAuuggmmeenntteerr lleess lliimmiitteess


 Ces quelques _e_x_e_m_p_l_e_s de commandes peuvent �tre assez utiles � ceux
 qui se demandent comment augmenter certaines limites logicielles
 impos�es par le noyau :

  echo 4096 > /proc/sys/kernel/file-max
  echo 12288 > /proc/sys/kernel/inode-max
  echo 300 400 500 > /proc/sys/vm/freepages

 88..  NNoottee ccoonncceerrnnaanntt llaa mmiissee �� jjoouurr ppoouurr lleess nnooyyaauuxx 22..00..xx,, 22..22..xx


 Les noyaux 2.0.x et 2.2.x ont introduit pas mal de modifications dans
 l'installation du noyau. Le fichier Documentation/Changes situ� dans
 l'arborescence des sources 2.0.x contient des informations que vous
 devez conna�tre lorsque vous effectuez la mise � jour de votre
 syst�me. Il est fort probable que vous deviez mettre � jour plusieurs
 paquetages tels que gcc, libc et SysVInit ainsi que quelques fichiers
 syst�mes. Mais ne paniquez pas !



 99..  MMoodduulleess


 Les modules chargeables du noyau peuvent faire �conomiser de la
 m�moire et faciliter la configuration. L'utilisation des modules s'est
 accrue jusqu'� inclure les syst�mes de fichiers, les pilotes de cartes
 ethernet, de lecteurs de cartouches, d'imprimantes, etc.


 99..11..  IInnssttaalllleerr lleess uuttiilliittaaiirreess ppoouurr gg��rreerr lleess mmoodduulleess


 Ces utilitaires sont disponibles sur n'importe quel site o� vous avez
 r�cup�r� les sources du noyau : modutils-x.y.z.tar.gz; choisissez la
 derni�re version x.y.z qui est �gale ou inf�rieure � votre version du
 noyau.  Installez-le avec `tar zxvf modutils-x.y.z.tar.gz', cd dans le
 r�pertoire cr�� (modutils-x.y.z), regardez le fichier README, et
 suivez les instructions d'installation (qui sont en g�n�ral tr�s
 simples, du genre, faites make install).  Vous devriez avoir
 maintenant les programmes insmod, rmmod, ksyms, lsmod, genksyms,
 modprobe, et depmod dans /sbin. Vous pouvez les tester avec le pilote
 exemple "hw" dans insmod ; regardez le fichier INSTALL dans ce sous-
 r�pertoire pour les d�tails.

 insmod ins�re un module dans le noyau en cours d'ex�cution.  Les
 modules ont g�n�ralement une extension .o.  Le pilote exemple est
 appel� drv_hello.o, donc, pour l'ins�rer, insmod drv_hello.o'. Pour
 voir les modules que le noyau utilise actuellement, lancer lsmod.  Il
 devrait alors afficher :

 blah# lsmod
 Module:        #pages:  Used by:
 drv_hello          1


 `drv_hello' est le nom du module, il utilise une page m�moire (4ko),
 et aucun autre module du noyau ne d�pend actuellement de lui. Pour le
 retirer, lancez `rmmod drv_hello'. Notez que rmmod prend comme argu�
 ment _l_e _n_o_m _d_u _m_o_d_u_l_e_, (celui donn� par lsmod) pas un nom de fichier.
 Les autres programmes de gestion des modules sont document�s (pages de
 manuel).


 99..22..  MMoodduulleess ddiissttrriibbuu��ss aavveecc llee nnooyyaauu


 Avec la version 2.0.30, presque tout est disponible sous forme de
 modules chargeables. Pour les utiliser, soyez s�r que vous ne les
 ins�rez pas dans la configuration du noyau. Pour cela, ne r�pondez pas
 y pendant le `make config'.

 Compilez un nouveau noyau et bootez avec. Puis, cd dans /usr/src/linux
 � nouveau, et faites un `make modules'.  Cela va compiler tous les
 modules que vous n'avez pas sp�cifi�s dans le noyau et installer les
 liens dans /usr/src/linux/modules.  Vous pouvez alors les utiliser
 depuis ce r�pertoire ou faire `make modules_install' qui les
 installera dans /lib/modules/x.y.z, ou x.y.z est le num�ro de version
 du noyau.

 Cela peut �tre particuli�rement utile pour les syst�mes de fichiers.
 Vous n'utilisez peut-�tre pas fr�quemment les syst�mes de fichiers
 minix ou msdos. Par exemple, si je rencontre une disquette msdos
 (beuh), je devrai faire un insmod /usr/src/linux/modules/msdos.o, puis
 rmmod msdos lorsque j'aurai termin�, Cette fa�on de proc�der �conomise
 pr�s de 50 ko de RAM dans l'utilisation du noyau.  Remarque sur le
 syst�me de fichiers minix : il est tr�s fortement conseill� de
 _t_o_u_j_o_u_r_s le configurer directement dans le noyau pour l'utilisation en
 disques de secours.



 1100..  TTrruuccss eett aassttuucceess



 1100..11..  RReeddiirriiggeerr llaa ssoorrttiiee ssttaannddaarrdd ddeess ccoommmmaannddeess mmaakkee oouu ppaattcchh


 Si vous voulez voir ce que font les commandes "make" ou "patch", vous
 pouvez rediriger les messages. Regardez d'abord quel shell vous
 utilisez.  "grep root /etc/passwd" et cherchez quelque chose comme
 "/bin/csh".

 Si vous utilisez sh ou bash,

         (commande) 2>&1 | tee  (Fichier de sortie)


 placera une copie de la sortie dans le fichier (Fichier de sortie).

 Pour csh ou tcsh, la syntaxe est :

 (commande) |& tee (Fichier de sortie).



 Pour rc (note : vous n'utilisez probablement pas rc) c'est :

         (commande) > [2=1]| tee (Fichier de sortie).




 1100..22..  IInnssttaallllaattiioonnss ddiivveerrsseess dduu nnooyyaauu


 En plus des disquettes, d'autres m�thodes existent pour tester un
 nouveau noyau sans d�truire les pr�c�dents. � la diff�rence d'autres
 syst�mes Unix, LILO est capable de booter sur un noyau situ� n'importe
 o� sur le disque (si vous avez un gros disque (500 Mo ou plus) lisez
 la documentation de LILO car cela risque de poser quelques probl�mes).
 Donc, ajoutez cela :

     image = /usr/src/linux/arch/i386/boot/bzImage
     label = nouveau_noyau




 � la fin de votre fichier de configuration LILO, vous pouvez alors
 choisir de booter sur le nouveau noyau sans avoir � d�truire l'ancien
 /vmlinuz (apr�s avoir lanc� lilo, bien s�r).  La mani�re la plus
 simple d'indiquer � LILO qu'il doit booter sur un nouveau noyau est de
 presser la touche shift au boot (lorsqu'il vous indique LILO) ce qui
 vous donne un prompt.  � ce moment, tapez `nouveau_noyau' pour qu'il
 boote sur le nouveau noyau.

 Si vous d�sirez conserver plusieurs sources du noyau (cela peut
 prendre _b_e_a_u_c_o_u_p de place ; faites attention), la mani�re la plus
 simple est de le nommer : /usr/src/linux-x.y.z, ou x.y.z est la
 version du noyau.  Vous pouvez alors choisir le source � utiliser en
 faisant un lien symbolique ; par exemple, `ln -sf linux-1.2.2
 /usr/src/linux' indiquera la version 1.2.2 comme version courante.
 Avant de cr�er ce type de lien symbolique, soyez certain que le
 dernier argument de ln n'est pas un r�pertoire existant.  Le r�sultat
 ne serait pas celui que vous esp�riez.


 1100..33..  MMiisseess �� jjoouurr ddeess nnooyyaauuxx


 Russell Nelson ([email protected]) fait des r�sum�s des changements
 dans les nouvelles versions du noyau. Ils sont courts et vous devriez
 les regarder avant de r�aliser la mise � jour. Ils sont disponibles
 par ftp anonyme � ftp.emlist.com dans pub/kchanges ou via WEB
 <http://www.crynwr.com/kchanges>.



 1111..  DD''aauuttrreess HHOOWWTTOO qquuii ppeeuuvveenntt ��ttrree uuttiilleess



 �  Sound-HOWTO : cartes sons et utilitaires

 �  SCSI-HOWTO : tout sur les contr�leurs et p�riph�riques SCSI

 �  NET-2-HOWTO : r�seaux

 �  PPP-HOWTO : r�seau avec PPP

 �  PCMCIA-HOWTO : � propos des pilotes pour votre portable

 �  ELF-HOWTO : ELF : qu'est-ce que c'est, installation, etc

 �  Hardware-HOWTO : survol du mat�riel support�

 �  Module mini-HOWTO : plus de d�tails sur les modules du noyau

 �  Kerneld mini-HOWTO : d�di� � kerneld

 �  BogoMips mini-HOWTO : pour information



 1122..  DDiivveerrss



 1122..11..  AAuutteeuurr


 L'auteur du Kernel-HOWTO Linux est Brian Ward ([email protected]).
 S'il vous pla�t, envoyez-moi des commentaires, corrections, rajouts.
 Les corrections sont en particulier tr�s importantes.
 Vous pouvez jeter un coup d'oeil � ma page web ici
 <http://www.math.psu.edu/bri/> ou l� <http://blah.math.tu-
 graz.ac.at/~bri/>.

 Bien que j'essaye d'�tre attentif � mon courrier, rappelez-vous que
 j'en ai _b_e_a_u_c_o_u_p tous les jours, donc �a peut prendre un petit peu de
 temps pour vous r�pondre. Si le mail est une question, essayez d'�tre
 le plus clair et d�taill� possible. Si vous m'�crivez � propos de
 mat�riel qui ne fonctionne pas (ou quelques chose du genre), j'ai
 besoin de savoir quelle est votre configuration mat�rielle. Si vous
 reportez une erreur, ne vous limitez pas � "J'ai essay� ceci et �a n'a
 pas march�", j'ai besoin de savoir quelle �tait l'erreur, et quelles
 versions du noyau, de gcc et de la libc vous utilisez. Me donner le
 nom de la distribution n'est pas suffisant. Ne craignez pas de poser
 des questions simples, si vous ne demandez pas vous n'aurez pas de
 r�ponse ! Merci � tous ceux qui m'ont envoy� des commentaires.

 Si votre question ne concerne pas le noyau ou est �crite dans un
 langage que je ne comprends pas, il se peut que je ne r�ponde pas.

 Si vous m'�crivez et que vous n'obtenez aucune r�ponse dans un temps
 raisonable (trois semaines ou plus), il y a des chances que j'ai
 accidentellement d�truit votre message (d�sol�). R��ssayez.

 J'ai beaucoup de mail sur des probl�mes et questions de mat�riel. Ce
 n'est pas un probl�me mais merci de noter que que je ne suis pas
 familier avec tout le mat�riel du monde. J'utilise des processeurs
 AMD, des controlleurs SCSI Adaptec et Symbios et des disques SCSI IBM.

 La version 0.1 de ce document a �t� �crite le 3 octobre 1994. Il est
 disponible aux formats SGML, PostScript, TeX, roff et texte.


 1122..22..  RReessttee �� ffaaiirree


 Le paragraphe "Trucs et astuces" est un peu court. J'esp�re l'�toffer
 avec les suggestions venant d'autres personnes.  De m�me pour "Autres
 paquetages". Des informations suppl�mentaires pour le
 d�bogage/sauvetage lors de crash seraient les bienvenues.


 1122..33..  CCoonnttrriibbuuttiioonnss


 Une petite partie du README de Linus (cf. option kernel hacking ) est
 incluse.  (Merci, Linus !)

 �  [email protected] (Ulrich Callmeier) : patch -s et xargs.

 �  [email protected] (Daniel Quinlan) : corrections et compl�ments
    dans un bon nombre de paragraphes.

 �  [email protected] (Nat Makar�vitch) : mrproper, tar -p, et
    plein d'autres choses

 �  [email protected] (Axel Boldt) : a rassembl� les descriptions des
    options de configuration du noyau et m'a fourni la liste

 �  [email protected] (Steve Lembark) : suggestion pour le
    boot multiple.

 �  [email protected] (Keith Briggs) : quelques corrections
    et suggestions


 �  [email protected] (Ryan McGuire): ajouts au niveau
    des options de compilation

 �  [email protected] (Eric Dumas) : traduction fran�aise

 �  [email protected] (Yasutada Shimazaki): traduction
    japonaise

 �  [email protected] (Juan Jose Amor Iglesias): traduction
    espagnole

 �  [email protected] (Martin Wahlen) : traduction su�doise

 �  [email protected] (Zoltan Vamosi) : traduction hongroise

 �  [email protected] (Bartosz Maruszewski) : traduction polonaise

 �  [email protected] (Michael J Donahue) : typos, gagnant de la
    "comp�tition du pain en tranches"

 �  [email protected] (Richard Stallman) : notice de
    distribution/concept de documentation libre

 �  [email protected] (David Kastrup) : NFS

 �  [email protected] (Eric Raymond) : quelques trucs et astuces

 Tous ceux qui m'ont envoy� des mails avec des questions et des
 probl�mes ont �galement �t� d'une aide pr�cieuse.


 1122..44..  CCooppyyrriigghhtt,, ttrraadduuccttiioonn,, lliicceennccee eett aauuttrreess


 Copyright � Brian Ward, 1994-1999.

 Version fran�aise Copyright � Eric Dumas, 1995-1997 [email protected]
 � Christophe Deleuze, 1999

 Permission is granted to make and distribute copies of this manual
 provided the copyright notice and this permission notice are preserved
 on all copies.

 Permission is granted to copy and distribute modified versions of this
 manual under the conditions for verbatim copying, provided that the
 derived work is distributed under the terms of a permission notice
 identical to this one. Translations fall under the category of
 ``modified versions.''

 _(_V_o_u_s _a_v_e_z _l_e _d_r_o_i_t _d_e _f_a_i_r_e _e_t _d_e _d_i_s_t_r_i_b_u_e_r _d_e_s _c_o_p_i_e_s _d_e _c_e
 _d_o_c_u_m_e_n_t _� _c_o_n_d_i_t_i_o_n _q_u_e _l_'_a_v_i_s _d_e _c_o_p_y_r_i_g_h_t _e_t _c_e_t _a_v_i_s _d_e _p_e_r_m_i_s_s_i_o_n
 _s_o_i_e_n_t _p_r_�_s_e_r_v_�_s _s_u_r _t_o_u_t_e_s _l_e_s _c_o_p_i_e_s_. _V_o_u_s _p_o_u_v_e_z _c_o_p_i_e_r _e_t
 _d_i_s_t_r_i_b_u_e_r _d_e_s _v_e_r_s_i_o_n_s _m_o_d_i_f_i_�_e_s _s_o_u_s _l_e_s _m_�_m_e_s _c_o_n_d_i_t_i_o_n_s _p_o_u_r_v_u _q_u_e
 _l_e _t_r_a_v_a_i_l _d_�_r_i_v_� _s_o_i_t _d_i_s_t_r_i_b_u_� _s_o_u_s _u_n _a_v_i_s _d_e _p_e_r_m_i_s_s_i_o_n _i_d_e_n_t_i_q_u_e
 _� _c_e_l_u_i_-_c_i_. _L_e_s _t_r_a_d_u_c_t_i_o_n_s _s_o_n_t _d_e_s _"_v_e_r_s_i_o_n_s _m_o_d_i_f_i_�_e_s_"_)_.

 Garantie : aucune.

 Cette version fran�aise peut �tre trouv�e sur ftp.lip6.fr  dans le
 r�pertoire /pub/linux/french/HOWTO.

 La distribution commerciale est autoris�e et encourag�e ; toutefois il
 est fortement recommand� de contacter l'auteur avant la
 redistribution, dans l'int�r�t de la mise � jour des donn�es (vous
 pourriez aussi m'envoyer un exemplaire de ce que vous faites). Idem
 pour les versions traduites, contactez le traducteur. Il est conseill�
 aux traducteurs de contacter l'auteur avant de commencer la
 traduction. La version imprim�e est bien plus belle. Recyclez.