<!--
     The FreeBSD Documentation Project
     The FreeBSD French Documentation Project

     $FreeBSD$
     Original revision: 1.127
-->

<chapter id="kernelconfig">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Jim</firstname>
	<surname>Mock</surname>
	<contrib>Mis &agrave; jour et restructur&eacute; par </contrib>
	<!-- Mar 2000 -->
      </author>
    </authorgroup>
    <authorgroup>
      <author>
	<firstname>Jake</firstname>
	<surname>Hamby</surname>
	<contrib>Contribution originale de </contrib>
	<!-- 6 Oct 1995 -->
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Configurer le noyau de FreeBSD</title>
  &trans.a.fonvieille;

  <sect1 id="kernelconfig-synopsis">
    <title>Synopsis</title>

    <indexterm>
      <primary>noyau</primary>
      <secondary>compiler un noyau sur mesure</secondary>
    </indexterm>

    <para>Le noyau est le coeur du syst&egrave;me d'exploitation FreeBSD.
      Il est responsable de la gestion de la m&eacute;moire, de la mise en
      application des contr&ocirc;les de s&eacute;curit&eacute;,
      du r&eacute;seau, des acc&egrave;s disque, et bien plus.  Bien que
      FreeBSD devienne de plus en plus configurable dynamiquement, il est
      toujours n&eacute;cessaire occasionnellement de reconfigurer
      et recompiler votre noyau.</para>

    <para>Apr&egrave;s la lecture de ce chapitre, vous saurez:</para>

    <itemizedlist>
      <listitem>
	<para>Pourquoi vous pourriez avoir besoin de compiler un noyau
	  sur mesure.</para>
      </listitem>

      <listitem>
	<para>Comment &eacute;crire un fichier de configuration du noyau, ou
	  modifier un fichier de configuration existant.</para>
      </listitem>

      <listitem>
	<para>Comment utiliser le fichier de configuration du noyau pour
	  cr&eacute;er et recompiler un nouveau noyau.</para>
      </listitem>

      <listitem>
	<para>Comment installer un nouveau noyau.</para>
      </listitem>

      <listitem>
	<para>Comment cr&eacute;er les entr&eacute;es dans
	  <filename>/dev</filename> qui pourront &ecirc;tre
	  n&eacute;cessaires.</para>
      </listitem>

      <listitem>
	<para>Que faire si quelque chose se passe mal.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="kernelconfig-custom-kernel">
    <title>Pourquoi compiler un noyau sur mesure?</title>

    <para>Traditionnellement, FreeBSD a eu ce qui s'appelle un noyau
      &ldquo;monolithique&rdquo;.  Cela signifie que le noyau &eacute;tait
      un gros programme, supportant une liste fig&eacute;e de
      p&eacute;riph&eacute;riques, et si vous vouliez modifier le
      comportement du noyau alors vous deviez compiler un nouveau noyau, et
      ensuite red&eacute;marrer votre ordinateur avec le nouveau noyau.</para>

    <para>Aujourd'hui, FreeBSD s'oriente rapidement vers un mod&egrave;le
      o&ugrave; une grande partie des fonctions du noyau est contenue dans des
      modules qui peuvent &ecirc;tre dynamiquement charg&eacute;s
      et d&eacute;charg&eacute;s si n&eacute;cessaire.
      Cela permet au noyau de s'adapter au nouveau mat&eacute;riel devenant
      soudainement disponible (comme les cartes PCMCIA dans un
      ordinateur portable), ou pour qu'une nouvelle fonctionnalit&eacute;
      qui n'&eacute;tait pas n&eacute;cessaire lors de la compilation
      du noyau y soit int&eacute;gr&eacute;e.  On appelle cela un noyau modulaire.  Famili&egrave;rement les
      modules sont appel&eacute;s KLDs.</para>

    <para>En d&eacute;pit de cela, il est encore n&eacute;cessaire d'effectuer
      certaines configurations de noyau en statique.  Dans certains cas
      c'est parce que la fonctionnalit&eacute; est si proche du noyau
      qu'elle ne peut &ecirc;tre rendue dynamiquement chargeable.  Dans d'autres
      cas, cela peut tout simplement venir du fait que personne n'a
      encore pris le temps d'&eacute;crire un module dynamiquement chargeable
      pour cette fonctionnalit&eacute;.</para>

    <para>Compiler un noyau sur mesure est l'un des plus importants
      rites de passage que doit endurer tout utilisateur &unix;.  Cette
      op&eacute;ration, tout en prenant du temps, apportera de nombreuses
      am&eacute;liorations &agrave; votre syst&egrave;me FreeBSD.
      A la diff&eacute;rence du noyau <filename>GENERIC</filename>,
      qui doit supporter une large gamme de mat&eacute;riels, un noyau sur
      mesure ne contient que le support pour <emphasis>votre</emphasis>
      configuration mat&eacute;rielle.  Cela a de nombreux avantages,
      comme:</para>

    <itemizedlist>
      <listitem>
	<para>Un temps de d&eacute;marrage plus court.  Comme le noyau ne
	  recherchera que le mat&eacute;riel pr&eacute;sent sur votre
	  syst&egrave;me, le temps n&eacute;cessaire au d&eacute;marrage de
	  votre syst&egrave;me diminuera de fa&ccedil;on importante.</para>
      </listitem>

      <listitem>
	<para>Une utilisation de la m&eacute;moire moindre.  Un noyau sur
	  mesure utilise souvent moins de m&eacute;moire que le noyau
	  <filename>GENERIC</filename>, ce qui est important car le noyau
	  doit toujours r&eacute;sider en m&eacute;moire.  Pour cette
	  raison, un noyau sur mesure est tout particuli&egrave;rement utile
	  sur un syst&egrave;me dont les ressources m&eacute;moire sont
	  limit&eacute;es.</para>
      </listitem>

      <listitem>
	<para>Le support de mat&eacute;riels suppl&eacute;mentaires.  Un noyau
	  sur mesure vous permet d'int&eacute;grer le support pour des
	  p&eacute;riph&eacute;riques comme les cartes son, qui ne sont
	  pas pr&eacute;sents dans le noyau
	  <filename>GENERIC</filename>.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="kernelconfig-building">
    <title>Compiler et installer un noyau sur mesure</title>
    <indexterm>
      <primary>noyau</primary>
      <secondary>compiler / installer</secondary>
    </indexterm>

    <para>Commen&ccedil;ons par passer rapidement en revue le r&eacute;pertoire
      de configuration du noyau.  Tous les chemins d'acc&egrave;s
      mentionn&eacute;s seront relatifs au r&eacute;pertoire principal
      <filename>/usr/src/sys</filename>, qui est &eacute;galement
      accessible via le lien symbolique <filename>/sys</filename>.
      Il comporte un certain nombre de sous-r&eacute;pertoires correspondants
      &agrave; diff&eacute;rentes parties du noyau, mais les plus
      importantes, en ce qui nous concerne, sont
      <filename><replaceable>arch</replaceable>/conf</filename>, o&ugrave; vous
      &eacute;diterez votre fichier configuration personnalis&eacute;, et
      <filename>compile</filename>, qui est l'espace de travail o&ugrave;
      votre noyau sera compil&eacute;.  <replaceable>arch</replaceable>
      repr&eacute;sente soit <filename>i386</filename>, soit
      <filename>alpha</filename>, ou encore <filename>pc98</filename>
      (une branche alternative de d&eacute;veloppement de l'architecture PC,
      populaire au Japon).  Tout ce qui se trouve dans un r&eacute;pertoire
      particulier &agrave; une architecture est propre uniquement
      &agrave; cette architecture; le reste du code est commun &agrave;
      toutes les plates-formes sur lesquelles FreeBSD pourrait &ecirc;tre
      potentiellement port&eacute;.  Remarquez l'organisation logique de
      l'arborescence des r&eacute;pertoires, o&ugrave; chaque
      p&eacute;riph&eacute;rique, syst&egrave;me de fichiers,
      et option support&eacute;s a son propre sous-r&eacute;pertoire.
      &os;&nbsp;5.X et versions suivantes supporte l'architecture
      <filename>sparc64</filename>, ainsi que quelques autres
      architectures en d&eacute;veloppement.</para>

    <note>
      <para>S'il n'y a <emphasis>pas</emphasis> de r&eacute;pertoire
	<filename>/usr/src/sys</filename> sur votre syst&egrave;me,
	alors c'est que les sources du noyau n'ont pas &eacute;t&eacute;
	install&eacute;es.  La mani&egrave;re la plus facile de les installer
	est d'ex&eacute;cuter <command>/stand/sysinstall</command> en tant
	que <username>root</username>, et s&eacute;lectionner
	<guimenuitem>Configure</guimenuitem>, puis
	<guimenuitem>Distributions</guimenuitem>,
	<guimenuitem>src</guimenuitem>, <guimenuitem>sys</guimenuitem>.
	Si vous avez une aversion envers <application>sysinstall</application>
	et que vous disposez d'un CDROM &ldquo;officiel&rdquo; de
	FreeBSD, alors vous pouvez installer les sources depuis la
	ligne de commande:</para>

      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>mkdir -p /usr/src/sys</userinput>
&prompt.root; <userinput>ln -s /usr/src/sys /sys</userinput>
&prompt.root; <userinput>cat /cdrom/src/ssys.[a-d]* | tar -xzvf -</userinput></screen>
    </note>

    <para>Ensuite allez dans le r&eacute;pertoire
      <filename><replaceable>arch</replaceable>/conf</filename> et copiez
      le fichier de configuration <filename>GENERIC</filename> dans un
      fichier qui portera le nom que vous voulez donner &agrave; votre
      noyau.  Par exemple:</para>

    <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
&prompt.root; <userinput>cp GENERIC MONNOYAU</userinput></screen>

    <para>Par tradition, c'est un nom en majuscules, et si vous maintenez
      plusieurs machines FreeBSD avec des configurations mat&eacute;rielles
      diff&eacute;rentes, c'est une bonne id&eacute;e de lui donner le
      m&ecirc;me nom que la machine.  Nous l'appelerons
      <filename>MONNOYAU</filename> pour les besoins de cet
      exemple.</para>

    <tip>
      <para>Conserver votre fichier de configuration du noyau
	directement sous <filename>/usr/src</filename> peut &ecirc;tre une
	mauvaise id&eacute;e.  Si vous avez des probl&egrave;mes
	il peut &ecirc;tre tentant de juste effacer
	<filename>/usr/src</filename> et recommencer &agrave; nouveau.
	Cinq secondes apr&egrave;s vous vous rendez compte que vous venez
	d'effacer votre fichier de configuration
	personnalis&eacute;.  N'&eacute;ditez pas directement le fichier
	<filename>GENERIC</filename>, il peut &ecirc;tre
	&eacute;cras&eacute; &agrave; la prochaine <link
	linkend="cutting-edge">mise &agrave; jour de l'arborescence
	des sources</link>, et vos modifications seraient
	perdues.</para>

      <para>Vous voudrez peut &ecirc;tre conserver votre fichier de
	configuration du noyau ailleurs et alors cr&eacute;er un lien
	symbolique vers le fichier dans le r&eacute;pertoire
	<filename>i386</filename>.</para>

      <para>Par exemple:</para>

      <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
