This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
| Manuel FreeBSD | ||
|---|---|---|
| Précédent | Chapitre 21. Ajouter de nouvelles options de configuration du noyau | Suivant |
Editez d'abord sys/conf/options (ou sys/i386/conf/options.<arch>, e. g., sys/i386/conf/options.i386), et sélectionnez le fichier opt_foo.h où votre option ira le mieux.
S'il y a déjà quelque chose qui se rapproche de l'objectif de la nouvelle option, utilisez-le. Par exemple, les options qui modifient le comportement général du sous-système SCSI vont dans opt_scsi.h. Par défaut, le fait d'indiquer une option dans le fichier d'option approprié, disons FOO, implique que sa valeur sera définie dans le fichier opt_foo.h. Ce peut être surchargé dans la partie droite de la règle en indiquant un autre nom de fichier.
S'il n'y a pas encore de fichier opt_foo.h pour la nouvelle option envisagée, inventez un nouveau nom. Faites en sorte qu'il soit significatif, et ajoutez des commentaires à la nouvelle section du fichier options[.<arch>]. config(8) s'apercevra automagiquement de la modification et créera ce fichier la prochaine fois qu'il sera utilisé. La plupart des options vont normalement dans un fichier d'en-tête qui leur est propre.
Incorporer trop d'options à un même opt_foo.h entraînera la recompilation de nombreux fichiers du noyau dès qu'une des options du fichier de configuration aura été modifiée.
Pour finir, déterminez quels fichiers du noyau dépendent de la nouvelle option. A moins que vous veniez de l'inventer, et qu'elle n'existe encore nulle part :
% find /usr/src/sys -name type f | xargs fgrep NEW_OPTION
vous aidera à les trouver. Editez ces fichiers et ajoutez-y :
#include "opt_foo.h"
au début, avant tout autre #include <xxx.h>. Cet ordre est très important, parce que les options peuvent surcharger les valeurs par défaut des fichiers inclus habituels, si les valeurs par défaut sont données sous forme :
#ifndef NOUVELLE_OPTION
#define NOUVELLE_OPTION (quelque chose)
#endif
dans l'en-tête habituelle.
Ajouter une option qui redéfinisse quelque chose dans un fichier d'en-tête du système (i.e., un fichier dans /usr/include/sys/) est presque toujours une erreur. opt_foo.h ne peut pas être inclus dans ces fichiers parce que cela dégraderait plus sérieusement les en-têtes, et s'il n'est pas inclus, il peut alors y avoir des valeurs inconsistantes pour l'option là où il est inclus. Oui, il y a déjà des précédents, mais cela ne rend pas l'opération plus correcte.
| Précédent | Sommaire | Suivant |
| Ajouter de nouvelles options de configuration du noyau | Niveau supérieur | Déboguer le noyau |
Ce document, ainsi que d'autres peut etre téléchargé a ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions a propos de
FreeBSD, lisez la documentation avant de
contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.