EN JA
CONFIG(5)
CONFIG(5) FreeBSD File Formats Manual CONFIG(5)

名称

configカーネル設定ファイルの形式

解説

カーネル設定ファイルには、 FreeBSD カーネルの設定を指定します。これは make(1) を使ってビルドする、カーネルのビルド環境を生成するために、 config(8) によって処理されます。

構文構造

カーネル設定ファイルは、一連の指示ディレクティブからなります。

指示ディレクティブは、行頭のキーワードで始まり、付加的な引数がそれに続きます。

指示ディレクティブは、セミコロン‘ ;’か改行で終了できます。長い入力行は、空白で始まる行を続けることで、短い行に分割することができます。

大文字/小文字には意味があり、“ machine”と“ MACHINE”は異なるトークンです。

ダブルクォート文字の‘ "’は、クォート文字列の始まりです。次のクォート文字までの全ての文字は、クォート文字列としての値を持ちます。‘ "’文字は‘ \"’シーケンスを用いることで、クォート文字列の中に入れることができます。

数値は C 風の文法で記されます。

#’文字はコメントの始まりです。‘ #’文字の後ろから、その行末までの全ての文字は無視されます。

クォート文字列の中を除き、トークンの間の空白は無視されます。コメント行に続く空白は無視されます。

設定ディレクティブ

カーネル設定ディレクティブは、カーネル設定ファイル中において任意の順番で現れることができます。ディレクティブは現れる順番に、後のディレクティブ行でそれ以前のディレクティブの効果を上書きするようにして処理されます。

キーワードとその意味のリストは、以下のようなものです。

cpu cputype
このカーネルを動かすであろう CPU を指定します。ひとつ以上の cpu ディレクティブを設定ファイル中に書くことができます。 CPU 名として指定可能なリストはアーキテクチャ固有であり、ファイル sys/conf/options.< arch>で定義されています。

device name [ , name [ ...]]
devices name [ , name [ ...]]
指定したデバイスをカーネルイメージに含めるように設定します。全てのアーキテクチャで共通のデバイスは、ファイル sys/conf/files で定義されています。アーキテクチャ arch 固有のデバイスは、ファイル sys/conf/files.< arch>で定義されています。

env filename
カーネルの環境定義を含んだファイルの名前を指定します。カーネルは通常、起動時に loader(8) によって用意された環境を用います。このディレクティブは、この起動環境を無視し、代わりにコンパイル時に組み込まれた環境をカーネルが使うようにします。

このディレクティブは、 loader(8) から起動しないような組み込み環境向けにカーネルをチューニングする時に有用です。

files filename
そのカーネル設定ファイルに固有のファイルのリストを含むファイルを指定します ( files.< arch>という風に)。

hints filename
静的なデバイス設定指示のために読み込むファイルを指定します。 FreeBSD 5.0 以降、カーネルは起動時に、システムのデバイス設定を読み込みます ( device.hints(5) を参照)。このディレクティブはカーネルに、 filename 中に列挙した静的なデバイス設定を使うように設定します。ファイル filename は、 device.hints(5) に規定された文法に従っている必要があります。複数のヒント行が可能です。結果のヒントは、現れた順序で連結されたファイルとなります。

ident name
カーネルの名前を name にします。少なくともひとつの ident ディレクティブが必要です。

include filename
続くテキストをファイル filename から読み込み、 filename がきちんと処理できたら、現在のファイルに戻ります。

machine arch [ cpuarch]
カーネルがコンパイルされる、マシンのアーキテクチャを指定します。 arch として正しい値は、以下のものを含みます。

alpha
DEC Alpha アーキテクチャ。
arm
ARM アーキテクチャ。
amd64
AMD x86-64 アーキテクチャ。
i386
Intel x86 ベースの PC アーキテクチャ。
ia64
Intel IA64 アーキテクチャ。
mips
MIPS アーキテクチャ。
pc98
PC98 アーキテクチャ。
powerpc
IBM PowerPC アーキテクチャ。
sparc64
Sun Sparc64 アーキテクチャ。

引数 cpuarch が指定されるなら、マシンの cpu アーキテクチャのための config(8) に使用されます。現在 pc98 アーキテクチャは、cpu アーキテクチャを i386 と設定する必要があります。 cpuarch が指定されないとき、 arch と同じであると想定されます。 arch は、MACHINE に対応します。 cpuarch は、MACHINEXARCH に対応しています。