&prompt.root; <userinput>mkdir /root/noyaux</userinput>
&prompt.root; <userinput>cp GENERIC /root/noyaux/<replaceable>MONNOYAU</replaceable></userinput>
&prompt.root; <userinput>ln -s /root/noyaux/<replaceable>MONNOYAU</replaceable></userinput></screen>
    </tip>

    <note>
      <para>Vous devez ex&eacute;cuter cela et toutes les commandes suivantes
	avec les privil&egrave;ges du compte <username>root</username>
	ou vous obtiendrez des messages d'erreur du type
	<errortype>permission denied</errortype> (permission
	refus&eacute;e).</para>
    </note>

    <para>Editez maintenant <filename>MONNOYAU</filename> avec votre
      &eacute;diteur de texte pr&eacute;f&eacute;r&eacute;.
      Si vous venez tout juste de finir l'installation, le seul
      &eacute;diteur disponible sera probablement
      <application>vi</application>, qui est trop complexe pour &ecirc;tre
      d&eacute;crit ici, mais est bien expliqu&eacute; dans de nombreux
      ouvrages de la <link linkend="bibliography">bibliographie</link>.
      Cependant, FreeBSD offre un &eacute;diteur plus simple appel&eacute;
      <application>ee</application> qui, si vous &ecirc;tes d&eacute;butant,
      sera votre &eacute;diteur de choix.  N'h&eacute;sitez pas &agrave;
      modifier les commentaires d'ent&ecirc;te pour y d&eacute;crire
      votre configuration ou les modifications que vous avez apport&eacute;s
      par rapport au noyau <filename>GENERIC</filename>.</para>
    <indexterm><primary>SunOS</primary></indexterm>

    <para>Si vous avez d&eacute;j&agrave; compil&eacute; un noyau sur &sunos;
      ou tout autre syst&egrave;me d'exploitation BSD, l'essentiel de fichier
      vous sera familier.  Si vous venez d'un syst&egrave;me d'exploitation
      comme DOS, &agrave; l'inverse, le fichier de configuration
      <filename>GENERIC</filename> vous para&icirc;tra inintelligible, lisez
      alors lentement et attentivement la section sur <link
      linkend="kernelconfig-config">le fichier de
      configuration</link>.</para>

    <note>
      <para>Assurez-vous de toujours contr&ocirc;ler le fichier
        <filename>/usr/src/UPDATING</filename>, avant d'effectuer une
	seul &eacute;tape de mise &agrave; jour, dans le cas o&ugrave;
	vous avez <link linkend="cutting-edge">synchronis&eacute; votre
	arborescence des sources</link> avec les toutes derni&egrave;res
	sources du projet FreeBSD.  Dans ce fichier sont not&eacute;s tous
	les probl&egrave;mes importants que l'on peut rencontrer lors de la
	mise &agrave; jour de FreeBSD.
	<filename>/usr/src/UPDATING</filename> correspond toujours &agrave;
	votre version des sources de FreeBSD, et est donc plus
	pr&eacute;cis &agrave; ce sujet que le Manuel.</para>
    </note>

    <para>Vous devez maintenant compiler le code source du noyau.  Il
      existe deux proc&eacute;dures que vous pouvez utiliser dans ce but,
      et celle que vous utiliserez d&eacute;pendra de pourquoi vous
      recompilez le noyau, et de la version de FreeBSD que vous
      utilisez.</para>

    <itemizedlist>
      <listitem>
	<para>Si vous avez <emphasis>uniquement</emphasis> install&eacute;
	  les sources du noyau, utilisez la proc&eacute;dure
	  num&eacute;ro 1.</para>
      </listitem>

      <listitem>
	<para>Si vous utilisez une version de FreeBSD ant&eacute;rieure
	  &agrave; la 4.0, et que vous ne mettez <emphasis>pas</emphasis>
	  &agrave; jour vers la version 4.0 ou sup&eacute;rieure en utilisant la
	  proc&eacute;dure <maketarget>make world</maketarget>, employez la
	  proc&eacute;dure 1.</para>
      </listitem>

      <listitem>
	<para>Si vous compilez un nouveau noyau sans mettre &agrave; jour le
	  code source (peut &ecirc;tre pour juste ajouter une nouvelle
	  option, comme <literal>IPFIREWALL</literal>) vous pouvez
	  utilisez n'importe quelle proc&eacute;dure.</para>
      </listitem>

      <listitem>
	<para>Si vous recompilez le noyau durant le processus
          <maketarget>make world</maketarget> utilisez la proc&eacute;dure
	  num&eacute;ro 2.</para>
      </listitem>
    </itemizedlist>

    <procedure>
      <title>Proc&eacute;dure 1.  Compiler un noyau suivant la
	m&eacute;thode dite &ldquo;traditionnelle&rdquo;</title>

      <step>
	<para>Ex&eacute;cutez &man.config.8; pour g&eacute;n&eacute;rer
	  le code source du noyau.</para>

	<screen>&prompt.root; <userinput>/usr/sbin/config <replaceable>MONNOYAU</replaceable></userinput></screen>
      </step>

      <step>
	<para>Passez dans le r&eacute;pertoire de compilation.  Ce
	  dernier est normalement affich&eacute; apr&egrave;s
	  l'ex&eacute;cution de la pr&eacute;c&eacute;dente
	  commande:</para>

	<screen>&prompt.root; <userinput>cd ../compile/<replaceable>MYKERNEL</replaceable></userinput></screen>

	<para>Pour les versions de &os; ant&eacute;rieures &agrave; la
	  5.0, utiliser plut&ocirc;t:</para>

	<screen>&prompt.root; <userinput>cd ../../compile/<replaceable>MONNOYAU</replaceable></userinput></screen>
      </step>

      <step>
	<para>Compilez le noyau.</para>

	<screen>&prompt.root; <userinput>make depend</userinput>
&prompt.root; <userinput>make</userinput></screen>
      </step>

      <step>
	<para>Installez le nouveau noyau.</para>

	<screen>&prompt.root; <userinput>make install</userinput></screen>
      </step>
    </procedure>

    <procedure>
      <title>Proc&eacute;dure 2.  Compiler un noyau suivant la
	&ldquo;nouvelle&rdquo; m&eacute;thode.</title>

      <step>
	<para>Passez dans le r&eacute;pertoire
	  <filename>/usr/src</filename>.</para>

	<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
      </step>

      <step>
	<para>Compilez le noyau.</para>

	<screen>&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MONNOYAU</replaceable></userinput></screen>
      </step>

      <step>
	<para>Installez le nouveau noyau.</para>

	<screen>&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MONNOYAU</replaceable></userinput></screen>
      </step>
    </procedure>

    <note>
      <para>Sous FreeBSD&nbsp;4.2 et versions ant&eacute;rieures vous devez
	remplacer <literal>KERNCONF=</literal> par <literal>KERNEL=</literal>.
        Une version 4.2-STABLE qui a &eacute;t&eacute;
	r&eacute;cup&eacute;r&eacute;e avant le 2 f&eacute;vrier
	2001 ne reconna&icirc;t pas le param&egrave;tre
        <literal>KERNCONF=</literal>.</para>
    </note>

    <indexterm>
      <primary><command>cvsup</command></primary>
    </indexterm>
    <indexterm><primary>CVS anonyme</primary></indexterm>
    <indexterm><primary>CTM</primary></indexterm>
    <indexterm>
      <primary>CVS</primary>
      <secondary>anonyme</secondary>
    </indexterm>

    <para>Si vous <emphasis>n'avez pas</emphasis>, en aucune mani&egrave;re,
      mis &agrave; jour votre arborescence des sources (vous n'avez pas
      utilis&eacute; <application>CVSup</application>,
      <application>CTM</application>, ou employ&eacute;
      <application>anoncvs</application>), alors vous devriez utiliser
      la s&eacute;quence <command>config</command>,
      <maketarget>make depend</maketarget>, <command>make</command>,
      <maketarget>make install</maketarget>.
    </para>

    <indexterm>
      <primary><filename>kernel.old</filename></primary>
    </indexterm>

    <para>Le nouveau noyau sera copi&eacute; sous la racine avec le nom
      <filename>/kernel</filename> et l'ancien noyau sera renomm&eacute; en
      <filename>/kernel.old</filename>.  Maintenant, arr&ecirc;tez
      le syst&egrave;me et red&eacute;marrez pour utiliser votre
      nouveau noyau.
      Si quelque chose se passe mal, il y a quelques instructions
      de <link linkend="kernelconfig-trouble">d&eacute;pannage</link> &agrave;
      la fin de ce chapitre.  Assurez-vous de lire la section qui
      explique comment revenir en arri&egrave;re dans le cas o&ugrave;
      votre nouveau noyau <link linkend="kernelconfig-noboot">ne
      d&eacute;marre pas</link>.</para>

    <note>
      <para>Depuis &os;&nbsp;5.0, les noyaux sont install&eacute;s
	avec leurs modules dans <filename>/boot/kernel</filename>,
	et les vieux noyaux seront archiv&eacute;s dans
	<filename>/boot/kernel.old</filename>.  Les autres fichiers
	concernant le processus de d&eacute;marrage, comme le chargeur
	(&man.loader.8;) et la configuration du d&eacute;marrage
	sont conserv&eacute;s &eacute;galement dans le
	r&eacute;pertoire <filename>/boot</filename>.
	Les modules tiers et personnalis&eacute;s peuvent &ecirc;tre
	plac&eacute;s dans <filename>/boot/modules</filename>,
	bien que les utilisateurs doivent &ecirc;tre conscients
	que garder ses modules synchronis&eacute;s avec le noyau
	compil&eacute; est tr&egrave;s important.
	Les modules qui ne sont pas destin&eacute;s &agrave; fonctionner
	avec le noyau compil&eacute; peuvent &ecirc;tre instables et
	ne pas donner les resultats escompt&eacute;s.</para></note>

    <note>
      <para>Si vous avez ajout&eacute; de nouveaux
	p&eacute;riph&eacute;riques (comme une carte son) et que vous utilisez FreeBSD&nbsp;4.X ou une version ant&eacute;rieure, vous devrez peut
	&ecirc;tre rajouter des fichiers sp&eacute;ciaux de
	p&eacute;riph&eacute;riques dans votre r&eacute;pertoire
	<filename>/dev</filename> avant de pouvoir les utiliser.  Pour
	plus d'informations, reportez-vous &agrave; la section <link
	linkend="kernelconfig-nodes">Cr&eacute;er les fichiers
	sp&eacute;ciaux de p&eacute;riph&eacute;riques</link> plus loin dans ce
	chapitre.</para>
    </note>
  </sect1>

  <sect1 id="kernelconfig-config">
    <title>Le fichier de configuration</title>
    <indexterm>
      <primary>noyau</primary>
      <secondary>LINT</secondary>
    </indexterm>
    <indexterm><primary>LINT</primary></indexterm>
    <indexterm>
      <primary>noyau</primary>
      <secondary>fichier de configuration</secondary>
    </indexterm>

    <para>Le format g&eacute;n&eacute;ral du fichier de configuration
      est assez simple.  Chaque ligne est compos&eacute;e d'un
      mot-cl&eacute; et d'un ou plusieurs arguments.  Pour simplifier,
      la plupart des lignes ne contiennent qu'un seul argument.
      Tout ce qui suit le caract&egrave;re <literal>#</literal> est
      consid&eacute;r&eacute; comme un commentaire et ignor&eacute;.
      Les sections suivantes d&eacute;crivent chaque mot-cl&eacute;,
      normalement dans l'ordre o&ugrave; ils apparaissent dans le fichier
      <filename>GENERIC</filename>, quoique certains mots-cl&eacute;s
      apparent&eacute;s aient &eacute;t&eacute; regroup&eacute;s
      en une seule section (R&eacute;seau par exemple) bien qu'ils soient
      en fait dispers&eacute;s dans le fichier <filename>GENERIC</filename>.
      <anchor id="kernelconfig-options"> Une liste exhaustive des
      options et des explications plus d&eacute;taill&eacute;es des lignes
      se rapportant aux p&eacute;riph&eacute;riques se trouvent dans le
      fichier de configuration <filename>LINT</filename>, situ&eacute;
      dans le m&ecirc;me r&eacute;pertoire que <filename>GENERIC</filename>.
      Si vous avez des doutes sur le r&ocirc;le ou la
      n&eacute;cessit&eacute; d'une ligne, consultez d'abord le fichier
      <filename>LINT</filename>.</para>

    <note><para>Sous &os;&nbsp;5.X et versions suivantes, le fichier
      <filename>LINT</filename> n'existe pas.  Consultez le fichier
      <filename>NOTES</filename> pour les options propres &agrave;
      chaque architecture.  Certaines options, principalement
      celles ind&eacute;pendantes de l'architecture, sont
      archiv&eacute;es dans le fichier
      <filename>/usr/src/sys/conf/NOTES</filename>.  Il est
      conseill&eacute; de lire &eacute;galement ce
      fichier.</para></note>

    <indexterm>
      <primary>noyau</primary>
      <secondary>exemple de fichier de configuration</secondary>
    </indexterm>

    <para>Ce qui suit est un exemple de fichier de configuration du
      noyau <filename>GENERIC</filename> avec divers commentaires aux
      endroits n&eacute;cessaires pour un peu plus de clart&eacute;.
      Cet exemple devrait correspondre de fa&ccedil;on tr&egrave;s proche
      &agrave; votre copie du fichier
      <filename>/usr/src/sys/i386/conf/GENERIC</filename>.  Pour plus
      de d&eacute;tails sur les options possibles du noyau, consultez le
      fichier <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>

    <programlisting>#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# &dollar;FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp &dollar;</programlisting>

    <para>Ce qui suit sont les mots-cl&eacute;s obligatoires requis dans
      <emphasis>tous</emphasis> les noyaux que vous compilez:</para>
    <indexterm>
      <primary>options du noyau</primary>
      <secondary>machine</secondary>
    </indexterm>

    <programlisting>machine		i386</programlisting>

    <para>C'est l'architecture de la machine.  Elle doit &ecirc;tre
      <literal>i386</literal>, <literal>pc98</literal>,
      <literal>sparc64</literal>, <literal>alpha</literal>,
      <literal>ia64</literal>, <literal>amd64</literal>, ou encore
      <literal>powerpc</literal>.</para>

    <indexterm>
      <primary>options du noyau</primary>
      <secondary>cpu</secondary>
    </indexterm>
    <programlisting>cpu          I486_CPU
