diff --git a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml index 34b4789ddb..75ec5b88f9 100755 --- a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml @@ -1,1614 +1,1614 @@ Jim Mock Mis à jour et restructuré par Jake Hamby Contribution originale de Configurer le noyau de FreeBSD &trans.a.fonvieille; Synopsis noyau compiler un noyau sur mesure 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. Après la lecture de ce chapitre, vous saurez: Pourquoi vous pourriez avoir besoin de compiler un noyau sur mesure. Comment écrire un fichier de configuration du noyau, ou modifier un fichier de configuration existant. Comment utiliser le fichier de configuration du noyau pour créer et recompiler un nouveau noyau. Comment installer un nouveau noyau. Comment créer les entrées dans /dev qui pourront être nécessaires. Que faire si quelque chose se passe mal. Pourquoi compiler un noyau sur mesure? 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 que 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. 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 du noyau 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 ce qu'une nouvelle fonctionnalité qui n'était pas nécessaire lors de la compilation du noyau y soit intégrée. Familièrement les modules sont appelés KLDs. 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 attachée au 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é. Compiler un noyau sur mesure est l'un des plus importants rites de passage que doit endurer tout utilisateur Unix. Cette opération, tout en prenant du temps, apportera de nombreuses améliorations à votre système FreeBSD. A la différence du noyau GENERIC, qui doit supporter une large gamme de matériels, un noyau sur mesure ne contient que le support pour votre configuration matérielle. Cela a de nombreux avantages, comme: 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 diminuera de façon importante. Une utilisation de la mémoire moindre. Un noyau sur mesure utilise souvent moins de mémoire que le noyau GENERIC, 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. Le support de matériels supplémentaires. Un noyau sur mesure vous permet d'intégrer le support pour des périphériques comme les cartes son, qui ne sont pas présents dans le noyau GENERIC. Compiler et installer un noyau sur mesure noyau compiler / installer 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 /usr/src/sys, qui est également accessible via le lien symbolique /sys. 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 arch/conf, où vous éditerez votre fichier configuration personnalisé, et compile, qui est l'espace de travail où votre noyau sera compilé. arch représente soit i386, soit alpha, ou encore pc98 (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 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. S'il n'y a pas de répertoire /usr/src/sys 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 /stand/sysinstall en tant que root, et sélectionner Configure, puis Distributions, src, sys. Si vous avez une aversion envers sysinstall et que vous disposez d'un CDROM “officiel” de FreeBSD, alors vous pouvez installer les sources depuis la ligne de commande: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - Ensuite allez dans le répertoire arch/conf et copiez le fichier de configuration GENERIC dans un fichier qui portera le nom que vous voulez donner à votre noyau. Par exemple: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MONNOYAU 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'appelerons MONNOYAU pour les besoins de cet exemple. Conserver votre fichier de configuration du noyau directement sous /usr/src peut être une mauvaise idée. Si vous avez des problèmes il peut être tentant de juste effacer /usr/src et recommencer à nouveau. Cinq secondes après vous vous rendez compte que vous venez d'effacer votre fichier de configuration personnalisé. 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 i386. Par exemple: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/noyaux &prompt.root; cp GENERIC /root/noyaux/MONNOYAU &prompt.root; ln -s /root/noyaux/MONNOYAU Vous devez exécuter cela et toutes les commandes suivantes avec les privilèges du compte root ou vous obtiendrez des messages d'erreur du type permission denied (permission refusée). Editez maintenant MONNOYAU avec votre éditeur de texte préféré. Si vous venez tout juste de finir l'installation, le seul éditeur disponible sera probablement vi, qui est trop complexe pour être décrit ici, mais est bien expliqué dans de nombreux ouvrages de la bibliographie. Cependant, FreeBSD offre un éditeur plus simple appelé ee 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 GENERIC. SunOS 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 GENERIC vous paraîtra inintelligible, lisez alors lentement et attentivement la section sur le fichier de configuration. Assurez-vous de toujours contrôler le fichier /usr/src/UPDATING, avant d'effectuer une seul étape de mise à jour, dans le cas où vous avez synchronisé votre arborescence des sources avec les toutes dernières sources du projet FreeBSD. Dans ce fichier sont notés tous les problèmes importants que l'on peut rencontrer lors de la mise à jour de FreeBSD. /usr/src/UPDATING correspond toujours à votre version des sources de FreeBSD, et est donc plus précis à ce sujet que le Manuel. Vous devez maintenant compiler le code source du noyau. Il existe deux procédures que vous pouvez utiliser dans ce but, et celle que vous utiliserez dépendra de pourquoi vous recompilez le noyau, et de la version de FreeBSD que vous utilisez. Si vous avez uniquement installé les sources du noyau, utilisez la procédure numéro 1. Si vous utilisez une version de FreeBSD antérieure à la 4.0, et que vous ne mettez pas à jour vers la version 4.0 ou supérieure en utilisant la procédure make world, employez la procédure 1. Si vous compilez un nouveau noyau sans mettre à jour le code source (peut être pour juste ajouter une nouvelle option, comme IPFIREWALL) vous pouvez utilisez n'importe quelle procédure. Si vous recompilez le noyau durant le processus make world utilisez la procédure numéro 2. Procédure 1. Compiler un noyau suivant la méthode dite “traditionnelle” Exécutez &man.config.8; pour générer le code source du noyau. &prompt.root; /usr/sbin/config MONNOYAU Passez dans le répertoire de compilation. &prompt.root; cd ../../compile/MONNOYAU Compilez le noyau. &prompt.root; make depend &prompt.root; make Installez le nouveau noyau. &prompt.root; make install Procédure 2. Compiler un noyau suivant la “nouvelle” méthode. Passez dans le répertoire /usr/src. &prompt.root; cd /usr/src Compilez le noyau. &prompt.root; make buildkernel KERNCONF=MONNOYAU Installez le nouveau noyau. &prompt.root; make installkernel KERNCONF=MONNOYAU - Sous FreeBSD 4.2 et versions antérieures vous devez + Sous FreeBSD 4.2 et versions antérieures vous devez remplacer KERNCONF= par KERNEL=. Une version 4.2-STABLE qui a été récupérée après le 2 février 2001 reconnaît le paramètre KERNCONF=. cvsup CVS anonyme CTM CVS anonyme Si vous n'avez pas, en aucune manière, mis à jour votre arborescence des sources (vous n'avez pas utilisé CVSup, CTM, ou employé anoncvs), alors vous devriez utiliser la séquence config, make depend, make, make install. kernel.old Le nouveau noyau sera copié sous la racine avec le nom /kernel et l'ancien noyau sera renommé en /kernel.old. 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 dépannage à la fin de ce chapitre. Assurez-vous de lire la section qui explique comment revenir en arrière dans le cas où votre nouveau noyau ne démarre pas. Si vous avez ajouté de nouveaux périphériques (comme une carte son) vous devrez peut être rajouter des fichiers spéciaux de périphériques dans votre répertoire /dev avant de pouvoir les utiliser. Pour plus d'informations, reportez-vous à la section Créer les fichiers spéciaux de périphériques plus loin dans ce chapitre. Le fichier de configuration noyau LINT LINT noyau fichier de configuration 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 # est considéré comme un commentaire et ignoré. Les sections suivantes décrivent chaque mot-clé, normalement dans l'ordre où ils apparaissent dans le fichier GENERIC, quoique certains mots-clés apparentés aient été regroupés en une seule section (Réseau par exemple) bien qu'ils soient en fait dispersés dans le fichier GENERIC. Une liste exhaustive des options et des explications plus détaillées des lignes se rapportant aux périphériques se trouvent dans le fichier de configuration LINT, situé dans le même répertoire que GENERIC. Si vous avez des doutes sur le rôle ou la nécessité d'une ligne, consultez d'abord le fichier LINT. Nombres entre guillemets Dans toutes les versions de FreeBSD jusqu'à 3.X incluse, &man.config.8; demandait à ce que toutes les chaînes de caractères du fichier de configuration contenant des nombres utilisés en tant que texte soient entre guillemets. Cet impératif a disparu dans la branche 4.X, que ce manuel couvre, donc si vous êtes sur un système pré-4.X, consultez les fichiers /usr/src/sys/i386/conf/LINT et /usr/src/sys/i386/conf/GENERIC sur votre système pour exemples. noyau exemple de fichier de configuration Ce qui suit est un exemple de fichier de configuration du noyau GENERIC 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 /usr/src/sys/i386/conf/GENERIC. Pour plus de détails sur les options possibles du noyau, consultez le fichier /usr/src/sys/i386/conf/LINT. # # 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 ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $ Ce qui suit sont les mots-clés obligatoires requis dans tous les noyaux que vous compilez: options du noyau machine machine i386 C'est l'architecture de la machine. Elle doit être soit i386, soit alpha, ou encore pc98. options du noyau cpu cpu I386_CPU cpu I486_CPU cpu I586_CPU cpu I686_CPU 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 (i.e., vous n'êtes pas sûr de devoir utiliser I586_CPU ou I686_CPU), 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 utiliser la commande &man.dmesg.8; pour visualiser les messages de démarrage. options du noyau type de cpu L'architecture Alpha utilise des valeurs différents pour cpu. On y trouve: cpu EV4 cpu EV5 Si vous utilisez une machine Alpha, vous devriez utiliser un de ces types de CPU. options du noyau ident ident GENERIC C'est l'identification du noyau. Vous devriez changer cela pour le nom, quel qu'il soit, que vous donnez à votre noyau, dans notre exemple précédent, MONNOYAU. La valeur que vous donnez à la chaîne ident 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 (i.e., vous voulez compiler un noyau expérimental). options du noyau maxusers maxusers n L'option maxusers définit la taille d'un certain nombre de tables importantes du système. Ce nombre est supposé être en gros égal au nombre d'utilisateurs simultanés que vous vous attendez à avoir sur votre machine. - Depuis FreeBSD 4.5, le système auto-ajuste ce paramètre + Depuis FreeBSD 4.5, le système auto-ajuste ce paramètre pour vous si vous le fixez explicitement à 0 L'algorithme d'auto-ajustement fixe maxuser à une valeur égale à la quantité de mémoire présente sur le système, avec un minimum de 32 et un maximum de 384... Si vous utilisez une version antérieure de FreeBSD, ou que vous désirez le gérer par vous même, vous devrez fixer maxusers à 4 au moins, en particulier si vous utilisez le système X Window ou compilez des logiciels. La raison de cela est que la valeur la plus importante que dimensionne maxusers est le nombre maximal de processus, qui est fixé à 20 + 16 * maxusers, donc si vous positionnez maxusers à 1, alors vous ne pouvez avoir que 36 processus en simultanés, comprenant les 18, environ, que le système lance au démarrage, et les 15, à peu près, que vous créerez probablement au démarrage du système X Window. Même une tâche simple comme la lecture d'une page de manuel lancera jusqu'à neuf processus pour la filtrer, la décompresser, et l'afficher. Fixer maxusers à 64 autorisera jusqu'à 1044 processus simultanés, ce qui devrait suffire dans la plupart des cas. Si, toutefois, vous obtenez le message d'erreur tant redouté proc table full quand vous tentez d'exécuter un nouveau programme, ou gérez un serveur avec un grand nombre d'utilisateurs en simultanés (comme ftp.FreeBSD.org), vous pouvez toujours augmenter cette valeur et recompiler le noyau. maxusers ne limite pas le nombre d'utilisateurs qui pourront ouvrir une session sur votre machine. Cette valeur dimensionne simplement différentes tables à des valeurs raisonnables en fonction du nombre maximal d'utilisateur que vous aurez vraisemblablement sur votre système et combien de processus chacun d'entre eux pourra utiliser. Un mot-clé qui limite le nombre d'utilisateurs distants en simultané est pseudo-device pty 16. # Floating point support - do not disable. device npx0 at nexus? port IO_NPX irq 13 npx0 est sous FreeBSD l'interface avec le coprocesseur mathémathique, qu'il soit matériel ou émulé par logiciel. Cette option n'est pas facultative. # Pseudo devices - the number indicates how many units to allocate. pseudo-device loop # Network loopback C'est l'interface générique en boucle de TCP/IP. Si vous employez telnet ou FTP sur localhost (aussi connu en tant qu'adresse 127.0.0.1) la réponse vous parviendra via ce pseudo-périphérique. Ceci est obligatoire. Tout ce qui suit est plus ou moins optionnel. Voyez les notes sous ou à côté de chaque option pour plus d'information. #makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols options MATH_EMULATE #Support for x87 emulation Cette ligne permet au noyau d'émuler un coprocesseur mathé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éparé), ou quelque chose de plus - récent (Pentium, Pentium II, etc...), vous pouvez mettre cette + récent (Pentium, Pentium II, etc...), vous pouvez mettre cette ligne en commentaire. Les sous-programmes standards d'émulation de coprocesseur mathématique de FreeBSD ne sont pas très précis. Si vous n'avez pas de coprocesseur mathématique, et que vous avez besoin d'une meilleure précision, il est recommandé de changer cette option en GPL_MATH_EMULATE pour utiliser les fonctions mathématiques GNU, qui ne sont pas incluses par défaut pour des questions de licence. options INET #InterNETworking 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. options INET6 #IPv6 communications protocols Ceci active les protocoles de communication IPv6. options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] C'est le système de fichiers de base sur disque dur. Gardez ces options si vous démarrez depuis le disque dur. options UFS_DIRHASH #Improve performance on big directories Cette option inclut du code 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. options SOFTUPDATES #Enable FFS soft updates support Cette option rajoutera le support des “Soft Updates” dans le noyau, ce qui aidera l'accélération des accès en écriture sur les disques. Le support est présent par défaut dans la branche 4.X mais peut ne pas être activé. Regardez le résultat de la commande &man.mount.8; pour voir si le support est activé. Si vous ne voyez pas apparaître l'option soft-updates alors vous devrez l'activer en utilisant &man.tunefs.8; ou &man.newfs.8; pour les nouveaux systèmes de fichiers. options MFS #Memory Filesystem options MD_ROOT #MD is a potential root device C'est le système de fichiers en mé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épertoire /tmp est un bon candidat pour le montage MFS, car de nombreux programmes y stockent leurs données temporaires. Pour monter un disque RAM MFS sur /tmp, ajoutez la ligne suivante au fichier /etc/fstab: /dev/ad1s2b /tmp mfs rw 0 0 Maintenant vous avez juste à redémarrer ou à exécuter la commande mount /tmp. options du noyau NFS options du noyau NFS_ROOT options NFS #Network Filesystem options NFS_ROOT #NFS usable as root device, NFS required 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. options du noyau MSDOSFS options MSDOSFS #MSDOS Filesystem 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 mtools (au catalogue des logiciels portés) vous permet d'accéder à des disquettes DOS sans avoir besoin de les monter (et ne requiert pas non plus MSDOSFS). options CD9660 #ISO 9660 Filesystem options CD9660_ROOT #CD-ROM usable as root, CD9660 required 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. options PROCFS #Process filesystem Le système de fichiers pour les processus. C'est un “pseudo-système” de fichiers monté sur /proc qui permet à des programmes comme &man.ps.1; de vous fournir plus d'informations sur les processus qui tournent sur le système. options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] Compatibilité avec 4.3BSD. Conservez cette option; certains programmes auront un comportement bizarre si vous la commentez. options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI Cette option oblige le noyau à attendre 15 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 voudrez peut-être diminuer cette valeur, éventuellement à 5 secondes, 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. options UCONSOLE #Allow users to grab the console Permet aux utilisateurs d'accéder à la console, ce qui est utile aux utilisateurs d'X. Par exemple, vous pouvez créer une console xterm en tapant xterm -C, qui affichera les sorties de &man.write.1;, &man.talk.1;, ainsi que tout autre message envoyé par le noyau à la console. options USERCONFIG #boot -c editor Cette option vous permet d'exécuter l'éditeur de configuration à partir du menu de démarrage. options VISUAL_USERCONFIG #visual boot -c editor Cette option vous permet d'exécuter l'éditeur visuel de configuration à partir du menu de démarrage. options KTRACE #ktrace(1) support Ceci permet de tracer le processus du noyau, ce qui est utile pour le débogage. options SYSVSHM #SYSV-style shared memory 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. options SYSVSEM #SYSV-style semaphores Support des sémaphores System V. D'un usage moins courant, mais n'augmente la taille du noyau que de quelques centaines d'octets. options SYSVMSG #SYSV-style message queues Support des messages System V. Encore une fois, cela n'augmente que de quelques centaines d'octets la taille du noyau. La commande &man.ipcs.1; donnera la liste des processus utilisant chacun de ces mécanismes System V. options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING Extensions temps-réel ajoutées dans la norme POSIX 1993. Certaines applications du catalogue des logiciels portés les utilisent (comme StarOffice). options du noyau ICMP_BANDLIM déni de service (DoS) options ICMP_BANDLIM #Rate limit bad replies Cette option permet la limitation de la bande passante allouée aux réponses d'erreurs ICMP. Vous utiliserez normalement cette option car elle aidera à protéger votre machine contre les attaques par déni de service. options du noyau SMP # To make an SMP kernel, the next two are needed #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O Ces deux options sont nécessaires pour le support SMP. device isa Tous les PCs supportés par FreeBSD ont un contrôleur ISA. Si vous avez un IBM PS/2 (Micro Channel Architecture), FreeBSD fournit un support limité pour l'instant. Pour plus d'informations au sujet du support MC, voir le fichier /usr/src/sys/i386/conf/LINT. device eisa 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. device pci 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. # 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 C'est le contrôleur de lecteur de disquettes. fd0 correspond au lecteur de disquettes A:, et fd1 au lecteur B:. device ata Ce pilote supporte tous les périphériques ATA et ATAPI. Vous n'avez besoin que d'une seule ligne device ata pour que le noyau détecte tous les périphériques PCI ATA/ATAPI sur les machines modernes. device atadisk # ATA disk drives Ceci est requis avec device ata pour les disques ATA. device atapicd # ATAPI CDROM drives Ceci est nécessaire avec device ata pour le support des lecteurs de CDROM ATAPI. device atapifd # ATAPI floppy drives Ceci est nécessaire avec device ata pour le support des lecteurs de disquettes ATAPI. device atapist # ATAPI tape drives Ceci est nécessaire avec device ata pour le support des lecteurs de bande ATAPI. options ATA_STATIC_ID #Static device numbering Cela rend la numérotation des périphériques statique (comme l'ancien pilote de périphérique) ou sinon l'allocation des numéros de périphériques sera dynamique. # ATA and ATAPI devices device ata0 at isa? port IO_WD1 irq 14 device ata1 at isa? port IO_WD2 irq 15 Utilisez ces options pour les anciens systèmes non-PCI. # 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? 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. # 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) 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. # RAID controllers device ida # Compaq Smart RAID device amr # AMI MegaRAID device mlx # Mylex DAC960 family 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. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD Le contrôleur du clavier (atkbdc) 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 (atkbd) et celui des périphériques de pointage PS/2 (psm). device atkbd0 at atkbdc? irq 1 Le pilote de périphérique atkbd, associé au contrôleur atkbdc, 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. device psm0 at atkbdc? irq 12 Utilisez ce périphérique si votre souris se branche sur le port PS/2. device vga0 at isa? Pilote de la carte graphique. # splash screen/screen saver pseudo-device splash Ecran/bannière de démarrage. Les économiseurs d'écran ont également besoin de ce pseudo-périphérique. # syscons is the default console driver, resembling an SCO console device sc0 at isa? sc0 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 termcap, cela n'a guère d'importance que vous choisissiez ce pilote ou vt0, le pilote compatible VT220. Quand vous ouvrez une session, positionnez votre variable d'environnement TERM à scoansi si vous avez des problèmes pour utiliser des programmes en mode plein-écran avec cette console. # 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 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 sc0. Comme précédemment, positionnez la variable d'environnement TERM lorsque que vous ouvrez une session, mais cette fois-ci à vt100 ou vt220. 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 sc0 ne sont souvent pas définies dans leurs fichiers termcap ou terminfo — alors que le terminal vt100 devrait être disponible sur pratiquement toutes les plates-formes. # Power management support (see LINT for more options) device apm0 at nexus? disable flags 0x20 # Advanced Power Management “Advanced Power Management support” - gestion avancée de l'énergie. Utile pour les ordinateurs portables. # 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 Support PCMCIA. Vous en avez besoin si vous utilisez un ordinateur portable. # 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 Il y a quatre ports séries, appelés COM1 à COM4 dans le monde MS-DOS/Windows. Si vous avez un modem interne sur le port COM4 et un port série COM2, 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 pour ces lignes. Certaines cartes vidéo (notamment celle à base de circuits S3) utilisent des adresses d'E/S sous la forme 0x*2e8, 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 COM4 pratiquement inutilisable. 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 COM3 et COM4 ne peuvent être utilisées. # Parallel port device ppc0 at isa? irq 7 C'est l'interface parallèle du bus ISA. device ppbus # Parallel port bus (required) Fournit le support pour le bus du port parallèle. device lpt # Printer Support pour les imprimantes parallèles. Les trois lignes précédentes sont nécessaires pour permettre le support des imprimantes parallèles. device plip # TCP/IP over parallel C'est le pilote pour l'interface réseau sur port parallèle. device ppi # Parallel port interface device Port d'E/S d'usage général (“geek port”) + port d'E/S IEEE1284. #device vpo # Requires scbus and da lecteur zip Ceci est pour le lecteur Zip de Iomega. Les options scbus et da sont également requises. Les meilleures performances sont obtenues avec les ports configurés dans le mode EPP 1.9. # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (Tulip) device fxp # Intel EtherExpress PRO/100B (82557, 82558) device tx # SMC 9432TX (83c170 EPIC) device vx # 3Com 3c590, 3c595 (Vortex) device wx # Intel Gigabit Ethernet Card (Wiseman) 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. # PCI Ethernet NICs that use the common MII bus controller code. device miibus # MII bus support 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 device miibus à 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. device dc # DEC/Intel 21143 and various workalikes device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) 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 (Boomerang, Cyclone) Pilotes qui utilisent le code du contrôleur du bus MII. # 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? Pilotes pour les cartes Ethernet ISA. Consultez le fichier /usr/src/sys/i386/conf/LINT pour savoir quelles cartes sont supportées et par quel pilote. pseudo-device ether # Ethernet support ether ne sert que si vous avez une carte Ethernet. Cela intègre le code générique pour le protocole Ethernet. pseudo-device sl 1 # Kernel SLIP sl 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. Le nombre après sl définit le nombre maximum de connexions SLIP simultanées supporté. pseudo-device ppp 1 # Kernel PPP 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 tun et offre plus de souplesse et de possibilités comme la connexion à la demande. Le nombre après ppp définit le nombre maximum supporté de connexions PPP simultanées. pseudo-device tun # Packet tunnel. Ceci est utilisé par le programme PPP en mode utilisateur. Le nombre après tun définit le nombre maximum de sessions PPP simultanées supporté. Voyez la section PPP de ce manuel pour plus d'informations. pseudo-device pty # Pseudo-ttys (telnet etc) C'est un “pseudo-terminal” ou un port simulant une session. Il est utilisé par les sessions telnet et rlogin entrantes, par xterm, et d'autres applications comme Emacs. Le nombre après pty indique le nombre de ptys à créer. Si vous avez besoin de plus que les 16 fenêtres xterm et/ou connexions à distance simultanées par défaut, veillez à augmenter ce nombre en conséquence, jusqu'à un maximum de 256. pseudo-device md # Memory disks Pseudo-périphérique de disque mémoire. pseudo-device gif ou pseudo-device gif 4 # IPv6 and IPv4 tunneling 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. Avec FreeBSD 4.4 le + par dessus l'IPv4, et IPv6 par dessus IPv6. Avec FreeBSD 4.4 le périphérique gif “s'auto-duplique” et vous devriez utiliser le premier exemple (sans le nombre après gif). Les versions antérieures de FreeBSD nécessitent ce nombre. pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation) Ce pseudo-périphérique capture les paquets qui lui sont envoyés et les détourne vers le “daemon” de translation IPv4/IPv6. # The `bpf' pseudo-device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! pseudo-device bpf # Berkeley packet filter 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;. Le pseudo-périphérique bpf 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. # USB support #device uhci # UHCI PCI->USB interface #device ohci # OHCI PCI->USB interface #device usb # USB Bus (required) #device ugen # Generic #device uhid # Human Interface Devices #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 Support pour divers périphériques USB. Pour plus d'informations et pour avoir la liste de périphériques supplémentaires supportés par FreeBSD, voyez le fichier /usr/src/sys/i386/conf/LINT. Créer les fichiers spéciaux de périphériques fichiers spéciaux de périphériques MAKEDEV A pratiquement chaque périphérique correspond un “noeud” (ou fichier spécial de périphérique) dans le répertoire /dev. Ces fichiers spéciaux ressemblent à des fichiers ordinaires, mais sont en fait des points d'entrée particuliers dans le noyau que les programmes utilisent pour accéder aux périphériques. La procédure /dev/MAKEDEV, qui est exécutée à la première installation du système d'exploitation, crée la plupart des fichiers spéciaux de périphériques supportés. Cependant, elle ne les crée pas tous, donc quand vous ajoutez le support pour un nouveau périphérique, cela vaut la peine de vérifier que les entrées adéquates sont dans ce répertoire , et sinon, ajoutez-les. Voici un exemple simple: Supposons que vous ajoutez au noyau le support du lecteur de CD-ROMs IDE. La ligne pour l'ajouter est: device acd0 Cela signifie que vous devrez chercher des entrées commençant par acd0 dans le répertoire /dev, éventuellement suivies par une lettre, comme c,, ou précédées par la lettre r, qui désigne un périphérique en mode caractère - “raw”. S'il s'avère que ces fichiers n'existent pas, vous devez vous rendre dans le répertoire /dev et taper: MAKEDEV &prompt.root; sh MAKEDEV acd0 Quand la procédure s'achève, vous trouverez qu'il y a désormais des entrées acd0c et racd0c dans /dev, ce qui confirme qu'elle a bien fonctionné. Pour les cartes sons, la commande suivante crée les entrées adéquates: &prompt.root; sh MAKEDEV snd0 Quand vous créez des noeuds pour les périphériques comme les cartes sons, si d'autres personnes ont accès à votre machine, il est peut être souhaitable de protéger ces périphériques d'un accès depuis l'extérieur en les ajoutant au fichier /etc/fbtab. Voir la page de manuel &man.fbtab.5; pour plus d'informations. Suivez cette simple procédure pour tous les autres périphériques absents du noyau GENERIC pour lesquels les entrées n'existent pas encore. Tous les contrôleurs SCSI utilisent le même ensemble d'entrées dans /dev, vous n'avez donc pas besoin de les créer. Egalement, les cartes réseaux et les pseudo-périphériques SLIP/PPP n'ont pas d'entrées dans /dev, vous n'avez donc pas à vous en préoccuper. Si quelque chose se passe mal Il y a cinq types de problèmes qui peuvent survenir lors de la compilation d'un noyau sur mesure. Ce sont: La commande config échoue: 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 vous y référer rapidement avec vi. Par exemple, si vous avez: config: line 17: syntax error Vous pouvez aller directement au problème dans vi en tapant 17G en mode commande. Vérifiez que le mot-clé est correctement écrit, en le comparant avec le noyau GENERIC ou une autre référence. La commande make échoue: Si la commande make échoue, cela signale habituellement une erreur dans la description de votre noyau, mais 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. L'installation du nouveau noyau échoue: Si le noyau se compile sans problème, mais ne peut être installé (la commande make install ou make installkernel échoue), la première chose à vérifier est si votre système fonctionne à un niveau de sécurité égal à 1 ou supé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écurité 1 et supérieur empêche de modifier l'état immuable d'un fichier du système, l'installation du noyau doit être effectuée au niveau de sécurité 0 ou inférieur. Le noyau ne démarre pas: 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 système décompte à partir de 10. Au lieu de d'appuyez sur Entrée, appuyez sur une autre touche, puis tapez unload et ensuite boot kernel.old, 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. 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 /var/log/messages 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. Si vous avez des difficultés à compiler un noyau, veillez à conserver un noyau GENERIC, 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 kernel.old parce qu'en installant un nouveau noyau, kernel.old 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 fichier kernel où des commandes comme &man.ps.1; ne fonctionneront pas correctement. La commande correcte pour “déverrouiller” un noyau installé par make (pour mettre définitivement en place un autre noyau) est: &prompt.root; chflags noschg /kernel Si vous vous apercevez que vous ne pouvez pas effectuer cette opération, c'est que vous êtes probablement sous un “&man.securelevel.8;” supérieur à zéro. Editez la ligne kern_securelevel dans /etc/rc.conf et positionnez-la à -1, puis redémarrez. Vous pouvez repositionner l'ancienne valeur si vous êtes satisfait de votre nouveau noyau. Et, si vous voulez “verrouiller” votre nouveau noyau, ou tout autre fichier, de sorte qu'il ne puisse être déplacé ou modifié, utilisez: &prompt.root; chflags schg /kernel Le noyau est opérationnel, mais la commande ps ne fonctionne plus du tout: 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 4.X sur un système 3.X, de nombreuses commandes d'affichage de l'état du système comme &man.ps.1; and &man.vmstat.8; ne fonctionneront plus. Vous devez recompiler la bibliothèque libkvm de même que ces utilitaires. 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.