14.2. И что я должен для этого сделать?

Во-первых, отредактируйте файл sys/conf/options (или sys/<arch>/conf/options.<arch>, например sys/i386/conf/options.i386), и выберите файл opt_foo.h, в котором лучше всего поместить вашу новую опцию.

Если имеется что-то, уже похожее на предназначение новой опции, выберите это. Например, опции, изменяющие общее поведение подсистемы SCSI, могут быть помещены в opt_scsi.h. По умолчанию простое упоминание опции в соответствующем файле опций, скажем, FOO, приводит к тому, что ее значение помещается в соответствующий файл opt_foo.h. Это может быть переопределено в правой части правила указанием другого имени файла.

Если файла opt_foo.h для предполагаемой новой опции еще нет, придумайте новое имя. Сделайте его значимым и прокомментируйте новый раздел в файле options[.<arch>]. Утилита config(8) автоматически воспримет изменения и создаст этот файл при следующем своем запуске. Большинство опций должно оказаться в заголовочном файле..

Размещение слишком большого количества опций в одном файле opt_foo.h приведет к перестроению слишком большого количества файлов ядра при изменении одной из опций в конфигурационном файле.

Наконец, определите, какие файлы ядра зависят от новой опции. Если только вы не только что придумали вашу опцию и она еще нигде не упоминается, то команда

    % find /usr/src/sys -type f | xargs fgrep NEW_OPTION
          
вам поможет ее найти. Сделайте это и отредактируйте все эти файлы, а также добавьте
    #include "opt_foo.h"
вверху до всех строк #include <xxx.h>. Эта последовательность очень важна, так как опции могут переопределять значения по умолчанию из обычных включаемых файлов, если эти значения по умолчанию даются в форме
     #ifndef NEW_OPTION #define NEW_OPTION (что-то)
          #endif
в обычном заголовке.

Добавление опции, которая переопределяет что-то в системном заголовочном файле (то есть файле, находящемся в каталоге /usr/include/sys/), практически всегда ошибочно. opt_foo.h не может быть включен в те файлы, потому что это изменит заголовки более серьезно, но если он не включен, то в местах его включения может получиться рассогласованность значений для этой опции. Да, такие прецеденты имеют место и сейчас, но это их не оправдывает.