cpu          I586_CPU
cpu          I686_CPU</programlisting>

    <para>Ce qui pr&eacute;c&egrave;de d&eacute;finit le type de CPU
      pr&eacute;sent dans votre syst&egrave;me.  Il peut y avoir plusieurs
      occurrences de la ligne CPU (i.e., vous n'&ecirc;tes pas s&ucirc;r
      de devoir utiliser <literal>I586_CPU</literal>
      ou <literal>I686_CPU</literal>), cependant, pour un noyau
      personnalis&eacute;, il est mieux de sp&eacute;cifier uniquement
      le CPU que vous avez.
      Si vous n'&ecirc;tes pas s&ucirc;r du type, vous pouvez lister
      le fichier <filename>/var/run/dmesg.boot</filename> pour visualiser les
      messages de d&eacute;marrage.</para>

    <indexterm>
      <primary>options du noyau</primary>
      <secondary>type de cpu</secondary>
    </indexterm>
    <para>Le support <literal>I386_CPU</literal> est encore fourni
      dans les sources de &os;, mais est d&eacute;sactiv&eacute;
      par d&eacute;faut dans les branches -STABLE et -CURRENT.  Cela
      signifie que pour installer &os; sur un 386, vous avez
      d&eacute;sormais les possibilit&eacute;s suivantes:</para>

    <itemizedlist>
      <listitem>
	<para>Installer une vieille version de &os; et recompiler
	  &agrave; partir des sources comme d&eacute;crit dans la
	  <xref linkend="kernelconfig-building"></para>
      </listitem>

      <listitem>
        <para>Compiler le syst&egrave;me de base et le noyau sur une
	  machine plus r&eacute;cente et installer le tout sur le 386
	  en utilisant les fichiers pr&eacute;-compil&eacute;s du
	  r&eacute;pertoire <filename>/usr/obj</filename>
	  (voir la <xref linkend="small-lan"> pour plus de
	  d&eacute;tails).</para>
      </listitem>

      <listitem>
        <para>Fabriquer votre propre version de &os; incluant le
	  support <literal>I386_CPU</literal> dans les noyaux
	  du CD-ROM d'installation.</para>
      </listitem>
    </itemizedlist>

    <para>La premi&egrave;re de ces options est probablement
      la plus simple de toutes, mais vous aurez besoin de beaucoup
      d'espace disque sur la machine 386 ce qui peut
      &ecirc;tre difficile &agrave; trouver.</para>
    <indexterm>
      <primary>options du noyau</primary>
      <secondary>ident</secondary>
    </indexterm>

    <programlisting>ident          GENERIC</programlisting>

    <para>C'est l'identification du noyau.  Vous devriez changer cela
      pour le nom, quel qu'il soit, que vous donnez &agrave; votre noyau,
      par exemple <literal>MONNOYAU</literal> si vous avez suivi les
      instructions des exemples pr&eacute;c&eacute;dents.
      La valeur que vous donnez &agrave; la cha&icirc;ne <literal>ident</literal>
      s'affichera au d&eacute;marrage du noyau, il est donc utile de donner
      au nouveau noyau un nom diff&eacute;rent si vous voulez le
      diff&eacute;rencier de votre noyau habituel (i.e., vous voulez compiler
      un noyau exp&eacute;rimental).</para>
    <indexterm>
      <primary>options du noyau</primary>
      <secondary>maxusers</secondary>
    </indexterm>

    <programlisting>maxusers          <replaceable>n</replaceable></programlisting>

    <para>L'option <literal>maxusers</literal> d&eacute;finit la taille d'un
      certain nombre de tables importantes du syst&egrave;me.  Ce nombre est
      suppos&eacute; &ecirc;tre en gros &eacute;gal au nombre d'utilisateurs
      simultan&eacute;s
      que vous vous attendez &agrave; avoir sur votre machine.</para>

    <para>Depuis FreeBSD&nbsp;4.5, le syst&egrave;me auto-ajuste ce param&egrave;tre
      pour vous si vous le fixez explicitement &agrave;
      <literal>0</literal><footnote>
	<para>L'algorithme d'auto-ajustement fixe
	  <literal>maxuser</literal> &agrave; une valeur &eacute;gale
	  &agrave; la quantit&eacute; de m&eacute;moire pr&eacute;sente
	  sur le syst&egrave;me, avec un minimum de 32 et un maximum de
	  384..</para></footnote>.
      Sous &os;&nbsp;5.X <literal>maxusers</literal> est par
      d&eacute;faut &eacute;gal &agrave; <literal>0</literal>
      si rien n'est sp&eacute;cifi&eacute;.
      Si vous utilisez une version de &os;
      ant&eacute;rieure &agrave; la 4.5, ou que vous d&eacute;sirez le
      g&eacute;rer par vous m&ecirc;me, vous devrez fixer
      <literal>maxusers</literal> &agrave; 4 au moins, en particulier si vous
      utilisez le syst&egrave;me X Window ou compilez des logiciels.  La
      raison de cela est que la valeur la plus importante que
      dimensionne <literal>maxusers</literal> est le nombre maximal de
      processus, qui est fix&eacute; &agrave; <literal>20 + 16 *
      maxusers</literal>, donc si vous positionnez
      <literal>maxusers</literal> &agrave; 1, alors vous ne pouvez avoir que
      36 processus en simultan&eacute;s, comprenant les 18, environ, que le
      syst&egrave;me lance au d&eacute;marrage, et les 15, &agrave;
      peu pr&egrave;s, que vous cr&eacute;erez probablement au
      d&eacute;marrage du syst&egrave;me X Window.  M&ecirc;me une
      t&acirc;che simple comme la lecture d'une page de manuel lancera
      jusqu'&agrave; neuf processus pour la filtrer, la
      d&eacute;compresser, et l'afficher.  Fixer <literal>maxusers</literal>
      &agrave; 64 autorisera jusqu'&agrave; 1044 processus simultan&eacute;s, ce
      qui devrait suffire dans la plupart des cas.  Si, toutefois,
      vous obtenez le message d'erreur tant redout&eacute; <errortype>proc
      table full</errortype> quand vous tentez d'ex&eacute;cuter un nouveau
      programme, ou g&eacute;rez un serveur avec un grand nombre
      d'utilisateurs en simultan&eacute;s (comme <hostid
      role="fqdn">ftp.FreeBSD.org</hostid>), vous pouvez toujours
      augmenter cette valeur et recompiler le noyau.</para>

    <note>
      <para><literal>maxusers</literal> ne limite <emphasis>pas</emphasis>
	le nombre d'utilisateurs qui pourront ouvrir une session sur
	votre machine.  Cette valeur dimensionne simplement
	diff&eacute;rentes tables &agrave; des valeurs raisonnables en fonction
	du nombre maximal d'utilisateur que vous aurez vraisemblablement
	sur votre syst&egrave;me et combien de processus chacun d'entre eux
	pourra utiliser.  Un mot-cl&eacute; qui <emphasis>limite</emphasis>
	le nombre d'<emphasis>utilisateurs distantset de terminaux X</emphasis> en
	simultan&eacute; est <link
	linkend="kernelconfig-ptys"><literal>pseudo-device pty
	16</literal></link>.</para>
    </note>

    <programlisting># Floating point support - do not disable.
device          npx0     at nexus? port IO_NPX irq 13</programlisting>

    <para><literal>npx0</literal> est sous FreeBSD l'interface avec le
      coprocesseur math&eacute;mathique, qu'il soit mat&eacute;riel
      ou &eacute;mul&eacute; par logiciel. Cette option <emphasis>n'est
      pas</emphasis> facultative.</para>

    <programlisting># Pseudo devices - the number indicates how many units to allocate.
pseudo-device   loop          # Network loopback</programlisting>

    <para>C'est l'interface g&eacute;n&eacute;rique en boucle de TCP/IP.
      Si vous employez telnet ou FTP sur <hostid>localhost</hostid>
      (aussi connu en tant qu'adresse <hostid
      role="ipaddr">127.0.0.1</hostid>) la r&eacute;ponse vous parviendra via
      ce pseudo-p&eacute;riph&eacute;rique.  Ceci est
      <emphasis>obligatoire</emphasis>.</para>

    <para>Tout ce qui suit est plus ou moins optionnel.  Voyez les
      notes sous ou &agrave; c&ocirc;t&eacute; de chaque
      option pour plus d'information.</para>

    <programlisting>#To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         #Default places to look for devices.</programlisting>

    <para>Sous &os; 5.X et versions plus r&eacute;centes
      &man.device.hints.5; est utilis&eacute; pour configurer les
      param&egrave;tres des pilotes de p&eacute;riph&eacute;riques.
      Le &man.loader.8; recherchera le fichier
      <filename>/boot/device.hints</filename> au d&eacute;marrage.
      En utilisant l'option <literal>hints</literal> vous pouvez
      compiler ces valeurs en statique dans votre noyau.  Il
      n'est alors pas utile de cr&eacute;er de fichier
      <filename>device.hints</filename> dans
      <filename>/boot</filename>.</para>

    <!-- XXX: Add a comment here that explains when compiling hints
