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é,
dans l'ordre où ils apparaissent dans le fichier
GENERIC
.
Pour une liste exhaustive des
options et périphériques dépendants de
l'architecture utilisée, consultez le fichier
NOTES
présent
dans le même répertoire que le fichier GENERIC
.
Pour les options ne dépendant pas de l'architecture,
consultez le fichier
/usr/src/sys/conf/NOTES
.
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
root
:
#
cd /usr/src/sys/i386
/conf && make LINT
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
C'est l'architecture de la machine. Elle doit être
alpha
, amd64
,
i386
, ia64
,
pc98
, powerpc
, ou encore
sparc64
.
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 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 lister
le fichier /var/run/dmesg.boot
pour visualiser les
messages de démarrage.
C'est l'identification du noyau. Vous devriez changer cela
pour le nom, quel qu'il soit, que vous donnez à votre noyau,
par exemple MONNOYAU
si vous avez suivi les
instructions des exemples précédents.
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 (e.g., vous voulez compiler
un noyau expérimental).
Le fichier
device.hints(5) est utilisé pour configurer les
paramètres des pilotes de périphériques.
Le loader(8) recherchera le fichier
/boot/device.hints
au démarrage.
En utilisant l'option hints
vous pouvez
compiler ces valeurs en statique dans votre noyau. Il
n'est alors pas utile de créer de fichier
device.hints
dans
/boot
.
Le processus normal de compilation de FreeBSD inclut
les informations de débogage lors de la compilation
du noyau avec l'option
-g
, qui autorisera les informations de
débogage quand le noyau sera passé à
gcc(1).
L'ordonnanceur (« scheduler ») traditionnel et par défaut de FreeBSD. Conservez cette ligne.
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.
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.
Ceci active les protocoles de communication IPv6.
C'est le système de fichiers de base sur disque dur. Gardez ces options si vous démarrez depuis le disque dur.
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. 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
mount(8) pour voir si les « Soft Updates » sont
activées sur les disques de votre système. Si
vous ne voyez pas apparaître l'option
soft-updates
alors vous devrez l'activer en
utilisant les commandes tunefs(8) (pour les systèmes
de fichiers existant) ou newfs(8) (pour les nouveaux
systèmes de fichiers).
Cette option active le support des listes de contrôle d'accès au système de fichiers (ACL). Elles reposent sur l'utilisation d'attributs étendus et d'UFS2, cette fonctionnalité est décrite dans la Section 14.12, « Listes de contrôle d'accès au système de fichiers ». Les ACLs 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.
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.
Cette option active le support pour des disques virtuels en mémoire utilisés comme périphérique racine.
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.
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
emulators/mtools
vous permet d'accéder à des disquettes DOS sans avoir
besoin de les monter (et ne requiert pas non plus
MSDOSFS
).
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.
Le système de fichiers pour les processus. C'est un
“pseudo-système” de fichiers monté sur
/proc
qui permet à des programmes comme
ps(1) de vous fournir plus d'informations sur les processus
qui tournent sur le système.
L'utilisation de PROCFS
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
PROCFS
: les
nouvelles installations ne monteront pas par
défaut ce système de fichiers.
Les noyaux 6.X faisant usage du système
PROCFS
doivent également inclure le
support pour PSEUDOFS
.
Cette option apporte la possibilité d'avoir un grand nombre de partitions sur un seul disque.
Compatibilité avec 4.3BSD. Conservez cette option; certains programmes auront un comportement bizarre si vous la commentez.
Cette option est nécessaires aux systèmes i386™ et Alpha fonctionnant sous FreeBSD 5.X pour supporter les applications compilées sur d'anciennes version de FreeBSD 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 FreeBSD 5.0, comme l'ia64 et SPARC64®, n'ont pas besoin de cette option.
Cette option est nécessaire sous FreeBSD 6.X et versions supérieures pour supporter les applications compilées sous FreeBSD 5.X et qui utilisent les interfaces d'appel système FreeBSD 5.X.
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.
Ceci permet de tracer le processus du noyau, ce qui est utile pour le débogage.
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.
Support des messages System V. Cette option n'augmente que de quelques centaines d'octets la taille du noyau.
Support des sémaphores System V. D'un usage moins courant, mais n'augmente la taille du noyau que de quelques centaines d'octets.
L'option -p
de la commande ipcs(1) donnera la liste des processus
utilisant chacun de ces mécanismes System V.
Extensions temps-réel ajoutées dans la norme POSIX® 1993. Certaines applications du catalogue des logiciels portés les utilisent (comme StarOffice™).
Cette option concerne le clavier. Elle installe une
entrée CDEV dans le répertoire
/dev
.
« Giant » est le nom d'un mécanisme
d'exclusion mutuelle (un « mutex » 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
ADAPTIVE_GIANT
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.
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 options SMP
pour
inclure le support pour plusieurs processeurs.
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.
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.
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.
C'est le contrôleur de lecteur de disquettes.
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.
Ceci est requis avec device ata
pour les
disques ATA.
Ceci est nécessaire avec device
ata
pour les disques RAID ATA.
Ceci est nécessaire avec device ata
pour le support des lecteurs de CDROM ATAPI.
Ceci est nécessaire avec device ata
pour le support des lecteurs de disquettes ATAPI.
Ceci est nécessaire avec device ata
pour le support des lecteurs de bande ATAPI.
Cela rend la numérotation des périphériques statique, sans cela l'allocation des numéros de périphériques sera dynamique.
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 *_REG_PRETTY_PRINT
sont des options de
débogage pour leur pilote respectif.
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.
Le pilote USB 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.
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.
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
).
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.
Utilisez ce périphérique si votre souris se branche sur le port PS/2.
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.
Pilote de la carte graphique.
Ecran/bannière de démarrage. Les économiseurs d'écran ont également besoin de ce pseudo-périphérique.
sc
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 vt
, 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.
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 sc
. 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
sc
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.
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.
“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 GENERIC
sous
FreeBSD 5.X et versions suivantes
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.
Support PCMCIA. Vous en avez besoin si vous utilisez un ordinateur portable.
Cela représente les ports séries, appelés
ports COM
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 sio(4) pour plus
d'informations sur les bonnes valeurs à ajouter à votre
fichier /boot/device.hints
.
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.
C'est l'interface parallèle du bus ISA.
Fournit le support pour le bus du port parallèle.
Support pour les imprimantes parallèles.
Les trois lignes précédentes sont nécessaires pour permettre le support des imprimantes parallèles.
C'est le pilote pour l'interface réseau sur port parallèle.
Port d'E/S d'usage général (“geek port”) + port d'E/S IEEE1284.
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.
Décommentez ce périphérique si vous disposez d'une carte PCI série ou parallèle « idiote » qui est supportée par le pilote puc(4).
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.
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.
Pilotes qui utilisent le code du contrôleur du bus MII.
Pilotes pour les cartes Ethernet ISA. Consultez le fichier
/usr/src/sys/
pour savoir
quelles cartes sont supportées et par quel pilote.i386
/conf/NOTES
Support 802.11 générique. Cette ligne est nécessaire pour le réseau sans fil.
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.
Support pour diverses cartes réseau sans fil.
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.
Générateur de nombres aléatoire sécurisé pour les applications de chiffrement.
ether
ne sert que si vous avez une carte
Ethernet. Cela intègre le code générique
pour le protocole Ethernet.
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.
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.
Ceci est utilisé par le programme PPP en mode utilisateur. Voyez la section PPP de ce manuel pour plus d'informations.
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.
Pseudo-périphérique de disque mémoire.
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 gif
« s'auto-duplique », et créera les fichiers
spéciaux de périphérique en fonction des
besoins.
Ce pseudo-périphérique capture les paquets qui lui sont envoyés et les détourne vers le “daemon” de translation IPv4/IPv6.
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 tcpdump(1).
Le périphérique bpf(4) est également utilisé par 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.
Support pour divers périphériques USB.
Support pour divers périphériques Firewire.
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/NOTES
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”—KVA). 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.
L'extension de l'adressage physique—,“Physical
Address Extension” (PAE) est une
caractéristique des microprocesseurs Intel® Pentium®
Pro et suivants autorisant les configurations mémoires
jusqu'à 64 gigaoctets. FreeBSD fournit un support pour
cette caratéristique via l'option de configuration du
noyau PAE
, disponible sous toutes les versions
actuelles de FreeBSD.
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.
Pour activer le support PAE dans le noyau, ajoutez simplement la ligne suivante dans votre fichier de configuration du noyau:
Le support PAE sous FreeBSD est uniquement disponible pour les processeurs IA-32 d'Intel®. Il doit être noté que le support PAE sous FreeBSD n'a pas été énormément testé, et devrait être considéré comme bêta comparé aux autres fonctionnalités stables de FreeBSD.
Le support PAE sous FreeBSD a quelques limitations:
Un processus est incapable d'accéder à plus de 4 gigaoctets d'espace mémoire.
Les modules KLD ne peuvent être chargés dans un noyau avec PAE activé, en raison des différences entre la structure d'un module et du noyau.
Les pilotes de périphériques qui
n'utilisent pas l'interface bus_dma(9)
seront à l'origine de corruption de données
avec un noyau PAE et ne sont pas
recommandés. Pour cette raison, le fichier de
configuration du noyau avec support
PAE
qui est fourni avec
FreeBSD exclut tous les pilotes connus
pour ne pas fonctionner avec un noyau avec support
PAE.
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 PAE.
Un bon exemple est le “sysctl”
kern.maxvnodes
, 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.
Il pourra être nécessaire d'augmenter l'espace
d'adressage virtuel du noyau (“kernel virtual
address”—KVA) 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
KVA. L'option du noyau
KVA_PAGES
peut être employée
pour augmenter l'espace KVA.
Pour des considérations de performance et de stabilité, il est recommandé de consulter la page de manuel tuning(7). La page de manuel pae(4) contient des informations à jour sur le support PAE sous FreeBSD.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.