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.0 と FreeBSD 5.0 において、動的カーネル設定をサポートするアーキテクチャへと変更されました。
December 3, 2005 | FreeBSD |