into the kernel is a good idea and why. -->

    <programlisting>#makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols</programlisting>

    <para>Le processus normal de compilation de &os; n'inclus
      pas d'information de d&eacute;bogage lors de la compilation
      du noyau et retire la plupart des symboles une fois
      que l'&eacute;dition de liens du noyau r&eacute;sultant est
      termin&eacute;e, pour &eacute;conomiser de l'espace &agrave;
      l'endroit o&ugrave; il va &ecirc;tre install&eacute;.
      Si vous avez l'intention de tester des noyaux dans la branche
      -CURRENT ou effectuer des modifications personnelles sur
      le noyau &os;, vous pourriez vouloir d&eacute;commenter
      cette ligne.  Cela activera l'utilisation de l'option
      <option>-g</option> qui autorisera les informations de
      d&eacute;bogage quand le noyau sera pass&eacute; &agrave;
      &man.gcc.1;.  La m&ecirc;me chose peut &ecirc;tre
      accomplie par l'option <option>-g</option> de &man.config.8;,
      si vous utilisez la m&eacute;thode &ldquo;traditionnelle&rdquo;
      pour la compilation de vos noyaux (Voir la <xref
      linkend="kernelconfig-building"> pour plus
      d'informations).</para>

    <programlisting>options          MATH_EMULATE      #Support for x87 emulation</programlisting>

    <para>Cette ligne permet au noyau d'&eacute;muler un coprocesseur
      math&eacute;mathique si votre ordinateur n'en dispose pas (386 ou
      486SX).  Si vous avez un 486DX, ou un 386 ou 486SX (avec un
      circuit 387 ou 487 s&eacute;par&eacute;), ou quelque chose de plus
      r&eacute;cent (&pentium;, &pentium;&nbsp;II, etc...), vous pouvez mettre cette
      ligne en commentaire.</para>

    <note>
      <para>Les sous-programmes standards d'&eacute;mulation de coprocesseur
	math&eacute;matique de FreeBSD ne sont <emphasis>pas</emphasis>
	tr&egrave;s pr&eacute;cis.  Si vous n'avez pas de coprocesseur
	math&eacute;matique, et que vous avez besoin d'une meilleure
	pr&eacute;cision, il est recommand&eacute; de changer cette option
	en <literal>GPL_MATH_EMULATE</literal> pour utiliser les
	fonctions math&eacute;matiques GNU, qui ne sont pas incluses par
	d&eacute;faut pour des questions de licence.</para>

      <para>Sous &os;&nbsp;5.X, l'&eacute;mulation de coprocesseur
	math&eacute;matique est d&eacute;sactiv&eacute; par d&eacute;faut,
	comme les plus anciens CPUs qui n'ont pas de support natif
	pour les math&eacute;matiques &agrave; virgule flottante sont
	de moins en moins courants, et qui dans de nombreux cas ils ne
	sont pas support&eacute; par le noyau <filename>GENERIC</filename>
	de &os; sans d'autres options suppl&eacute;mentaires.</para>
    </note>

    <programlisting>options          INET          #InterNETworking</programlisting>

    <para>Support r&eacute;seau.  Conservez-le, m&ecirc;me si vous
      n'envisagez pas de vous connecter &agrave; un r&eacute;seau.
      La plupart des programmes utilisent le r&eacute;seau &ldquo;en
      boucle&rdquo; (i.e., &eacute;tablissent des connexions r&eacute;seau
      avec le PC lui-m&ecirc;me), cette option est donc quasiment
      obligatoire.</para>

    <programlisting>options          INET6          #IPv6 communications protocols</programlisting>

    <para>Ceci active les protocoles de communication IPv6.</para>

    <programlisting>options          FFS          #Berkeley Fast Filesystem
options          FFS_ROOT     #FFS usable as root device [keep this!]</programlisting>

    <para>C'est le syst&egrave;me de fichiers de base sur disque dur.
      Gardez ces options si vous d&eacute;marrez depuis le disque
      dur.</para>

    <note><para>Sous &os;&nbsp;5.X, <literal>FFS_ROOT</literal> n'est
      plus requit.</para></note>

    <programlisting>options          UFS_ACL      #Support for access control lists</programlisting>

    <para>Cette option, uniquement pr&eacute;sente sous &os;&nbsp;5.X,
      active le support des listes de contr&ocirc;le d'acc&egrave;s
      au syst&egrave;me de fichiers (<acronym>ACL</acronym>).
      Elles reposent sur l'utilisation
      d'attributs &eacute;tendus et d'<acronym>UFS2</acronym>,
      cette fonctionnalit&eacute; est d&eacute;crite dans la <xref
      linkend="fs-acl">.  Les <acronym>ACL</acronym>s sont activ&eacute;es
      par d&eacute;faut, et leur support ne devraient pas &ecirc;tre
      retir&eacute; du noyau si elles ont &eacute;t&eacute;
      pr&eacute;c&eacute;demment utilis&eacute;es sur un
      syst&egrave;me de fichiers, &eacute;tant donn&eacute; que cela
      supprimera les listes de contr&ocirc;le d'acc&egrave;s
      changeant alors la fa&ccedil;on dont sont prot&eacute;g&eacute;s
      les fichiers d'une mani&egrave;re impr&eacute;visible.</para>

    <programlisting>options          UFS_DIRHASH  #Improve performance on big directories</programlisting>

    <para>Cette option inclut certaines fonctions pour acc&eacute;l&eacute;rer les
      op&eacute;rations disque sur de gros r&eacute;pertoires,
      aux d&eacute;pens d'employer de la m&eacute;moire suppl&eacute;mentaire.
      Vous conserverez normalement cela pour un gros serveur, ou une
      station de travail tr&egrave;s active, et vous l'enl&egrave;verez
      si vous utilisez FreeBSD sur un petit syst&egrave;me o&ugrave;
      la m&eacute;moire prime et la vitesse d'acc&egrave;s disque est moins
      importante, comme pour un coupe-feu.</para>

    <programlisting>options          SOFTUPDATES  #Enable FFS Soft Updates support</programlisting>

    <para>Cette option rajoutera le support des &ldquo;Soft Updates&rdquo;
      dans le noyau, ce qui aidera l'acc&eacute;l&eacute;ration des
      acc&egrave;s en &eacute;criture sur les disques.
      M&ecirc;me quand cette fonction est fournit par le noyau, elle
      doit &ecirc;tre activ&eacute;e sur chaque disque.
      Regardez le r&eacute;sultat de la
      commande &man.mount.8; pour voir si les &ldquo;Soft Updates&rdquo; sont activ&eacute;es sur les disques de votre syst&egrave;me.
      Si vous ne voyez pas appara&icirc;tre l'option
      <literal>soft-updates</literal> alors vous devrez l'activer en
      utilisant les commandes &man.tunefs.8; (pour les syst&egrave;mes de fichiers existant) ou &man.newfs.8; (pour les nouveaux
      syst&egrave;mes de fichiers).</para>

    <programlisting>options          MFS          #Memory Filesystem
options          MD_ROOT      #MD is a potential root device</programlisting>

    <para>C'est le syst&egrave;me de fichiers en m&eacute;moire.
      C'est essentiellement un disque RAM pour l'archivage rapide de
      fichiers temporaires, utile si vous avez beaucoup d'espace de
      pagination dont vous voulez tirer parti.  Le r&eacute;pertoire
      <filename>/tmp</filename> est un bon candidat pour le montage
      MFS, car de nombreux programmes y stockent leurs donn&eacute;es
      temporaires.  Pour monter un disque RAM MFS sur
      <filename>/tmp</filename>, ajoutez la ligne suivante au fichier
      <filename>/etc/fstab</filename>:</para>

    <informalexample>
      <programlisting>/dev/ad1s2b	/tmp mfs rw 0 0</programlisting>
    </informalexample>

    <para>Maintenant vous avez juste &agrave; red&eacute;marrer ou
      &agrave; ex&eacute;cuter la commande <command>mount
      /tmp</command>.</para>

    <note><para>Sous &os;&nbsp;5.X, le pilote &man.md.4; est
      utilis&eacute; pour les syst&egrave;mes de fichiers en m&eacute;moire
      plut&ocirc;t qu'MFS.  Des informations sur la configuration
      des syst&egrave;mes de fichiers en m&eacute;moire peut &ecirc;tre
      trouv&eacute;es dans les pages de manuel de &man.mdconfig.8;
      et &man.mdmfs.8;, ainsi que dans la section <xref
      linkend="disks-virtual">.  Par cons&eacute;quent, l'option
      <literal>MFS</literal> n'est plus
      support&eacute;e.</para></note>

    <indexterm>
      <primary>options du noyau</primary>
      <secondary>NFS</secondary>
    </indexterm>
    <indexterm>
      <primary>options du noyau</primary>
      <secondary>NFS_ROOT</secondary>
    </indexterm>
    <programlisting>options          NFS          #Network Filesystem
options          NFS_ROOT     #NFS usable as root device, NFS required</programlisting>

    <para>Le syst&egrave;me de fichiers r&eacute;seau.  A moins que vous
      n'envisagiez de monter des partitions d'un serveur de fichiers
      &unix; par l'interm&eacute;diaire d'un r&eacute;seau TCP/IP, vous pouvez
      mettre en commentaire ces options.</para>

    <indexterm>
      <primary>options du noyau</primary>
      <secondary>MSDOSFS</secondary>
    </indexterm>
    <programlisting>options          MSDOSFS      #MSDOS Filesystem</programlisting>

    <para>Le syst&egrave;me de fichiers &ms-dos;.  A moins que vous
      n'envisagiez de monter une partition DOS d'un disque dur au
      d&eacute;marrage, vous pouvez sans risque commenter cette option.
      Le module sera automatiquement charg&eacute; la premi&egrave;re
      fois que vous monterez une partition DOS, comme d&eacute;crit
      plus haut.  Par ailleurs, l'excellent logiciel
      <application>mtools</application> (au catalogue des logiciels
      port&eacute;s) vous permet d'acc&eacute;der &agrave; des disquettes DOS sans avoir
      besoin de les monter (et ne requiert pas non plus
      <literal>MSDOSFS</literal>).</para>

    <programlisting>options          CD9660       #ISO 9660 Filesystem