カーネル設定ファイルは machine ディレクティブをひとつだけ持つことができます。

makeoption options
makeoptions options
生成される makefile に対して、 options を追加します。

options 引数はコンマで区切られた、ひとつ以上のオプション指示のリストです。各オプション指示は次の形式を持ちます。

MakeVariableName[ = Value]
MakeVariableName+= Value

これにより、適切な make(1) 変数定義が、生成される makefile に挿入されます。名前だけの make(1) 変数を指定した場合、 value は空の文字列とみなします。

使用例:

makeoptions MYMAKEOPTION="foo" 
makeoptions MYMAKEOPTION+="bar" 
makeoptions MYNULLMAKEOPTION

maxusers number
このオプションディレクティブは、いくつかのカーネルデータ構造体の大きさを設定するのに使われます。引数 number は、0 (デフォルト) または 2 以上の整数値です。値 0 は、利用可能な物理メモリの大きさに従って、カーネルが自身のデータ構造体を設定することを表します。自動設定が要求されれば、カーネルはこの値を 32 から 384 の間で調節するでしょう。

tuning(7) で説明しているように、この値は起動時に loader(8) を使って設定することもできます。

nocpu cputype
以前に選択された CPU のリストから指定された CPU を削除します。 include を使用してインクルードされたファイルの cpu ディレクティブの効果を取り消すために、このディレクティブを使用することができます。

nodevice name [ , name [ ...]]
nodevices name [ , name [ ...]]
以前に選択されたデバイスのリストから指定されたデバイスを削除します。このディレクティブは、 include を使用して取り込んだファイル中の device または devices ディレクティブの効果を取り消すために使うことができます。

nomakeoption name
nomakeoptions name
カーネルをビルドする際に、以前に定義された make(1) オプションの name を削除します。このディレクティブは、 include を使って取り込んだファイル中の makeoption ディレクティブの効果を取り消すために使うことができます。

nooption name [ , name [ ...]]
nooptions name [ , name [ ...]]
以前に定義されたオプションのリストから指定されたカーネルオプションを削除します。このディレクティブは、 include を使用して取り込んだファイル中の option または options ディレクティブの効果を取り消すために使うことができます。

option optionspec [ , optionspec [ ...]]
options optionspec [ , optionspec [ ...]]
カーネルをビルドする際に、コンパイル時のカーネルオプションを追加します。各オプション指示は、次の形式を持ちます。

name[ = value]

value が指定されない場合は、 NULL であるとみなします。全てのアーキテクチャで共通のオプションは、ファイル sys/conf/options で規定されています。アーキテクチャ arch 固有のオプションは、ファイル sys/conf/options.< arch>で規定されています。

profile number
number が非 0 の場合、カーネルプロファイリングが有効になります。 number が 2 以上の場合、カーネルは高精度プロファイリングに設定されます。カーネルはまた、 -p オプションを config(8) で使うことでも、プロファイリング用にビルドできます。

廃止されたディレクティブ

以下のカーネル設定ディレクティブは廃止されました。
config
このディレクティブは、ルートファイルシステムとして使われるデバイスを指定するために使われていました。 FreeBSD 4.0 以降、この情報はカーネルを起動する際に loader(8) から渡されます。

関連ファイル

sys/compile/ NAME
カーネル設定で作成されたコンパイルディレクトリ。
sys/conf/Makefile. arch
アーキテクチャ arch のための Makefile の一部。
sys/conf/files
全てのアーキテクチャに共通のデバイス。
sys/conf/files. arch
アーキテクチャ arch のためのデバイス。
sys/conf/options
全てのアーキテクチャに共通のオプション。
sys/conf/options. arch
アーキテクチャ arch のためのオプション。

関連項目

kenv(1), make(1), device.hints(5), loader.conf(5), config(8), kldload(8), loader(8) Samuel J. Leffler and Michael J. Karels, Building 4.4BSD Kernels with Config.

歴史

config(8) ユーティリティは、 4.1BSD ではじめて登場し、その後に 4.4BSD で改正されました。

カーネル設定機構はさらに、 FreeBSD 4.0FreeBSD 5.0 において、動的カーネル設定をサポートするアーキテクチャへと変更されました。

December 3, 2005 FreeBSD