<?xml version="1.0" encoding="iso-8859-1"?> <!-- The FreeBSD Documentation Project The FreeBSD French Documentation Project $FreeBSD$ Original revision: 1.176 --> <chapter id="kernelconfig"> <chapterinfo> <authorgroup> <author> <firstname>Jim</firstname> <surname>Mock</surname> <contrib>Mis à jour et restructuré 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ème d'exploitation FreeBSD. Il est responsable de la gestion de la mémoire, de la mise en application des contrôles de sécurité, du réseau, des accès disque, et bien plus. Bien que FreeBSD devienne de plus en plus configurable dynamiquement, il est toujours nécessaire occasionnellement de reconfigurer et recompiler votre noyau.</para> <para>Aprè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 é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éer et recompiler un nouveau noyau.</para> </listitem> <listitem> <para>Comment installer un nouveau noyau.</para> </listitem> <listitem> <para>Que faire si quelque chose se passe mal.</para> </listitem> </itemizedlist> <para>Toutes les commandes listées dans les exemples de ce chapitre doivent être exécutées en tant que <username>root</username> afin de fonctionner.</para> </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 “monolithique”. Cela signifie que le noyau était un gros programme, supportant une liste figée de périphériques, et si vous vouliez modifier le comportement du noyau alors vous deviez compiler un nouveau noyau, et ensuite redémarrer votre ordinateur avec le nouveau noyau.</para> <para>Aujourd'hui, FreeBSD s'oriente rapidement vers un modèle où une grande partie des fonctions du noyau est contenue dans des modules qui peuvent être dynamiquement chargés et déchargés si nécessaire. Cela permet au noyau de s'adapter au nouveau matériel devenant soudainement disponible (comme les cartes PCMCIA dans un ordinateur portable), ou pour qu'une nouvelle fonctionnalité qui n'était pas nécessaire lors de la compilation du noyau y soit intégrée. On appelle cela un noyau modulaire.</para> <para>En dépit de cela, il est encore nécessaire d'effectuer certaines configurations de noyau en statique. Dans certains cas c'est parce que la fonctionnalité est si proche du noyau qu'elle ne peut être rendue dynamiquement chargeable. Dans d'autres cas, cela peut tout simplement venir du fait que personne n'a encore pris le temps d'écrire un module dynamiquement chargeable pour cette fonctionnalité.</para> <para>Compiler un noyau sur mesure est l'un des plus importants rites de passage que doit endurer tout utilisateur BSD. Cette opération, tout en prenant du temps, apportera de nombreuses améliorations à votre système FreeBSD. A la différence du noyau <filename>GENERIC</filename>, qui doit supporter une large gamme de matériels, un noyau sur mesure ne contient que le support pour <emphasis>votre</emphasis> configuration matérielle. Cela a de nombreux avantages, comme:</para> <itemizedlist> <listitem> <para>Un temps de démarrage plus court. Comme le noyau ne recherchera que le matériel présent sur votre système, le temps nécessaire au démarrage de votre système peut diminuer de façon importante.</para> </listitem> <listitem> <para>Une utilisation plus faible de la mémoire. Un noyau sur mesure utilise souvent moins de mémoire que le noyau <filename>GENERIC</filename>, ce qui est important car le noyau doit toujours résider en mémoire. Pour cette raison, un noyau sur mesure est tout particulièrement utile sur un système dont les ressources mémoire sont limitées.</para> </listitem> <listitem> <para>Le support de matériels supplémentaires. Un noyau sur mesure vous permet d'intégrer le support pour des périphériques, qui ne sont pas présents dans le noyau <filename>GENERIC</filename> comme les cartes son.</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çons par passer rapidement en revue le répertoire de configuration du noyau. Tous les chemins d'accès mentionnés seront relatifs au répertoire principal <filename>/usr/src/sys</filename>, qui est également accessible via le lien symbolique <filename>/sys</filename>. Il comporte un certain nombre de sous-répertoires correspondants à différentes parties du noyau, mais les plus importantes, en ce qui nous concerne, sont <filename><replaceable>arch</replaceable>/conf</filename>, où vous éditerez votre fichier configuration personnalisé, et <filename>compile</filename>, qui est l'espace de travail où votre noyau sera compilé. <replaceable>arch</replaceable> représente une des architectures suivante: <filename>i386</filename>, soit <filename>alpha</filename>, <filename>amd64</filename>, <filename>ia64</filename>, <filename>powerpc</filename>, <filename>sparc64</filename>, ou encore <filename>pc98</filename> (une branche alternative de développement de l'architecture PC, populaire au Japon). Tout ce qui se trouve dans un répertoire particulier à une architecture est propre uniquement à cette architecture; le reste du code est un code indépendant du type de machine et commun à toutes les plates-formes sur lesquelles FreeBSD pourrait être potentiellement porté. Remarquez l'organisation logique de l'arborescence des répertoires, où chaque périphérique, système de fichiers, et option supportés a son propre sous-répertoire.</para> <para>Les exemples de ce chapitre supposent que vous utilisez l'architecture i386. Si ce n'est pas votre cas, effectuez les ajustements appropriés au niveau des chemins d'accès pour votre architecture.</para> <note> <para>S'il n'y a <emphasis>pas</emphasis> de répertoire <filename>/usr/src/sys</filename> sur votre système, alors c'est que les sources du noyau n'ont pas été installées. La manière la plus facile de les installer est d'exécuter <command>sysinstall</command> en tant que <username>root</username>, et sélectionner <guimenuitem>Configure</guimenuitem>, puis <guimenuitem>Distributions</guimenuitem>, <guimenuitem>src</guimenuitem>, puis <guimenuitem>base</guimenuitem> et <guimenuitem>sys</guimenuitem>. Si vous avez une aversion envers <application>sysinstall</application> et que vous disposez d'un CDROM “officiel” 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> &prompt.root; <userinput>cat /cdrom/src/sbase.[a-d]* | tar -xzvf -</userinput></screen> </note> <para>Ensuite allez dans le ré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 à votre noyau. Par exemple:</para> <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/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érielles différentes, c'est une bonne idée de lui donner le même nom que la machine. Nous l'appellerons <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 être une mauvaise idée. Si vous avez des problèmes il peut être tentant de juste effacer <filename>/usr/src</filename> et recommencer à nouveau. Après avoir fait cela ne prends que quelques secondes pour vous rendre compte que vous venez d'effacer votre fichier de configuration du noyau personnalisé. N'éditez pas, non plus, directement le fichier <filename>GENERIC</filename>, il peut être écrasé à la prochaine <link linkend="updating-upgrading">mise à jour de l'arborescence des sources</link>, et vos modifications seraient perdues.</para> <para>Vous voudrez peut être conserver votre fichier de configuration du noyau ailleurs et alors créer un lien symbolique vers le fichier dans le répertoire <filename><replaceable>i386</replaceable></filename>.</para> <para>Par exemple:</para> <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/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> <para>Editez maintenant <filename>MONNOYAU</filename> avec votre éditeur de texte préféré. Si vous venez tout juste de finir l'installation, le seul éditeur disponible sera probablement <application>vi</application>, qui est trop complexe pour être décrit ici, mais est bien expliqué dans de nombreux ouvrages de la <link linkend="bibliography">bibliographie</link>. Cependant, FreeBSD offre un éditeur plus simple appelé <application>ee</application> qui, si vous êtes débutant, sera votre éditeur de choix. N'hésitez pas à modifier les commentaires d'entête pour y décrire votre configuration ou les modifications que vous avez apportés par rapport au noyau <filename>GENERIC</filename>.</para> <indexterm><primary>SunOS</primary></indexterm> <para>Si vous avez déjà compilé un noyau sur &sunos; ou tout autre système d'exploitation BSD, l'essentiel de fichier vous sera familier. Si vous venez d'un système d'exploitation comme DOS, à l'inverse, le fichier de configuration <filename>GENERIC</filename> vous paraîtra inintelligible, lisez alors lentement et attentivement la section sur <link linkend="kernelconfig-config">le fichier de configuration</link>.</para> <note> <para>Si vous <link linkend="updating-upgrading">synchronisez votre arborescence des sources</link> avec les toutes dernières sources du projet &os;, assurez-vous de toujours lire le fichier <filename>/usr/src/UPDATING</filename> avant d'effectuer une quelconque opération de mise à jour. Ce fichier décrit les problèmes importants ou les domaines demandant une attention particulière dans le code mis à jour. <filename>/usr/src/UPDATING</filename> correspond toujours à votre version des sources de &os;, et est donc plus à jour que ce Manuel.</para> </note> <para>Vous devez maintenant compiler le code source du noyau.</para> <procedure> <title>Compiler un noyau</title> <step> <para>Passez dans le répertoire <filename class="directory">/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>Il est indispensable d'avoir l'intégralité des sources du système &os; pour compiler le noyau.</para> </note> <tip> <para>Par défaut, quand vous compilez un noyau personnalisé, <emphasis>tous</emphasis> les modules seront également recompilés. Si vous désirez mettre à jour un noyau plus rapidement ou compiler que certains modules, vous devez éditer le fichier <filename>/etc/make.conf</filename> avant de compiler le noyau:</para> <programlisting>MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting> <para>Cette variable définit une liste de modules à compiler à la place de l'intégralité des modules.</para> <programlisting>WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting> <para>Cette variable définit une liste de modules à exclure du processus de compilation. Pour d'autres variables qui peuvent être intéressantes pour le processus de compilation du noyau, consultez la page de manuel &man.make.conf.5;.</para> </tip> <indexterm> <primary><filename class="directory">/boot/kernel.old</filename></primary> </indexterm> <para>Le nouveau noyau sera copié dans le répertoire <filename class="directory">/boot/kernel</filename> avec le nom <filename>/boot/kernel/kernel</filename> et l'ancien noyau sera renommé en <filename>/boot/kernel.old/kernel</filename>. Maintenant, arrêtez le système et redémarrez pour utiliser votre nouveau noyau. Si quelque chose se passe mal, il y a quelques instructions de <link linkend="kernelconfig-trouble">dépannage</link> à la fin de ce chapitre que vous pourrez trouver utiles. Assurez-vous de lire la section qui explique comment revenir en arrière dans le cas où votre nouveau noyau <link linkend="kernelconfig-noboot">ne démarre pas</link>.</para> <note> <para>Les autres fichiers concernant le processus de démarrage, comme le chargeur (&man.loader.8;) et la configuration du démarrage sont conservés dans le répertoire <filename>/boot</filename>. Les modules tiers et personnalisés peuvent être placés dans <filename class="directory">/boot/kernel</filename>, bien que les utilisateurs doivent être conscients que garder ses modules synchronisés avec le noyau compilé est très important. Les modules qui ne sont pas destinés à fonctionner avec le noyau compilé peuvent être instables et ne pas donner les résultats escomptés.</para></note> </sect1> <sect1 id="kernelconfig-config"> <sect1info> <authorgroup> <author> <firstname>Joel</firstname> <surname>Dahl</surname> <contrib>Mis à jour pour &os; 6.X par </contrib> </author> </authorgroup> </sect1info> <title>Le fichier de configuration</title> <indexterm> <primary>noyau</primary> <secondary>NOTES</secondary> </indexterm> <indexterm><primary>NOTES</primary></indexterm> <indexterm> <primary>noyau</primary> <secondary>fichier de configuration</secondary> </indexterm> <para>Le format général du fichier de configuration est assez simple. Chaque ligne est composée d'un mot-clé et d'un ou plusieurs arguments. Pour simplifier, la plupart des lignes ne contiennent qu'un seul argument. Tout ce qui suit le caractère <literal>#</literal> est considéré comme un commentaire et ignoré. Les sections suivantes décrivent chaque mot-clé, dans l'ordre où ils apparaissent dans le fichier <filename>GENERIC</filename>. <anchor id="kernelconfig-options"/> Pour une liste exhaustive des options et périphériques dépendants de l'architecture utilisée, consultez le fichier <filename>NOTES</filename> présent dans le même répertoire que le fichier <filename>GENERIC</filename>. Pour les options ne dépendant pas de l'architecture, consultez le fichier <filename>/usr/src/sys/conf/NOTES</filename>.</para> <note> <para>Pour compiler un fichier contenant toutes les options possibles, en général pour effectuer des tests, exécutez la commande suivante en tant que <username>root</username>:</para> <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf && make LINT</userinput></screen> </note> <indexterm> <primary>noyau</primary> <secondary>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écessaires pour un peu plus de clarté. Cet exemple devrait correspondre de façon très proche à votre copie du fichier <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/GENERIC</filename>. </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 être <literal>alpha</literal>, <literal>amd64</literal>, <literal>i386</literal>, <literal>ia64</literal>, <literal>pc98</literal>, <literal>powerpc</literal>, ou encore <literal>sparc64</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écède définit le type de CPU présent dans votre système. Il peut y avoir plusieurs occurrences de la ligne CPU (si, par exemple, vous n'êtes pas sûr de devoir utiliser <literal>I586_CPU</literal> ou <literal>I686_CPU</literal>), cependant, pour un noyau personnalisé, il est mieux de spécifier uniquement le CPU que vous avez. Si vous n'êtes pas sûr du type, vous pouvez lister le fichier <filename>/var/run/dmesg.boot</filename> pour visualiser les messages de démarrage.</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 à votre noyau, par exemple <literal>MONNOYAU</literal> si vous avez suivi les instructions des exemples précédents. La valeur que vous donnez à la chaîne <literal>ident</literal> s'affichera au démarrage du noyau, il est donc utile de donner au nouveau noyau un nom différent si vous voulez le différencier de votre noyau habituel (e.g., vous voulez compiler un noyau expérimental).</para> <programlisting>#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" #Default places to look for devices.</programlisting> <para>Le fichier &man.device.hints.5; est utilisé pour configurer les paramètres des pilotes de périphériques. Le &man.loader.8; recherchera le fichier <filename>/boot/device.hints</filename> au dé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é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; inclut les informations de débogage lors de la compilation du noyau avec l'option <option>-g</option>, qui autorisera les informations de débogage quand le noyau sera passé à &man.gcc.1;.</para> <programlisting>options SCHED_4BSD # 4BSD scheduler</programlisting> <para>L'ordonnanceur (<quote>scheduler</quote>) traditionnel et par défaut de &os;. Conservez cette ligne.</para> <programlisting>options PREEMPTION # Enable kernel thread preemption</programlisting> <para>Permet aux processus légers présents dans le noyau d'être devancés par des processus de priorité plus élevée. Cela améliore l'interactivité et permet aux processus d'interruption d'être exécutés le plus tôt possible au lieu d'attendre leur tour.</para> <programlisting>options INET #InterNETworking</programlisting> <para>Support réseau. Conservez-le, même si vous n'envisagez pas de vous connecter à un réseau. La plupart des programmes utilisent le réseau “en boucle” (i.e., établissent des connexions réseau avec le PC lui-mê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 </programlisting> <para>C'est le système de fichiers de base sur disque dur. Gardez ces options si vous démarrez depuis le disque dur.</para> <programlisting>options SOFTUPDATES #Enable FFS Soft Updates support</programlisting> <para>Cette option rajoutera le support des <quote>Soft Updates</quote> dans le noyau, ce qui aidera l'accélération des accès en écriture sur les disques. Même quand cette fonction est fournit par le noyau, elle doit être activée sur chaque disque. Regardez le résultat de la commande &man.mount.8; pour voir si les <quote>Soft Updates</quote> sont activées sur les disques de votre système. Si vous ne voyez pas apparaître l'option <literal>soft-updates</literal> alors vous devrez l'activer en utilisant les commandes &man.tunefs.8; (pour les systèmes de fichiers existant) ou &man.newfs.8; (pour les nouveaux systèmes de fichiers).</para> <programlisting>options UFS_ACL #Support for access control lists</programlisting> <para>Cette option active le support des listes de contrôle d'accès au système de fichiers (<acronym>ACL</acronym>). Elles reposent sur l'utilisation d'attributs étendus et d'<acronym>UFS2</acronym>, cette fonctionnalité est décrite dans la <xref linkend="fs-acl"/>. Les <acronym>ACL</acronym>s sont activées par défaut, et leur support ne devraient pas être retiré du noyau si elles ont été précédemment utilisées sur un système de fichiers, étant donné que cela supprimera les listes de contrôle d'accès changeant alors la façon dont sont protégés les fichiers d'une manière imprévisible.</para> <programlisting>options UFS_DIRHASH #Improve performance on big directories</programlisting> <para>Cette option inclut certaines fonctions pour accélérer les opérations disque sur de gros répertoires, aux dépens d'employer de la mémoire supplémentaire. Vous conserverez normalement cela pour un gros serveur, ou une station de travail très active, et vous l'enlèverez si vous utilisez FreeBSD sur un petit système où la mémoire prime et la vitesse d'accès disque est moins importante, comme pour un coupe-feu.</para> <programlisting>options MD_ROOT #MD is a potential root device</programlisting> <para>Cette option active le support pour des disques virtuels en mémoire utilisés comme périphérique racine.</para> <indexterm> <primary>options du noyau</primary> <secondary>NFS</secondary> </indexterm> <indexterm> <primary>options du noyau</primary> <secondary>NFS_ROOT</secondary> </indexterm> <programlisting>options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT</programlisting> <para>Le système de fichiers réseau. A moins que vous n'envisagiez de monter des partitions d'un serveur de fichiers &unix; par l'intermédiaire d'un ré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ème de fichiers &ms-dos;. A moins que vous n'envisagiez de monter une partition DOS d'un disque dur au démarrage, vous pouvez sans risque commenter cette option. Le module sera automatiquement chargé la première fois que vous monterez une partition DOS, comme décrit plus haut. Par ailleurs, l'excellent logiciel <filename role="package">emulators/mtools</filename> vous permet d'accéder à 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</programlisting> <para>Le systè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é dynamiquement dès que vous monterez un CDROM). Les CDROMs audios n'ont pas besoin de ce système de fichiers.</para> <programlisting>options PROCFS # Process filesystem (requires PSEUDOFS)</programlisting> <para>Le système de fichiers pour les processus. C'est un “pseudo-système” de fichiers monté sur <filename>/proc</filename> qui permet à des programmes comme &man.ps.1; de vous fournir plus d'informations sur les processus qui tournent sur le système. L'utilisation de <literal>PROCFS</literal> n'est pas nécessaire la plupart du temps, comme la majeur partie des outils de débogage et de monitoring ont été adaptés pour s'exécuter sans <literal>PROCFS</literal>: les nouvelles installations ne monteront pas par défaut ce système de fichiers.</para> <programlisting>options PSEUDOFS #Pseudo-filesystem framework</programlisting> <para>Les noyaux 6.X faisant usage du système <literal>PROCFS</literal> doivent également inclure le support pour <literal>PSEUDOFS</literal>.</para> <programlisting>options GEOM_GPT # GUID Partition Tables.</programlisting> <para>Cette option apporte la possibilité d'avoir un grand nombre de partitions sur un seul disque.</para> <programlisting>options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]</programlisting> <para>Compatibilité 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écessaires aux systèmes &i386; et Alpha fonctionnant sous &os; 5.X pour supporter les applications compilées sur d'anciennes version de &os; qui utilisent d'anciennes interfaces d'appel système. Il est recommandé d'utiliser cette option sur tous les systèmes &i386; et Alpha susceptibles d'exécuter d'anciennes applications; les plateformes apparues sous &os; 5.0, comme l'ia64 et &sparc64;, n'ont pas besoin de cette option.</para> <programlisting>options COMPAT_FREEBSD5 # Compatible with &os;5</programlisting> <para>Cette option est nécessaire sous &os; 6.X et versions supérieures pour supporter les applications compilées sous &os; 5.X et qui utilisent les interfaces d'appel système &os; 5.X.</para> <programlisting>options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI</programlisting> <para>Cette option oblige le noyau à attendre 5 secondes avant de rechercher les périphériques SCSI présents sur votre système. Si vous n'avez que des disques IDE, vous pouvez l'ignorer, sinon vous pouvez essayer de diminuer cette valeur, pour accélérer le démarrage du système. Bien sûr, si vous le faites, et que FreeBSD a du mal à reconnaître vos périphériques SCSI, vous devrez l'augmenter à nouveau.</para> <programlisting>options KTRACE #ktrace(1) support</programlisting> <para>Ceci permet de tracer le processus du noyau, ce qui est utile pour le débogage.</para> <programlisting>options SYSVSHM #SYSV-style shared memory</programlisting> <para>Cette option implémente la mémoire partagé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 SYSVMSG #SYSV-style message queues</programlisting> <para>Support des messages System V. Cette option n'augmente que de quelques centaines d'octets la taille du noyau.</para> <programlisting>options SYSVSEM #SYSV-style semaphores</programlisting> <para>Support des sémaphores System V. D'un usage moins courant, mais n'augmente la taille du noyau que de quelques centaines d'octets.</para> <note> <para>L'option <option>-p</option> de la commande &man.ipcs.1; donnera la liste des processus utilisant chacun de ces mécanismes System V.</para> </note> <programlisting>options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions</programlisting> <para>Extensions temps-réel ajoutées dans la norme &posix; 1993. Certaines applications du catalogue des logiciels portés les utilisent (comme <application>&staroffice;</application>).</para> <programlisting>options KBD_INSTALL_CDEV # install a CDEV entry in /dev</programlisting> <para>Cette option concerne le clavier. Elle installe une entrée CDEV dans le répertoire <filename>/dev</filename>.</para> <programlisting>options ADAPTIVE_GIANT # Giant mutex is adaptive.</programlisting> <para><quote>Giant</quote> est le nom d'un mécanisme d'exclusion mutuelle (un <quote>mutex</quote> dormant) qui protège l'accès à un ensemble important de ressources du noyau. Aujourd'hui c'est un goulot d'étranglement des performances inacceptable que l'on est en train de remplacer activement par des verrous qui protègent les ressources individuelles. L'option <literal>ADAPTIVE_GIANT</literal> permet à Giant d'être inclus dans l'ensemble des mutex lancés de manière adaptative. C'est à dire, quand un thread désire verrouiller le mutex Giant, mais que ce dernier est déjà verrouillé par un thread sur un autre CPU, le premier thread continuera à fonctionner et attendra la libération du verrou. Normalement, le thread retournera à l'état dormant et attendra une nouvelle chance de pouvoir s'exécuter. Si vous n'êtes pas sûr, laissez la configuration en l'état.</para> <indexterm> <primary>options du noyau</primary> <secondary>SMP</secondary> </indexterm> <programlisting>device apic # I/O APIC</programlisting> <para>Le périphérique apic active l'utilisation de l'E/S APIC pour l'acheminement des interruptions. Le périphérique apic peut être utilisé dans les noyaux UP (monoprocesseur) et SMP, mais est requis pour les noyaux SMP. Ajoutez <literal>options SMP</literal> pour inclure le support pour plusieurs processeurs.</para> <note> <para>Le périphérique apic n'existe que sur l'architecture i386, cette ligne de configuration ne doit pas être utilisée sur d'autres architectures.</para> </note> <programlisting>device eisa</programlisting> <para>Rajoutez cela si vous avez une carte mère EISA. Cela permet l'auto-détection et la configuration de tous les périphériques présents sur le bus EISA.</para> <programlisting>device pci</programlisting> <para>Ajoutez cette option si vous avez une carte mère PCI. Cela permet l'auto-détection des cartes PCI et gère l'interface entre les bus PCI et ISA.</para> <programlisting># Floppy drives device fdc</programlisting> <para>C'est le contrôleur de lecteur de disquettes.</para> <programlisting># ATA and ATAPI devices device ata</programlisting> <para>Ce pilote supporte tous les périphériques ATA et ATAPI. Vous n'avez besoin que d'une seule ligne <literal>device ata</literal> pour que le noyau détecte tous les périphé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>device ataraid # ATA RAID drives</programlisting> <para>Ceci est nécessaire avec <literal>device ata</literal> pour les disques RAID ATA.</para> <programlisting><anchor id="kernelconfig-atapi"/> device atapicd # ATAPI CDROM drives</programlisting> <para>Ceci est né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é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é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érotation des périphériques statique, sans cela l'allocation des numéros de périphériques sera dynamique.</para> <programlisting># SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50</programlisting> <para>Contrôleurs SCSI. Mettez en commentaires ceux que vous n'avez pas sur votre système. Si vous n'avez qu'un système IDE, vous pouvez supprimer toutes ces lignes. Les lignes <literal>*_REG_PRETTY_PRINT</literal> sont des options de débogage pour leur pilote respectif.</para> <programlisting># SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE)</programlisting> <para>Périphériques SCSI. A nouveau, mettez en commentaires tous ceux que vous n'avez pas, ou si vous n'avez que du matériel IDE, vous pouvez tous les supprimer.</para> <note> <para>Le pilote USB &man.umass.4; et quelques autres pilotes utilisent le sous-système SCSI même si ce ne sont pas de véritables périphériques SCSI. Par conséquent assurez-vous de ne pas retirer le support SCSI si un tel pilote fait partie de la configuration du noyau.</para> </note> <programlisting># RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID</programlisting> <para>Contrôleurs RAID supportés. Si vous n'avez aucun de ces derniers dans votre système, vous pouvez les mettre en commentaires ou les supprimer.</para> <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller</programlisting> <para>Le contrôleur du clavier (<literal>atkbdc</literal>) permet de gérer les E/S du clavier AT et des périphériques de pointage PS/2. Ce contrôleur est nécessaire au pilote de périphérique du clavier (<literal>atkbd</literal>) et celui des périphériques de pointage PS/2 (<literal>psm</literal>).</para> <programlisting>device atkbd # AT keyboard</programlisting> <para>Le pilote de périphérique <literal>atkbd</literal>, associé au contrôleur <literal>atkbdc</literal>, fournit un accès au clavier AT 84 touches ou au clavier AT étendu qui est connecté au contrôleur de clavier de la machine.</para> <programlisting>device psm # PS/2 mouse</programlisting> <para>Utilisez ce périphérique si votre souris se branche sur le port PS/2.</para> <programlisting>device kbdmux # keyboard multiplexer</programlisting> <para>Support de base pour le multiplexage de claviers. Si vous n'avez pas l'intention d'utiliser sur le système plus d'un clavier, vous pouvez supprimer cette ligne sans risque.</para> <programlisting>device vga # VGA video card driver</programlisting> <para>Pilote de la carte graphique.</para> <programlisting> device splash # Splash screen and screen saver support</programlisting> <para>Ecran/bannière de démarrage. Les économiseurs d'écran ont également besoin de ce pseudo-périphérique.</para> <programlisting># syscons is the default console driver, resembling an SCO console device sc</programlisting> <para><literal>sc</literal> est le pilote par défaut pour la console, qui ressemble à une console SCO. Comme la plupart des programmes en mode plein-écran accèdent à la console par l'intermédiaire d'une base de données de description des terminaux comme <filename>termcap</filename>, cela n'a guère d'importance que vous choisissiez ce pilote ou <literal>vt</literal>, le pilote compatible <literal>VT220</literal>. Quand vous ouvrez une session, positionnez votre variable d'environnement <envar>TERM</envar> à <literal>scoansi</literal> si vous avez des problèmes pour utiliser des programmes en mode plein-écran avec cette console.</para> <programlisting># Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor</programlisting> <para>C'est le pilote de console compatible VT220, et, rétrospectivement, compatible VT100/102. Il fonctionne bien sur certains ordinateurs portables qui sont matériellement incompatibles avec le pilote <literal>sc</literal>. Comme précédemment, positionnez la variable d'environnement <envar>TERM</envar> lorsque que vous ouvrez une session, mais cette fois-ci à <literal>vt100</literal> ou <literal>vt220</literal>. Ce pilote peut aussi s'avérer utile quand vous vous connectez à un grand nombre de machines différentes par le réseau sur lesquelles les entrées pour le périphérique <literal>sc</literal> ne sont souvent pas définies dans leurs fichiers <filename>termcap</filename> ou <filename>terminfo</filename> — alors que le terminal <literal>vt100</literal> devrait être disponible sur pratiquement toutes les plates-formes.</para> <programlisting>device agp</programlisting> <para>Ajoutez cette option si vous avez une carte AGP dans votre système. Cela activera le support AGP, et l'AGP GART pour les cartes qui ont cette fonction.</para> <indexterm> <primary>APM</primary> </indexterm> <programlisting># Power management support (see NOTES for more options) device apm</programlisting> <para>“Advanced Power Management support” - gestion avancée de l'énergie. Utile pour les ordinateurs portables, ceci est cependant désactivé par défaut dans le noyau <filename>GENERIC</filename> sous &os; 5.X et versions suivantes</para> <programlisting># Add suspend/resume support for the i8254. device pmtimer</programlisting> <para>Pilote du périphérique de gestion du temps pour les événements de la gestion de l'énergie, comme l'APM ou l'ACPI.</para> <programlisting># PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus</programlisting> <para>Support PCMCIA. Vous en avez besoin si vous utilisez un ordinateur portable.</para> <programlisting># Serial (COM) ports device sio # 8250, 16[45]50 based serial ports</programlisting> <para>Cela représente les ports séries, appelés ports <devicename>COM</devicename> dans le monde &ms-dos;/&windows;.</para> <note> <para>Si vous avez un modem interne sur le port <devicename>COM4</devicename> et un port série <devicename>COM2</devicename>, vous devrez changer l'IRQ du modem en 2 (pour d'obscures raisons techniques, IRQ 2 = IRQ 9) pour y accéder avec FreeBSD. Si vous avez une carte série multi-ports, consultez la page de manuel de &man.sio.4; pour plus d'informations sur les bonnes valeurs à ajouter à votre fichier <filename>/boot/device.hints</filename>. Certaines cartes vidéo (notamment celle à base de circuits S3) utilisent des adresses d'E/S sous la forme <literal>0x*2e8</literal>, et comme de nombreuses cartes séries bon marché de décodent pas complètement l'espace d'adresse d'E/S 16 bits, il y a aura des conflits avec ces cartes, rendant le port <devicename>COM4</devicename> pratiquement inutilisable.</para> <para>Chaque port série doit avoir une IRQ unique (à moins que vous n'utilisiez une carte multi-ports qui autorise le partage d'interruption), donc les IRQs par défaut pour les ports <devicename>COM3</devicename> et <devicename>COM4</devicename> ne peuvent être utilisées.</para> </note> <programlisting># Parallel port device ppc</programlisting> <para>C'est l'interface parallèle du bus ISA.</para> <programlisting>device ppbus # Parallel port bus (required)</programlisting> <para>Fournit le support pour le bus du port parallèle.</para> <programlisting>device lpt # Printer</programlisting> <para>Support pour les imprimantes parallèles.</para> <note> <para>Les trois lignes précédentes sont nécessaires pour permettre le support des imprimantes parallèles.</para> </note> <programlisting>device plip # TCP/IP over parallel</programlisting> <para>C'est le pilote pour l'interface réseau sur port parallèle.</para> <programlisting>device ppi # Parallel port interface device</programlisting> <para>Port d'E/S d'usage général (“geek port”) + 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 également requises. Les meilleures performances sont obtenues avec les ports configurés dans le mode EPP 1.9.</para> <programlisting>#device puc</programlisting> <para>Décommentez ce périphérique si vous disposez d'une carte PCI série ou parallèle <quote>idiote</quote> qui est supportée par le pilote &man.puc.4;.</para> <programlisting># PCI Ethernet NICs. device de # DEC/Intel DC21x4x (<quote>Tulip</quote>) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (<quote>Typhoon</quote>) device vx # 3Com 3c590, 3c595 (<quote>Vortex</quote>)</programlisting> <para>Divers pilotes de cartes réseaux PCI. Mettez en commentaires ou supprimer les lignes de celles qui ne sont pas présentes sur votre système.</para> <programlisting># PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support</programlisting> <para>Le support du bus MII est nécessaire pour certaines cartes Ethernet PCI 10/100, à savoir celles qui utilisent des interfaces compatibles MII ou implémentent une gestion de l'interface opérant comme le bus MII. Ajouter <literal>device miibus</literal> à la configuration du noyau intègre le support pour l'API miibus générique et tous les pilotes d'interfaces PHY, incluant un pilote générique pour les interfaces PHYs qui ne sont pas spécifiquements gérées par un pilote individuel.</para> <programlisting>device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (<quote>Starfire</quote>) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 <quote>EPIC</quote>) device vge # VIA VT612x gigabit ethernet 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ôleur du bus MII.</para> <programlisting># ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le</programlisting> <para>Pilotes pour les cartes Ethernet ISA. Consultez le fichier <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/NOTES</filename> pour savoir quelles cartes sont supportées et par quel pilote.</para> <programlisting># Wireless NIC cards device wlan # 802.11 support</programlisting> <para>Support 802.11 générique. Cette ligne est nécessaire pour le réseau sans fil.</para> <programlisting>device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support</programlisting> <para>Support pour le chiffrage pour les périphériques 802.11. Ces lignes sont nécessaires si vous avez l'intention d'utiliser le chiffrage et les protocoles de sécurité 802.11i.</para> <programlisting>device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC.</programlisting> <para>Support pour diverses cartes réseau sans fil.</para> <programlisting># Pseudo devices device loop # Network loopback</programlisting> <para>C'est l'interface géné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éponse vous parviendra via ce pseudo-périphérique. Ceci est <emphasis>obligatoire</emphasis>.</para> <programlisting>device random # Entropy device</programlisting> <para>Générateur de nombres aléatoire sécurisé pour les applications de chiffrement.</para> <programlisting>device ether # Ethernet support</programlisting> <para><literal>ether</literal> ne sert que si vous avez une carte Ethernet. Cela intègre le code générique pour le protocole Ethernet.</para> <programlisting>device sl # Kernel SLIP</programlisting> <para><literal>sl</literal> est le support pour le protocole SLIP. Il a été presque entièrement supplanté par le protocole PPP, plus facile à mettre en oeuvre, mieux adapté aux connexions par modem, et aussi plus puissant.</para> <programlisting>device ppp # Kernel PPP</programlisting> <para>C'est le support intégré 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és comme la connexion à la demande.</para> <programlisting>device tun # Packet tunnel.</programlisting> <para>Ceci est utilisé par le programme PPP en mode utilisateur. Voyez la section <link linkend="userppp">PPP</link> de ce manuel pour plus d'informations.</para> <programlisting><anchor id="kernelconfig-ptys"/> device pty # Pseudo-ttys (telnet etc)</programlisting> <para>C'est un “pseudo-terminal” ou un port simulant une session. Il est utilisé par les sessions <command>telnet</command> et <command>rlogin</command> entrantes, par <application>xterm</application>, et d'autres applications comme <application>Emacs</application>.</para> <programlisting>device md # Memory <quote>disks</quote></programlisting> <para>Pseudo-périphérique de disque mémoire.</para> <programlisting>device gif # IPv6 and IPv4 tunneling</programlisting> <para>Ceci implé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. Le périphérique <literal>gif</literal> <quote>s'auto-duplique</quote>, et créera les fichiers spéciaux de périphérique en fonction des besoins.</para> <programlisting>device faith # IPv6-to-IPv4 relaying (translation)</programlisting> <para>Ce pseudo-périphérique capture les paquets qui lui sont envoyés et les détourne vers le “daemon” de translation IPv4/IPv6.</para> <programlisting># The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter</programlisting> <para>C'est le filtre de paquets de Berkeley. Ce pseudo-périphérique permet de placer les interfaces en mode “promiscuous” (indiscret), pour capturer chaque paquet sur réseau de diffusion (e.g., un réseau Ethernet). Ces paquets peuvent être enregistrés sur le disque et/ou examinés avec le programme &man.tcpdump.1;.</para> <note> <para>Le périphérique &man.bpf.4; est également utilisé par &man.dhclient.8; pour obtenir une adresse IP du routeur par défaut (passerelle) et ainsi de suite. Si vous utilisez DHCP, conservez cette ligne non commentée.</para> </note> <programlisting># USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices 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 device ural # Ralink Technology RT2500USB wireless NICs device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet</programlisting> <para>Support pour divers périphériques USB.</para> <programlisting># FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!)</programlisting> <para>Support pour divers périphériques Firewire.</para> <para>Pour plus d'informations et pour avoir la liste de périphériques supplémentaires supportés par FreeBSD, voyez le fichier <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/NOTES</filename>.</para> <sect2> <title>Configurations mémoire importantes (<acronym>PAE</acronym>)</title> <indexterm> <primary>Extensions d'adressage physique—“Physical Address Extensions” (<acronym>PAE</acronym>)</primary> <secondary>mémoire importante</secondary> </indexterm> <para>Les machines à configuration mémoire importante ont besoin de pouvoir accéder à plus d'espace mémoire utilisateur et noyau que la limite des 4 gigaoctets de l'espace d'adresse noyau+utilisateur (“Kernel Virtual Address”—<acronym>KVA</acronym>). En raison de cette limite, Intel a ajouté le support d'adresses physiques sur 36 bits pour l'espace d'adresses dans les familles de microprocesseurs &pentium; Pro et suivantes.</para> <para>L'extension de l'adressage physique—,“Physical Address Extension” (<acronym>PAE</acronym>) est une caractéristique des microprocesseurs &intel; &pentium; Pro et suivants autorisant les configurations mémoires jusqu'à 64 gigaoctets. &os; fournit un support pour cette caratéristique via l'option de configuration du noyau <option>PAE</option>, disponible sous toutes les versions actuelles de &os;. En raison des limitations de l'architecture mémoire &intel;, aucune distinction n'est faite entre la mémoire au-dessus et en-dessous de 4 gigaoctets. La mémoire allouée au-dessus de 4 gigaoctets est simplement ajoutée à l'ensemble de la mé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 être noté que le support <acronym>PAE</acronym> sous &os; n'a pas été énormément testé, et devrait être considéré comme bêta comparé aux autres fonctionnalité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éder à plus de 4 gigaoctets d'espace mémoire.</para> </listitem> <listitem> <para>Les modules <acronym>KLD</acronym> ne peuvent être chargés dans un noyau avec <acronym>PAE</acronym> activé, en raison des différences entre la structure d'un module et du noyau.</para> </listitem> <listitem> <para>Les pilotes de périphériques qui n'utilisent pas l'interface &man.bus.dma.9; seront à l'origine de corruption de données avec un noyau <acronym>PAE</acronym> et ne sont pas recommandés. Pour cette raison, le fichier de configuration du noyau avec support <filename>PAE</filename> qui est fourni avec &os; exclut tous les pilotes connus pour ne pas fonctionner avec un noyau avec support <acronym>PAE</acronym>.</para> </listitem> <listitem> <para>Certains paramètres modifiables du système déterminent l'utilisation des ressources mémoire par la quantité de la mémoire physique disponible. De tels paramètres peuvent être inutilement sur-alloués en raison de la grande quantité de mémoire d'un système <acronym>PAE</acronym>. Un bon exemple est le “sysctl” <option>kern.maxvnodes</option>, qui contrôle le nombre maximal de “vnodes” alloués par le noyau. Il est recommandé d'ajuster ce dernier et les autres paramètres du même genre à des valeurs raisonnables.</para> </listitem> <listitem> <para>Il pourra être nécessaire d'augmenter l'espace d'adressage virtuel du noyau (“kernel virtual address”—<acronym>KVA</acronym>) ou de réduire le montant de la ressource spécifique du noyau qui est fortement utilisée (voir plus haut) afin d'éviter l'épuisement de l'espace <acronym>KVA</acronym>. L'option du noyau <option>KVA_PAGES</option> peut être employée pour augmenter l'espace <acronym>KVA</acronym>.</para> </listitem> </itemizedlist> <para>Pour des considérations de performance et de stabilité, il est recommandé de consulter la page de manuel &man.tuning.7;. La page de manuel &man.pae.4; contient des informations à jour sur le support <acronym>PAE</acronym> sous &os;.</para> </sect2> </sect1> <sect1 id="kernelconfig-trouble"> <title>Si quelque chose se passe mal</title> <para>Il y a cinq types de problèmes qui peuvent survenir lors de la compilation d'un noyau sur mesure. Ce sont:</para> <variablelist> <varlistentry> <term>La commande <command>config</command> échoue:</term> <listitem> <para>Si la commande &man.config.8; échoue quand vous lui passez en paramètre la description de votre noyau, vous avez probablement fait une simple erreur quelque part. Heureusement &man.config.8; affichera le numéro de la ligne qui lui a posé problème, vous pouvez donc localiser rapidement la ligne contenant l'erreur. Par exemple, si vous avez:</para> <screen>config: line 17: syntax error</screen> <para>Vérifiez que la ligne est correctement écrite, en le comparant avec le noyau <filename>GENERIC</filename> ou une autre référence.</para> </listitem> </varlistentry> <varlistentry> <term>La commande <command>make</command> échoue:</term> <listitem> <para>Si la commande <command>make</command> échoue, cela signale habituellement une erreur dans la description de votre noyau, mais qui n'est pas suffisamment sérieuse pour que la commande &man.config.8; la détecte. A nouveau, vérifiez votre fichier de configuration, et si vous n'arrivez toujours pas à résoudre le problème, envoyez un courrier électronique à la &a.questions; en joignant votre fichier de configuration du noyau, le diagnostic devrait être rapide.</para> </listitem> </varlistentry> <varlistentry> <term>Le noyau ne démarre pas:<anchor id="kernelconfig-noboot"/></term> <listitem> <para>Si votre nouveau noyau ne démarre pas, ou ne reconnaît pas vos périphériques, ne paniquez pas! Heureusement, FreeBSD dispose d'un excellent mécanisme pour récupérer si le noyau ne fonctionne pas. Sélectionnez simplement le noyau, à partir duquel vous désirez démarrer, à l'invite du chargeur de FreeBSD. Vous pouvez y accéder quand le menu de démarrage apparaît. Sélectionner l'option 6, <quote>Escape to a loader prompt</quote>. A l'invite, tapez <command>unload kernel</command> et ensuite <command>boot /boot/<replaceable>kernel.old</replaceable>/kernel</command>, ou le nom de fichier d'un autre noyau qui pourra démarrer proprement. Quand on reconfigure un noyau, il est toujours bon de conserver à portée de la main un noyau dont on sait qu'il fonctionne.</para> <para>Après avoir démarré avec un noyau en état de marche, vous pouvez revérifier votre fichier de configuration et essayer de recompiler à nouveau votre noyau. Une ressource utile est le fichier <filename>/var/log/messages</filename> qui enregistre, entre autres, tous les messages du noyau à chaque démarrage réussi. En outre, la commande &man.dmesg.8; affichera les messages du noyau pour le dernier démarrage.</para> <note> <para>Si vous avez des difficultés à compiler un noyau, veillez à conserver un noyau <filename>GENERIC</filename>, ou un autre noyau dont vous savez qu'il fonctionne, sous la main, avec un nom différent de sorte qu'il ne soit pas écrasé à 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é par le dernier noyau installé dont il n'est pas certain qu'il soit opérationnel. Aussi, dès que possible, déplacez le noyau opérationnel vers le bon emplacement <filename class="directory">/boot/kernel</filename> où des commandes comme &man.ps.1; pourront ne pas fonctionner correctement. Pour cela, renommez le répertoire contenant le bon noyau:</para> <screen>&prompt.root; <userinput>mv /boot/kernel /boot/kernel.bad</userinput> &prompt.root; <userinput>mv /boot/<replaceable>kernel.good</replaceable> /boot/kernel</userinput></screen> </note> </listitem> </varlistentry> <varlistentry> <term>Le noyau est opérationnel, mais la commande <command>ps</command> ne fonctionne plus du tout:</term> <listitem> <para>Si vous avez installé une version du noyau différente de celle avec laquelle ont été compilés les utilitaires système, par exemple, un noyau -CURRENT sur un système -RELEASE, de nombreuses commandes d'affichage de l'état du système comme &man.ps.1; and &man.vmstat.8; ne fonctionneront plus. Vous devrez <link linkend="makeworld">recompiler et installer un système</link> avec la même version de l'arborescence des sources de celle utilisée pour votre noyau. C'est une des raisons pour lesquelles il n'est pas judicieux d'utiliser des versions différentes du noyau et du reste du système d'exploitation.</para> </listitem> </varlistentry> </variablelist> </sect1> </chapter>