options          CD9660_ROOT  #CD-ROM usable as root, CD9660 required</programlisting>

    <para>Le syst&egrave;me de fichiers ISO 9660 pour les CDROMs.  Commentez
      ces options si vous n'avez pas de lecteur de CDROM ou que vous
      ne montez qu'occasionnellement des CDROMs (il sera charg&eacute;
      dynamiquement d&egrave;s que vous monterez un CDROM).  Les CDROMs
      audios n'ont pas besoin de ce syst&egrave;me de fichiers.</para>

    <programlisting>options          PROCFS       #Process filesystem</programlisting>

    <para>Le syst&egrave;me de fichiers pour les processus.  C'est un
      &ldquo;pseudo-syst&egrave;me&rdquo; de fichiers mont&eacute; sur
      <filename>/proc</filename> qui permet &agrave; des programmes comme
      &man.ps.1; de vous fournir plus d'informations sur les processus
      qui tournent sur le syst&egrave;me.  Sous &os;&nbsp;5.X,
      l'utilisation de <literal>PROCFS</literal> n'est pas
      n&eacute;cessaire la plupart du temps, comme la majeur partie
      des outils de d&eacute;bogage et de monitoring ont
      &eacute;t&eacute; adapt&eacute;s pour s'ex&eacute;cuter sans
      <literal>PROCFS</literal>.  De plus, les noyaux
      5.X-CURRENT faisant usage de l'option <literal>PROCFS</literal>
      doivent maintenant inclure le support
      <literal>PSEUDOFS</literal>:</para>

    <programlisting>options          PSEUDOFS     #Pseudo-filesystem framework</programlisting>

    <para>L'option <literal>PSEUDOFS</literal> n'est pas disponible
      sous &os;&nbsp;4.X.  Contrairement &agrave; &os;&nbsp;4.X, les
      nouvelles installations de &os;&nbsp;5.X ne monteront
      pas le syst&egrave;me de fichiers virtuel des processus.</para>

    <programlisting>options          COMPAT_43    #Compatible with BSD 4.3 [KEEP THIS!]</programlisting>

    <para>Compatibilit&eacute; avec 4.3BSD.  Conservez cette option; certains
      programmes auront un comportement bizarre si vous la
      commentez.</para>

    <programlisting>options          COMPAT_FREEBSD4     #Compatible with FreeBSD4</programlisting>

    <para>Cette option est n&eacute;cessaires aux syst&egrave;mes
      &i386; et Alpha fonctionnant sous &os;&nbsp;5.X pour supporter
      les applications compil&eacute;es sur d'anciennes version de &os;
      qui utilisent d'anciennes interfaces d'appel syst&egrave;me.
      Il est recommand&eacute; d'utiliser cette option sur tous
      les syst&egrave;mes &i386; et Alpha susceptibles d'ex&eacute;cuter
      d'anciennes applications; les plateformes apparues sous &os;&nbsp;5.0,
      comme l'ia64 et &sparc64;, n'ont pas besoin de cette
      option.</para>

    <programlisting>options          SCSI_DELAY=15000    #Delay (in ms) before probing SCSI</programlisting>

    <para>Cette option oblige le noyau &agrave; attendre 15 secondes avant
      de rechercher les p&eacute;riph&eacute;riques SCSI pr&eacute;sents
      sur votre syst&egrave;me.  Si vous n'avez que des disques IDE,
      vous pouvez l'ignorer, sinon vous voudrez peut-&ecirc;tre
      diminuer cette valeur, &eacute;ventuellement &agrave; 5 secondes,
      pour acc&eacute;l&eacute;rer le d&eacute;marrage du syst&egrave;me.
      Bien s&ucirc;r, si vous le faites, et que FreeBSD a du mal &agrave;
      reconna&icirc;tre vos p&eacute;riph&eacute;riques SCSI, vous
      devrez l'augmenter &agrave; nouveau.</para>

    <programlisting>options          UCONSOLE            #Allow users to grab the console</programlisting>

    <para>Permet aux utilisateurs d'acc&eacute;der &agrave; la
      console, ce qui est utile aux utilisateurs d'X.  Par exemple,
      vous pouvez cr&eacute;er une console <application>xterm</application>
      en tapant <command>xterm -C</command>, qui affichera les sorties de
      &man.write.1;, &man.talk.1;, ainsi que
      tout autre message envoy&eacute; par le noyau &agrave; la console.</para>

    <programlisting>options          USERCONFIG          #boot -c editor</programlisting>

    <note><para>Sous &os;&nbsp;5.X, <literal>UCONSOLE</literal> n'est
      plus n&eacute;cessaire.</para></note>

    <para>Cette option vous permet d'ex&eacute;cuter l'&eacute;diteur de
      configuration &agrave; partir du menu de d&eacute;marrage.</para>

    <programlisting>options          VISUAL_USERCONFIG   #visual boot -c editor</programlisting>

    <para>Cette option vous permet d'ex&eacute;cuter l'&eacute;diteur visuel
      de configuration &agrave; partir du menu de d&eacute;marrage.</para>

    <note><para>A partir de &os;&nbsp;5.0 et versions suivantes,
      les options <literal>USERCONFIG</literal> sont
      d&eacute;pr&eacute;ci&eacute;es en faveur de la nouvelle
      m&eacute;thode &man.device.hints.5;.
      Pour plus d'information sur &man.device.hints.5;, consultez la
      <xref linkend="device-hints">.</para></note>

    <programlisting>options          KTRACE              #ktrace(1) support</programlisting>

    <para>Ceci permet de tracer le processus du noyau, ce qui est
      utile pour le d&eacute;bogage.</para>

    <programlisting>options          SYSVSHM             #SYSV-style shared memory</programlisting>

    <para>Cette option impl&eacute;mente la m&eacute;moire
      partag&eacute;e System V.  L'usage le plus courant qui en est fait est
      l'extension XSHM d'X, dont de nombreux logiciels gourmants en
      graphique tireront automatiquement parti pour fonctionner plus
      vite.  Si vous utilisez X, vous utiliserez absolument cette
      option.</para>

    <programlisting>options          SYSVSEM             #SYSV-style semaphores</programlisting>

    <para>Support des s&eacute;maphores System V.  D'un usage moins courant,
      mais n'augmente la taille du noyau que de quelques centaines
      d'octets.</para>

    <programlisting>options          SYSVMSG             #SYSV-style message queues</programlisting>

    <para>Support des messages System V.  Encore une fois, cela
      n'augmente que de quelques centaines d'octets la taille du
      noyau.</para>

    <note>
      <para>La commande &man.ipcs.1; donnera la liste des processus
	utilisant chacun de ces m&eacute;canismes System V.</para>
    </note>

    <programlisting>options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING</programlisting>

    <para>Extensions temps-r&eacute;el ajout&eacute;es dans la norme
      &posix; 1993.  Certaines applications du catalogue des logiciels
      port&eacute;s les utilisent (comme
      <application>&staroffice;</application>).</para>

    <note><para>Sous &os;&nbsp;5.X, l'ensemble de ces extensions est
      d&eacute;sormais fourni par la seule option
      <literal>_KPOSIX_PRIORITY_SCHEDULING</literal>, et
      <literal>P1003_1B</literal> n'est plus
      n&eacute;cessaire.</para></note>

    <indexterm>
      <primary>options du noyau</primary>
      <secondary>ICMP_BANDLIM</secondary>
    </indexterm>
    <indexterm>
      <primary>d&eacute;ni de service (DoS)</primary>
    </indexterm>
    <programlisting>options		ICMP_BANDLIM		#Rate limit bad replies</programlisting>

    <para>Cette option permet la limitation de la bande passante
      allou&eacute;e aux r&eacute;ponses d'erreurs ICMP.  Vous utiliserez
      normalement cette option car elle aidera &agrave; prot&eacute;ger
      votre machine contre les attaques par d&eacute;ni de
      service.</para>

    <note><para>Sous &os;&nbsp;5.X, cette fonction est activ&eacute;e
      par d&eacute;faut et l'option <literal>ICMP_BANDLIM</literal> n'est
      plus n&eacute;cessaire.</para></note>

    <indexterm>
      <primary>options du noyau</primary>
      <secondary>SMP</secondary>
    </indexterm>
    <programlisting># To make an SMP kernel, the next two are needed
#options        SMP                     # Symmetric MultiProcessor Kernel
#options        APIC_IO                 # Symmetric (APIC) I/O</programlisting>

    <para>Ces deux options sont n&eacute;cessaires pour le support
      SMP.</para>

    <programlisting>device          isa</programlisting>

    <para>Tous les PCs support&eacute;s par FreeBSD ont un contr&ocirc;leur
      ISA.  Si vous avez un IBM PS/2 (Micro Channel Architecture),
      FreeBSD fournit un support limit&eacute; pour l'instant.  Pour plus
      d'informations au sujet du support MC, voir le fichier
      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>

    <programlisting>device          eisa</programlisting>

    <para>Rajoutez cela si vous avez une carte m&egrave;re EISA.
      Cela permet l'auto-d&eacute;tection et la configuration de tous les
      p&eacute;riph&eacute;riques pr&eacute;sents sur le bus
      EISA.</para>

    <programlisting>device          pci</programlisting>

    <para>Ajoutez cette option si vous avez une carte m&egrave;re PCI.
      Cela permet l'auto-d&eacute;tection des cartes PCI et g&egrave;re
      l'interface entre les bus PCI et ISA.</para>

    <programlisting>device          agp</programlisting>

    <para>Ajoutez cette option si vous avez une carte AGP dans votre
      syst&egrave;me.  Cela activera le support AGP, et l'AGP GART pour
      les cartes qui ont cette fonction.</para>

    <programlisting># Floppy drives
device          fdc0        at isa? port IO_FD1 irq 6 drq 2
device          fd0         at fdc0 drive 0
device          fd1         at fdc0 drive 1</programlisting>

    <para>C'est le contr&ocirc;leur de lecteur de disquettes.
      <literal>fd0</literal> correspond au lecteur de disquettes
      <devicename>A:</devicename>, et <literal>fd1</literal> au
      lecteur <devicename>B:</devicename>.</para>

    <programlisting>device          ata</programlisting>

    <para>Ce pilote supporte tous les p&eacute;riph&eacute;riques
      ATA et ATAPI.  Vous n'avez besoin que d'une seule ligne
      <literal>device ata</literal> pour que le noyau d&eacute;tecte tous les
      p&eacute;riph&eacute;riques PCI ATA/ATAPI sur les machines
      modernes.</para>

    <programlisting>device          atadisk                 # ATA disk drives</programlisting>

    <para>Ceci est requis avec <literal>device ata</literal> pour les
      disques ATA.</para>

    <programlisting><anchor id="kernelconfig-atapi">
device          atapicd                 # ATAPI CDROM drives</programlisting>

    <para>Ceci est n&eacute;cessaire avec <literal>device ata</literal>
      pour le support des lecteurs de CDROM ATAPI.</para>

    <programlisting>device          atapifd                 # ATAPI floppy drives</programlisting>

    <para>Ceci est n&eacute;cessaire avec <literal>device ata</literal>
      pour le support des lecteurs de disquettes ATAPI.</para>

    <programlisting>device          atapist                 # ATAPI tape drives</programlisting>

    <para>Ceci est n&eacute;cessaire avec <literal>device ata</literal>
      pour le support des lecteurs de bande ATAPI.</para>

    <programlisting>options         ATA_STATIC_ID           #Static device numbering</programlisting>

    <para>Cela rend la num&eacute;rotation des p&eacute;riph&eacute;riques
      statique (comme l'ancien pilote de p&eacute;riph&eacute;rique)
      ou sinon l'allocation des num&eacute;ros de p&eacute;riph&eacute;riques
      sera dynamique.</para>

    <programlisting># ATA and ATAPI devices
device          ata0        at isa? port IO_WD1 irq 14
device          ata1        at isa? port IO_WD2 irq 15</programlisting>

    <para>Utilisez ces options pour les anciens syst&egrave;mes
      non-PCI.</para>

    <programlisting># SCSI Controllers
device          ahb        # EISA AHA1742 family
device          ahc        # AHA2940 and onboard AIC7xxx devices
device          amd        # AMD 53C974 (Teckram DC-390(T))
device          dpt        # DPT Smartcache - See LINT for options!
device          isp        # Qlogic family
device          ncr        # NCR/Symbios Logic
device          sym        # NCR/Symbios Logic (newer chipsets)

device          adv0       at isa?
device          adw
device          bt0        at isa?
device          aha0       at isa?
device          aic0       at isa?</programlisting>

    <para>Contr&ocirc;leurs SCSI.  Mettez en commentaires ceux que vous
      n'avez pas sur votre syst&egrave;me.  Si vous n'avez qu'un
      syst&egrave;me IDE, vous pouvez supprimer toutes ces lignes.</para>

    <programlisting># SCSI peripherals
device          scbus      # SCSI bus (required)
device          da         # Direct Access (disks)
device          sa         # Sequential Access (tape etc)
device          cd         # CD
device          pass       # Passthrough device (direct SCSI
access)</programlisting>

    <para>P&eacute;riph&eacute;riques SCSI.  A nouveau, mettez en
      commentaires tous ceux que vous n'avez pas, ou si vous n'avez
      que du mat&eacute;riel IDE, vous pouvez tous les supprimer.</para>

    <programlisting># RAID controllers
device          ida        # Compaq Smart RAID
device          amr        # AMI MegaRAID
device          mlx        # Mylex DAC960 family</programlisting>

    <para>Contr&ocirc;leurs RAID support&eacute;s.  Si vous n'avez aucun de ces
      derniers dans votre syst&egrave;me, vous pouvez les mettre
      en commentaires ou les supprimer.</para>

    <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc0    at isa? port IO_KBD</programlisting>

    <para>Le contr&ocirc;leur du clavier (<literal>atkbdc</literal>) permet
      de g&eacute;rer les E/S du clavier AT et des
      p&eacute;riph&eacute;riques de pointage PS/2.  Ce contr&ocirc;leur
      est n&eacute;cessaire au pilote de p&eacute;riph&eacute;rique
      du clavier (<literal>atkbd</literal>) et celui des
      p&eacute;riph&eacute;riques de pointage PS/2
      (<literal>psm</literal>).</para>

    <programlisting>device          atkbd0     at atkbdc? irq 1</programlisting>

    <para>Le pilote de p&eacute;riph&eacute;rique <literal>atkbd</literal>,
      associ&eacute; au contr&ocirc;leur <literal>atkbdc</literal>, fournit
      un acc&egrave;s au clavier AT 84 touches ou au clavier AT &eacute;tendu qui
      est connect&eacute; au contr&ocirc;leur de clavier de la machine.</para>

    <programlisting>device          psm0       at atkbdc? irq 12</programlisting>

    <para>Utilisez ce p&eacute;riph&eacute;rique si votre souris se
      branche sur le port PS/2.</para>

    <programlisting>device          vga0        at isa?</programlisting>

    <para>Pilote de la carte graphique.</para>

    <programlisting># splash screen/screen saver
pseudo-device          splash</programlisting>

    <para>Ecran/banni&egrave;re de d&eacute;marrage.  Les
      &eacute;conomiseurs d'&eacute;cran ont &eacute;galement
      besoin de ce pseudo-p&eacute;riph&eacute;rique.</para>

    <programlisting># syscons is the default console driver, resembling an SCO console
device          sc0          at isa?</programlisting>

    <para><literal>sc0</literal> est le pilote par d&eacute;faut pour la
      console, qui ressemble &agrave; une console SCO.  Comme la plupart
      des programmes en mode plein-&eacute;cran acc&egrave;dent
      &agrave; la console par l'interm&eacute;diaire d'une base de
      donn&eacute;es
      de description des terminaux comme <filename>termcap</filename>,
      cela n'a gu&egrave;re d'importance que vous choisissiez ce pilote
      ou <literal>vt0</literal>, le pilote compatible
      <literal>VT220</literal>.  Quand vous ouvrez une session,
      positionnez votre variable d'environnement <envar>TERM</envar> &agrave;
      <literal>scoansi</literal> si vous avez des probl&egrave;mes pour
      utiliser des programmes en mode plein-&eacute;cran avec cette
      console.</para>

    <programlisting># Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device          vt0     at isa?
#options         XSERVER          # support for X server on a vt console
#options         FAT_CURSOR       # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options         PCVT_SCANSET=2   # IBM keyboards are non-std</programlisting>

    <para>C'est le pilote de console compatible VT220, et,
      r&eacute;trospectivement, compatible VT100/102.  Il fonctionne
      bien sur certains ordinateurs portables qui sont mat&eacute;riellement
      incompatibles avec le pilote <literal>sc0</literal>.  Comme
      pr&eacute;c&eacute;demment, positionnez la variable d'environnement
      <envar>TERM</envar> lorsque que vous ouvrez une session,
      mais cette fois-ci &agrave; <literal>vt100</literal> ou
      <literal>vt220</literal>.  Ce pilote peut aussi s'av&eacute;rer
      utile quand vous vous connectez &agrave; un grand nombre de
      machines diff&eacute;rentes par le r&eacute;seau sur lesquelles
      les entr&eacute;es pour le p&eacute;riph&eacute;rique
      <literal>sc0</literal> ne sont souvent pas d&eacute;finies dans
      leurs fichiers <filename>termcap</filename> ou
      <filename>terminfo</filename> &mdash; alors que le terminal
      <literal>vt100</literal> devrait &ecirc;tre disponible sur
      pratiquement toutes les plates-formes.</para>

    <programlisting># Power management support (see LINT for more options)
device          apm0     at nexus? disable flags 0x20  # Advanced Power Management</programlisting>

    <para>&ldquo;Advanced Power Management support&rdquo; - gestion
      avanc&eacute;e de l'&eacute;nergie.  Utile pour les ordinateurs
      portables.</para>

    <programlisting># PCCARD (PCMCIA) support
device          card
device          pcic0    at isa? irq 10 port 0x3e0 iomem 0xd0000
device          pcic1    at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting>

    <para>Support PCMCIA.  Vous en avez besoin si vous utilisez un
      ordinateur portable.</para>

    <programlisting># Serial (COM) ports
device          sio0     at isa? port IO_COM1 flags 0x10 irq 4
device          sio1     at isa? port IO_COM2 irq 3
device          sio2     at isa? disable port IO_COM3 irq 5
device          sio3     at isa? disable port IO_COM4 irq 9</programlisting>

    <para>Il y a quatre ports s&eacute;ries, appel&eacute;s
      COM1 &agrave; COM4 dans le monde &ms-dos;/&windows;.</para>

    <note>
      <para>Si vous avez un modem interne sur le port COM4 et un port
	s&eacute;rie COM2, vous devrez changer l'IRQ du modem en 2 (pour
	d'obscures raisons techniques, IRQ 2 = IRQ 9) pour y acc&eacute;der
	avec FreeBSD.  Si vous avez une carte s&eacute;rie multi-ports,
	consultez la page de manuel de &man.sio.4; pour plus
	d'informations sur les bonnes valeurs pour ces lignes.
	Certaines cartes vid&eacute;o (notamment celle &agrave; base de
	circuits S3) utilisent des adresses d'E/S sous la forme
	<literal>0x*2e8</literal>, et comme de nombreuses cartes
	s&eacute;ries bon march&eacute; de d&eacute;codent pas
	compl&egrave;tement l'espace d'adresse d'E/S 16 bits, il y a
	aura des conflits avec ces cartes, rendant le port COM4
	pratiquement inutilisable.</para>

      <para>Chaque port s&eacute;rie doit avoir une IRQ unique (&agrave;
	moins que vous n'utilisiez une carte multi-ports qui autorise
	le partage d'interruption), donc les IRQs par d&eacute;faut pour
	les ports COM3 et COM4 ne peuvent &ecirc;tre
	utilis&eacute;es.</para>
    </note>

    <programlisting># Parallel port
device          ppc0    at isa? irq 7</programlisting>

    <para>C'est l'interface parall&egrave;le du bus ISA.</para>

    <programlisting>device          ppbus      # Parallel port bus (required)</programlisting>

    <para>Fournit le support pour le bus du port parall&egrave;le.</para>

    <programlisting>device          lpt        # Printer</programlisting>

    <para>Support pour les imprimantes parall&egrave;les.</para>

    <note>
      <para>Les trois lignes pr&eacute;c&eacute;dentes sont
	n&eacute;cessaires pour permettre le support des imprimantes
	parall&egrave;les.</para>
    </note>

    <programlisting>device          plip       # TCP/IP over parallel</programlisting>

    <para>C'est le pilote pour l'interface r&eacute;seau sur port
      parall&egrave;le.</para>

    <programlisting>device          ppi        # Parallel port interface device</programlisting>

    <para>Port d'E/S d'usage g&eacute;n&eacute;ral (&ldquo;geek
      port&rdquo;) + port d'E/S IEEE1284.</para>

    <programlisting>#device         vpo        # Requires scbus and da</programlisting>

    <indexterm><primary>lecteur zip</primary></indexterm>
    <para>Ceci est pour le lecteur Zip de Iomega.  Les options
      <literal>scbus</literal> et <literal>da</literal> sont
      &eacute;galement requises.  Les meilleures performances sont
      obtenues avec les ports configur&eacute;s dans le mode EPP 1.9.</para>

    <programlisting># PCI Ethernet NICs.
device          de         # DEC/Intel DC21x4x (<quote>Tulip</quote>)
device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
device          tx         # SMC 9432TX (83c170 <quote>EPIC</quote>)
device          vx         # 3Com 3c590, 3c595 (<quote>Vortex</quote>)
device          wx         # Intel Gigabit Ethernet Card (<quote>Wiseman</quote>)</programlisting>

    <para>Divers pilotes de cartes r&eacute;seaux PCI.  Mettez en
      commentaires ou supprimer les lignes de celles qui ne sont pas
      pr&eacute;sentes sur votre syst&egrave;me.</para>

    <programlisting># PCI Ethernet NICs that use the common MII bus controller code.
device          miibus     # MII bus support</programlisting>

    <para>Le support du bus MII est n&eacute;cessaire pour certaines
      cartes Ethernet PCI 10/100, &agrave; savoir celles qui utilisent des
      interfaces compatibles MII ou impl&eacute;mentent une gestion de
      l'interface op&eacute;rant comme le bus MII.  Ajouter
      <literal>device miibus</literal> &agrave; la configuration du noyau
      int&egrave;gre le support pour l'API miibus g&eacute;n&eacute;rique et
      tous les pilotes d'interfaces PHY, incluant un pilote
      g&eacute;n&eacute;rique pour les interfaces PHYs qui ne sont pas
      sp&eacute;cifiquements g&eacute;r&eacute;es par un
      pilote individuel.</para>

    <programlisting>device          dc         # DEC/Intel 21143 and various workalikes
device          rl         # RealTek 8129/8139
device          sf         # Adaptec AIC-6915 (<quote>Starfire</quote>)
device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
device          ste        # Sundance ST201 (D-Link DFE-550TX)
device          tl         # Texas Instruments ThunderLAN
device          vr         # VIA Rhine, Rhine II
device          wb         # Winbond W89C840F
device          xl         # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting>

    <para>Pilotes qui utilisent le code du contr&ocirc;leur du bus
      MII.</para>

    <programlisting># ISA Ethernet NICs.
device          ed0    at isa? port 0x280 irq 10 iomem 0xd8000
device          ex
device          ep
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device          wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device          an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device          ie0    at isa? port 0x300 irq 10 iomem 0xd0000
device          fe0    at isa? port 0x300
device          le0    at isa? port 0x300 irq 5 iomem 0xd0000
device          lnc0   at isa? port 0x280 irq 10 drq 0
device          cs0    at isa? port 0x300
device          sn0    at isa? port 0x300 irq 10
# requires PCCARD (PCMCIA) support to be activated
#device         xe0    at isa?</programlisting>

    <para>Pilotes pour les cartes Ethernet ISA.  Consultez le fichier
      <filename>/usr/src/sys/i386/conf/LINT</filename> pour savoir
      quelles cartes sont support&eacute;es et par quel pilote.</para>

    <programlisting>pseudo-device   ether         # Ethernet support</programlisting>

    <para><literal>ether</literal> ne sert que si vous avez une carte
      Ethernet.  Cela int&egrave;gre le code g&eacute;n&eacute;rique
      pour le protocole Ethernet.</para>

    <programlisting>pseudo-device   sl      1     # Kernel SLIP</programlisting>

    <para><literal>sl</literal> est le support pour le protocole SLIP.
      Il a &eacute;t&eacute; presque enti&egrave;rement supplant&eacute;
      par le protocole PPP, plus facile &agrave; mettre en oeuvre, mieux
      adapt&eacute; aux connexions par modem, et aussi plus puissant.
      Le <replaceable>nombre</replaceable> apr&egrave;s
      <literal>sl</literal> d&eacute;finit le nombre maximum de connexions
      SLIP simultan&eacute;es support&eacute;.</para>

    <programlisting>pseudo-device   ppp     1     # Kernel PPP</programlisting>

    <para>C'est le support int&eacute;gr&eacute; au noyau du protocole PPP
      pour les connexions par modem.  Il y a aussi une version de PPP
      sous forme de programme utilisateur qui utilise
      <literal>tun</literal> et offre plus de souplesse et de
      possibilit&eacute;s comme la connexion &agrave; la demande.  Le
      <replaceable>nombre</replaceable> apr&egrave;s
      <literal>ppp</literal> d&eacute;finit le nombre maximum support&eacute;
      de connexions PPP simultan&eacute;es.</para>

    <programlisting>pseudo-device   tun           # Packet tunnel.</programlisting>

    <para>Ceci est utilis&eacute; par le programme PPP en mode
      utilisateur.  Le <replaceable>nombre</replaceable> apr&egrave;s
      <literal>tun</literal> d&eacute;finit le nombre maximum de sessions PPP
      simultan&eacute;es support&eacute;.  Voyez la section <link
      linkend="userppp">PPP</link> de ce manuel pour plus
      d'informations.</para>

    <programlisting><anchor id="kernelconfig-ptys">
pseudo-device   pty           # Pseudo-ttys (telnet etc)</programlisting>

    <para>C'est un &ldquo;pseudo-terminal&rdquo; ou un port simulant
      une session.  Il est utilis&eacute; par les sessions
      <command>telnet</command> et <command>rlogin</command>
      entrantes, par <application>xterm</application>, et d'autres
      applications comme <application>Emacs</application>.  Le
      <replaceable>nombre</replaceable> apr&egrave;s
      <literal>pty</literal> indique le nombre de
      <literal>pty</literal>s &agrave; cr&eacute;er.
      Si vous avez besoin de plus que les 16
      fen&ecirc;tres <application>xterm</application> et/ou connexions
      &agrave; distance simultan&eacute;es par d&eacute;faut, veillez
      &agrave; augmenter ce nombre en cons&eacute;quence, jusqu'&agrave;
      un maximum de 256.</para>

    <programlisting>pseudo-device   md            # Memory <quote>disks</quote></programlisting>

    <para>Pseudo-p&eacute;riph&eacute;rique de disque
      m&eacute;moire.</para>

    <programlisting>pseudo-device   gif</programlisting>

    <para>ou</para>

    <programlisting>pseudo-device   gif     4     # IPv6 and IPv4 tunneling</programlisting>

    <para>Ceci impl&eacute;mente l'encapsulation du protocole IPv6 par
      dessus l'IPv4, l'IPv4 par dessus l'IPv6, l'encapsulation IPv4
      par dessus l'IPv4, et IPv6 par dessus IPv6.  Avec FreeBSD&nbsp;4.4 le
      p&eacute;riph&eacute;rique <literal>gif</literal>
      &ldquo;s'auto-duplique&rdquo; et vous devriez utiliser le
      premier exemple (sans le nombre apr&egrave;s <literal>gif</literal>).
      Les versions ant&eacute;rieures de FreeBSD n&eacute;cessitent
      ce nombre.</para>

    <programlisting>pseudo-device   faith   1     # IPv6-to-IPv4 relaying (translation)</programlisting>

    <para>Ce pseudo-p&eacute;riph&eacute;rique capture les paquets qui lui sont
      envoy&eacute;s et les d&eacute;tourne vers le &ldquo;daemon&rdquo; de
      translation IPv4/IPv6.</para>

    <programlisting># The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device   bpf           # Berkeley packet filter</programlisting>

    <para>C'est le filtre de paquets de Berkeley.  Ce
      pseudo-p&eacute;riph&eacute;rique permet de placer les interfaces
      en mode &ldquo;promiscuous&rdquo; (indiscret), pour capturer
      chaque paquet sur r&eacute;seau de diffusion (e.g., un r&eacute;seau
      Ethernet).  Ces paquets peuvent &ecirc;tre enregistr&eacute;s sur
      le disque et/ou examin&eacute;s avec le programme
      &man.tcpdump.1;.</para>

    <note>
      <para>Le pseudo-p&eacute;riph&eacute;rique <literal>bpf</literal>
	est &eacute;galement utilis&eacute; par &man.dhclient.8; pour
	obtenir une adresse IP du routeur par d&eacute;faut (passerelle) et
	ainsi de suite.  Si vous utilisez DHCP, conservez cette ligne
	non comment&eacute;e.</para>
    </note>

    <programlisting># USB support
#device         uhci          # UHCI PCI-&gt;USB interface
#device         ohci          # OHCI PCI-&gt;USB interface
#device         usb           # USB Bus (required)
#device         ugen          # Generic
#device         uhid          # <quote>Human Interface Devices</quote>
#device         ukbd          # Keyboard
#device         ulpt          # Printer
#device         umass         # Disks/Mass storage - Requires scbus and da
#device         ums           # Mouse
# USB Ethernet, requires mii
#device         aue           # ADMtek USB ethernet
#device         cue           # CATC USB ethernet
#device         kue           # Kawasaki LSI USB ethernet</programlisting>

    <para>Support pour divers p&eacute;riph&eacute;riques USB.</para>

    <para>Pour plus d'informations et pour avoir la liste de
      p&eacute;riph&eacute;riques suppl&eacute;mentaires support&eacute;s par
      FreeBSD, voyez le fichier
      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>

    <sect2>
      <title>Configurations m&eacute;moire importantes
	(<acronym>PAE</acronym>)</title>
      <indexterm>
	<primary>
	  Extensions d'adressage physique&mdash;&ldquo;Physical
	  Address Extensions&rdquo; (<acronym>PAE</acronym>)
	</primary>
	<secondary>
	  Configurations m&eacute;moire importantes
	</secondary>
      </indexterm>

      <para>Les machines &agrave; configuration m&eacute;moire
	importante ont besoin de pouvoir acc&eacute;der &agrave; plus
	d'espace m&eacute;moire utilisateur et noyau que la limite des
	4 gigaoctets de l'espace d'adresse noyau+utilisateur
	(&ldquo;Kernel Virtual
	Address&rdquo;&mdash;<acronym>KVA</acronym>).  En raison de
	cette limite, Intel a ajout&eacute; le support d'adresses
	physiques sur 36&nbsp;bits pour l'espace d'adresses dans les
	familles de microprocesseurs &pentium; Pro et
	suivantes.</para>

      <para>L'extension de l'adressage physique&mdash,&ldquo;Physical
	Address Extension&rdquo; (<acronym>PAE</acronym>) est une
	caract&eacute;ristique des microprocesseurs &intel; &pentium;
	Pro et suivants autorisant les configurations m&eacute;moires
	jusqu'&agrave; 64 gigaoctets.  &os; fournit un support pour
	cette carat&eacute;ristique via l'option de configuration du
	noyau <option>PAE</option>, disponible sous les version 4.X de
	&os; depuis la 4.9-RELEASE et sous &os;&nbsp;5.X depuis la
	5.1-RELEASE.  En raison des limitations de l'architecture
	m&eacute;moire &intel;, aucune distinction n'est faite entre
	la m&eacute;moire au-dessus et en-dessous de 4 gigaoctets.  La
	m&eacute;moire allou&eacute;e au-dessus de 4 gigaoctets est
	simplement ajout&eacute;e &agrave; l'ensemble de la
	m&eacute;moire disponible.</para>

      <para>Pour activer le support <acronym>PAE</acronym> dans le
	noyau, ajoutez simplement la ligne suivante dans votre fichier
	de configuration du noyau:</para>

      <programlisting>options		PAE</programlisting>

      <note>
	<para>Le support <acronym>PAE</acronym> sous &os; est
	  uniquement disponible pour les processeurs IA-32
	  d'&intel;.  Il doit &ecirc;tre not&eacute; que le support
	  <acronym>PAE</acronym> sous &os; n'a pas &eacute;t&eacute;
	  &eacute;norm&eacute;ment test&eacute;, et devrait &ecirc;tre
	  consid&eacute;r&eacute; comme b&ecirc;ta compar&eacute; aux
	  autres fonctionnalit&eacute;s stables de &os;.</para>
      </note>

      <para>Le support <acronym>PAE</acronym> sous &os; a quelques
	limitations:</para>

      <itemizedlist>
	<listitem>
	  <para>Un processus est incapable d'acc&eacute;der &agrave;
	    plus de 4 gigaoctets d'espace m&eacute;moire.</para>
	</listitem>

	<listitem>
	  <para>Les modules <acronym>KLD</acronym> ne peuvent
	    &ecirc;tre charg&eacute;s dans un noyau avec
	    <acronym>PAE</acronym> activ&eacute;, en raison des
	    diff&eacute;rences entre la structure d'un module et du
	    noyau.</para>
	</listitem>

	<listitem>
	  <para>Les pilotes de p&eacute;riph&eacute;riques qui
	    n'utilisent pas l'interface &man.bus.dma.9;
	    seront &agrave; l'origine de corruption de donn&eacute;es
	    avec un noyau <acronym>PAE</acronym> et ne sont pas
	    recommand&eacute;s.  Pour cette raison, le fichier de
	    configuration du noyau avec support
	    <filename>PAE</filename> qui est fourni avec
	    &os;&nbsp;5.X exclut tous les pilotes connus
	    pour ne pas fonctionner avec un noyau avec support
	    <acronym>PAE</acronym>.</para>
	</listitem>

	<listitem>
	  <para>Certains param&egrave;tres modifiables du
	    syst&egrave;me d&eacute;terminent l'utilisation des
	    ressources m&eacute;moire par la quantit&eacute; de la
	    m&eacute;moire physique disponible.  De tels
	    param&egrave;tres peuvent &ecirc;tre inutilement
	    sur-allou&eacute;s en raison de la grande quantit&eacute; de
	    m&eacute;moire d'un syst&egrave;me <acronym>PAE</acronym>.
	    Un bon exemple est le &ldquo;sysctl&rdquo;
	    <option>kern.maxvnodes</option>, qui contr&ocirc;le le
	    nombre maximal de &ldquo;vnodes&rdquo; allou&eacute;s par le
	    noyau.  Il est recommand&eacute; d'ajuster ce dernier et les
	    autres param&egrave;tres du m&ecirc;me genre &agrave; des
	    valeurs raisonnables.</para>
	</listitem>

	<listitem>
	  <para>Il pourra &ecirc;tre n&eacute;cessaire d'augmenter l'espace
	    d'adressage virtuel du noyau (&ldquo;kernel virtual
	    address&rdquo;&mdash;<acronym>KVA</acronym>) ou de
	    r&eacute;duire le montant de la ressource sp&eacute;cifique
	    du noyau qui est fortement utilis&eacute;e (voir plus haut)
	    afin d'&eacute;viter l'&eacute;puisement de l'espace
	    <acronym>KVA</acronym>.  L'option du noyau
	    <option>KVA_PAGES</option> peut &ecirc;tre employ&eacute;e
	    pour augmenter l'espace <acronym>KVA</acronym>.</para>
	</listitem>
      </itemizedlist>

      <para>Pour des consid&eacute;rations de performance et de
	stabilit&eacute;, il est recommand&eacute; de consulter la
	page de manuel &man.tuning.7;.  La page de manuel
	&man.pae.4; contient des informations &agrave; jour
	sur le support <acronym>PAE</acronym> sous &os;.</para>
    </sect2>
  </sect1>

  <sect1 id="kernelconfig-nodes">
    <title>Cr&eacute;er les fichiers sp&eacute;ciaux de
      p&eacute;riph&eacute;riques</title>

    <indexterm><primary>fichiers sp&eacute;ciaux de
      p&eacute;riph&eacute;riques</primary></indexterm>
    <indexterm>
      <primary><command>MAKEDEV</command></primary>
    </indexterm>

    <note><para>Si vous utilisez FreeBSD&nbsp;5.0 ou une version
      ult&eacute;rieure, vous pouvez sans risque passer cette
      section.  Ces versions utilisent &man.devfs.5; pour
      allouer les fichiers sp&eacute;ciaux de
      p&eacute;riph&eacute;rique de fa&ccedil;on transparente
      pour l'utilisateur.</para></note>

    <para>A pratiquement chaque p&eacute;riph&eacute;rique
      correspond un &ldquo;noeud&rdquo; (ou fichier sp&eacute;cial de
      p&eacute;riph&eacute;rique) dans le r&eacute;pertoire
      <filename>/dev</filename>.
      Ces fichiers sp&eacute;ciaux ressemblent &agrave; des fichiers
      ordinaires, mais sont en fait des points d'entr&eacute;e particuliers
      dans le noyau que les programmes utilisent pour acc&eacute;der aux
      p&eacute;riph&eacute;riques.  La proc&eacute;dure
      <filename>/dev/MAKEDEV</filename>, qui est ex&eacute;cut&eacute;e
      &agrave; la premi&egrave;re installation du
      syst&egrave;me d'exploitation, cr&eacute;e la plupart des fichiers
      sp&eacute;ciaux de p&eacute;riph&eacute;riques support&eacute;s.
      Cependant, elle ne les cr&eacute;e pas <emphasis>tous</emphasis>,
      donc quand vous ajoutez le support pour un nouveau
      p&eacute;riph&eacute;rique, cela vaut la peine de
      v&eacute;rifier que les entr&eacute;es ad&eacute;quates
      sont dans ce r&eacute;pertoire , et sinon, ajoutez-les.
      Voici un exemple simple:</para>

    <para>Supposons que vous ajoutez au noyau le support du lecteur de
      CD-ROMs IDE.  La ligne pour l'ajouter est:</para>

    <programlisting>device acd0</programlisting>

    <para>Cela signifie que vous devrez chercher des entr&eacute;es
      commen&ccedil;ant par <filename>acd0</filename> dans le r&eacute;pertoire
      <filename>/dev</filename>, &eacute;ventuellement suivies par une lettre,
      comme <literal>c</literal>,, ou pr&eacute;c&eacute;d&eacute;es
      par la lettre <literal>r</literal>, qui d&eacute;signe un
      p&eacute;riph&eacute;rique en mode caract&egrave;re - &ldquo;raw&rdquo;.
      S'il s'av&egrave;re que ces fichiers n'existent pas, vous devez
      vous rendre dans le r&eacute;pertoire <filename>/dev</filename>
      et taper:</para>

    <indexterm>
      <primary><command>MAKEDEV</command></primary></indexterm>
    <screen>&prompt.root; <userinput>sh MAKEDEV acd0</userinput></screen>

    <para>Quand la proc&eacute;dure s'ach&egrave;ve, vous trouverez qu'il
      y a d&eacute;sormais des entr&eacute;es <filename>acd0c</filename>
      et <filename>racd0c</filename> dans <filename>/dev</filename>,
      ce qui confirme qu'elle a bien fonctionn&eacute;.</para>

    <para>Pour les cartes sons, la commande suivante cr&eacute;e les
      entr&eacute;es ad&eacute;quates:</para>

    <screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>

    <note>
      <para>Quand vous cr&eacute;ez des noeuds pour les
	p&eacute;riph&eacute;riques comme les cartes sons, si d'autres
	personnes ont acc&egrave;s &agrave; votre machine, il est peut
	&ecirc;tre
	souhaitable de prot&eacute;ger ces p&eacute;riph&eacute;riques
	d'un acc&egrave;s depuis l'ext&eacute;rieur en les ajoutant au
	fichier <filename>/etc/fbtab</filename>.  Voir la page de manuel
	&man.fbtab.5; pour plus d'informations.</para>
    </note>

    <para>Suivez cette simple proc&eacute;dure pour tous les autres
      p&eacute;riph&eacute;riques absents du noyau
      <filename>GENERIC</filename> pour lesquels les entr&eacute;es
      n'existent pas encore.</para>

    <note>
      <para>Tous les contr&ocirc;leurs SCSI utilisent le m&ecirc;me
	ensemble d'entr&eacute;es dans <filename>/dev</filename>, vous n'avez
	donc pas besoin de les cr&eacute;er.  Egalement, les cartes
	r&eacute;seaux et les pseudo-p&eacute;riph&eacute;riques SLIP/PPP
	n'ont pas d'entr&eacute;es dans <filename>/dev</filename>, vous
	n'avez donc pas &agrave; vous en pr&eacute;occuper.</para>
    </note>
  </sect1>

  <sect1 id="kernelconfig-trouble">
    <title>Si quelque chose se passe mal</title>

    <para>Il y a cinq types de probl&egrave;mes qui peuvent survenir lors de
      la compilation d'un noyau sur mesure.  Ce sont:</para>

    <variablelist>
      <varlistentry>
	<term>La commande <command>config</command> &eacute;choue:</term>

	<listitem>
	  <para>Si la commande &man.config.8; &eacute;choue quand
	    vous lui passez en param&egrave;tre la description de votre
	    noyau, vous avez probablement fait une simple erreur
	    quelque part.  Heureusement &man.config.8;
	    affichera le num&eacute;ro de la ligne qui lui a pos&eacute;
	    probl&egrave;me, vous pouvez donc vous y r&eacute;f&eacute;rer
	    rapidement avec
	    <application>vi</application>.  Par exemple, si vous avez:</para>

	  <screen>config: line 17: syntax error</screen>

	  <para>Vous pouvez aller directement au probl&egrave;me dans
	    <application>vi</application> en tapant <command>17G</command>
	    en mode commande.  V&eacute;rifiez que le mot-cl&eacute; est
	    correctement &eacute;crit, en le comparant avec le noyau
	    <filename>GENERIC</filename> ou une autre
	    r&eacute;f&eacute;rence.</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>La commande <command>make</command> &eacute;choue:</term>

	<listitem>
	  <para>Si la commande <command>make</command> &eacute;choue,
	    cela signale habituellement une erreur dans la description
	    de votre noyau, mais pas suffisamment s&eacute;rieuse pour que
	    la commande &man.config.8; la d&eacute;tecte.
	    A nouveau, v&eacute;rifiez votre fichier de configuration, et si
	    vous n'arrivez toujours pas &agrave; r&eacute;soudre le
	    probl&egrave;me, envoyez un courrier &eacute;lectronique &agrave; la
	    &a.questions; en joignant votre fichier de configuration
	    du noyau, le diagnostic devrait &ecirc;tre rapide.</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>L'installation du nouveau noyau &eacute;choue:</term>

	<listitem>
	  <para>Si le noyau se compile sans probl&egrave;me, mais ne peut
	    &ecirc;tre install&eacute; (la commande <command>make
	    install</command> ou <command>make installkernel</command>
	    &eacute;choue), la premi&egrave;re chose &agrave; v&eacute;rifier
	    est si votre syst&egrave;me fonctionne &agrave; un niveau de
	    s&eacute;curit&eacute; &eacute;gal &agrave; 1 ou
	    sup&eacute;rieur (voir &man.init.8;).  L'installation
	    du noyau tente de retirer le drapeau rendant votre
	    noyau actuel immuable et positionner ce drapeau sur le
	    nouveau noyau.  Comme le niveau de s&eacute;curit&eacute; 1
	    et sup&eacute;rieur emp&ecirc;che de modifier l'&eacute;tat
	    immuable d'un fichier du syst&egrave;me, l'installation du noyau
	    doit &ecirc;tre effectu&eacute;e au niveau de
	    s&eacute;curit&eacute; 0 ou inf&eacute;rieur.</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>Le noyau ne d&eacute;marre pas:<anchor
	  id="kernelconfig-noboot"></term>

	<listitem>
	  <para>Si votre nouveau noyau ne d&eacute;marre pas, ou ne
	    reconna&icirc;t pas vos p&eacute;riph&eacute;riques,
	    ne paniquez pas!  Heureusement, FreeBSD dispose d'un
	    excellent m&eacute;canisme pour r&eacute;cup&eacute;rer si le
	    noyau ne fonctionne pas.  S&eacute;lectionnez simplement le noyau,
	    &agrave; partir duquel vous d&eacute;sirez d&eacute;marrer,
	    &agrave; l'invite du chargeur de FreeBSD.  Vous pouvez y
	    acc&eacute;der quand le syst&egrave;me d&eacute;compte &agrave;
	    partir de 10.  Au lieu de d'appuyez sur
	    <keycap>Entr&eacute;e</keycap>, appuyez sur une autre touche,
	    puis tapez <command>unload</command> et ensuite
	    <command>boot <replaceable>kernel.old</replaceable></command>,
	    ou le nom de fichier d'un autre noyau qui pourra d&eacute;marrer
	    proprement.  Quand on reconfigure un noyau, il est
	    toujours bon de conserver &agrave; port&eacute;e de la main un
	    noyau dont on sait qu'il fonctionne.</para>

	  <para>Apr&egrave;s avoir d&eacute;marr&eacute; avec un
	    noyau en &eacute;tat de marche, vous pouvez rev&eacute;rifier votre
	    fichier de configuration et essayer de recompiler &agrave;
	    nouveau votre noyau.  Une ressource utile est le fichier
	    <filename>/var/log/messages</filename> qui enregistre,
	    entre autres, tous les messages du noyau &agrave; chaque
	    d&eacute;marrage r&eacute;ussi.  En outre, la commande
	    &man.dmesg.8; affichera les messages du noyau pour le
	    dernier d&eacute;marrage.</para>

	  <note>
	    <para>Si vous avez des difficult&eacute;s &agrave; compiler
	      un noyau, veillez &agrave; conserver un noyau
	      <filename>GENERIC</filename>, ou un autre noyau dont
	      vous savez qu'il fonctionne, sous la main, avec un nom
	      diff&eacute;rent de sorte qu'il ne soit pas
	      &eacute;cras&eacute; &agrave; la prochaine compilation.
	      Vous ne pouvez pas faire confiance au noyau
	      <filename>kernel.old</filename> parce qu'en installant
	      un nouveau noyau, <filename>kernel.old</filename> est
	      remplac&eacute; par le dernier noyau install&eacute; dont
	      il n'est pas certain qu'il soit op&eacute;rationnel.  Aussi,
	      d&egrave;s que possible, d&eacute;placez le noyau
	      op&eacute;rationnel vers le
	      bon fichier <filename>kernel</filename> o&ugrave; des commandes
	      comme &man.ps.1; ne fonctionneront pas correctement.  La
	      commande correcte pour &ldquo;d&eacute;verrouiller&rdquo; un
	      noyau install&eacute; par <command>make</command> (pour mettre
	      d&eacute;finitivement en place un autre noyau) est:</para>

	    <screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen>

	    <para>Si vous vous apercevez que vous ne pouvez pas
	      effectuer cette op&eacute;ration, c'est que vous &ecirc;tes
	      probablement sous un &ldquo;&man.securelevel.8;&rdquo;
	      sup&eacute;rieur &agrave; z&eacute;ro.  Editez la ligne
	      <literal>kern_securelevel</literal> dans
	      <filename>/etc/rc.conf</filename> et positionnez-la &agrave;
	      <literal>-1</literal>, puis red&eacute;marrez.  Vous pouvez
	      repositionner l'ancienne valeur si vous &ecirc;tes satisfait
	      de votre nouveau noyau.</para>

	    <para>Et, si vous voulez &ldquo;verrouiller&rdquo; votre
	      nouveau noyau, ou tout autre fichier, de sorte qu'il ne
	      puisse &ecirc;tre d&eacute;plac&eacute; ou modifi&eacute;,
	      utilisez:</para>

	    <screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen>
	    <para>Sous &os;&nbsp;5.X, les noyaux ne sont pas
	      install&eacute;s avec l'attribut immuable, cela ne sera
	      donc pas une source de probl&egrave;me.</para>
	  </note>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>Le noyau est op&eacute;rationnel, mais la commande
	  <command>ps</command> ne fonctionne plus du tout:</term>

	<listitem>
	  <para>Si vous avez install&eacute; une version du noyau
	    diff&eacute;rente de celle avec laquelle ont
	    &eacute;t&eacute; compil&eacute;s les utilitaires syst&egrave;me,
	    par exemple, un noyau
	    4.X sur un syst&egrave;me 3.X, de nombreuses commandes
	    d'affichage de l'&eacute;tat du syst&egrave;me comme
	    &man.ps.1; and &man.vmstat.8; ne fonctionneront plus.
	    Vous devez recompiler la biblioth&egrave;que
	    <filename>libkvm</filename> de m&ecirc;me que ces utilitaires.
	    C'est une des raisons pour lesquelles il n'est pas
	    judicieux d'utiliser des versions diff&eacute;rentes du noyau et
	    du reste du syst&egrave;me d'exploitation.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->

