CONFIG(8) | FreeBSD System Manager's Manual | CONFIG(8) |
名称
config — システムを構築するために必要なファイルの作成書式
config | [ -CVgp][ -d destdir] SYSTEM_NAME |
config | [ -x kernel] |
解説
config ユーティリティは、システムの構成を記述した設定ファイル SYSTEM_NAME にもとづいてシステムを構築するために必要なファイルを作成します。別のファイルが、 config に対し、システム生成に必要なファイルと、構成依存ファイルセットにより追加されるファイルとを指示します。構成依存ファイルセットは、固有マシン用代替ファイルを指定します (以降に示す 「関連ファイル」 を参照)。オプションとオペランドには、以下のものがあります:
- -V
- config のバージョン番号を印刷 (表示) します。
- -C
- INCLUDE_CONFIG_FILE が設定ファイルに存在しているなら、カーネルイメージは、(コメントも保存して) そのままの文字通りに完全な設定ファイルを含みますこのフラグは、後方互換性のために保持されています。
- -d destdir
- デフォルトの出力ディレクトリの代わりに、 destdir に出力します。 config は、与えられたディレクトリに SYSTEM_NAME を追加しないことに注意してください。
- -m
- このカーネルのための MACHINE と MACHINE_ARCH 値を印刷して、終了します。
- -g
- システムのデバッグのための設定をします。
- -x kernel
- カーネルファイルの中に埋め込まれたカーネル設定ファイルを印刷 (表示) します。このオプションは、利用者の設定ファイルに options INCLUDE_CONFIG_FILE エントリが存在している場合のみ、意味があります。
- -p
- プロファイリングを行うシステムを構築します。プロファイルを行うものは、例えば kgmon(8) や gprof(1) などです。 -p オプションを 2 度以上指定すると、 config は、より詳細なプロファイリングを行うシステムを構築します。
- SYSTEM_NAME
- SYSTEM_NAME は、システム設定ファイルの名前であり、システム設定ファイルにはデバイスの仕様、構築するシステムのオプション、その他のシステムパラメータの記述をします。
config ユーティリティは、システムソースの conf サブディレクトリで起動します (通常 /sys/ARCH/conf)。ただし ARCH には FreeBSD がサポートしているアーキテクチャの一つが入ります。 config ユーティリティは、必要により ../compile/SYSTEM_NAME か、または -d オプションで指定されたディレクトリを作成し、そこにすべての出力ファイルを置きます。 config の出力は、多くのファイルです。 i386 の場合は、次のようなファイルになります: Makefile は、 make(1) がシステム構築に使用するファイルです。ヘッダファイルは、システムに組み込まれる多くのデバイスに関する定義です。
config の実行後は、“ make depend
”を Makefile が作成されたディレクトリで実行する必要があります。 config ユーティリティは、正常終了すると、これを促すメッセージ表示を行います。
config が、これとは異なるエラーメッセージ表示を行った場合には、設定ファイルの記述の誤りを修正し、再度 config を実行する必要があります。コンフィギュレーションでエラーとなったシステムをコンパイルしようとしても、おそらく失敗するでしょう。
デバッグカーネル
“デバッグ”カーネルをコンパイルすることは、システムにひどく負荷を掛けるため、伝統的な BSD カーネルは、シンボルを除いてコンパイルされてきました。デバッグカーネルは、全てのソースファイルの完全なシンボルを持っているため、経験を積んだカーネルプログラマが問題の原因を解析できるようになります。 4.4BSD-Lite 以前からあったデバッガは、通常のカーネルからはあまり情報を見つけられませんでした。 gdb(1) は、通常のカーネルからはほとんど情報を得ることはできず、意義のある解析を行なうには、デバッグカーネルが必要です。歴史と時間、スペースの問題で、 FreeBSD は、デフォルトではデバッグカーネルを構築しません。デバッグカーネルは、構築に 30% 近く長く掛かり、デバッグ用でないカーネルでは、約 6 MB で済むところを、構築用ディレクトリに約 30 MB のディスク容量を必要とします。デバッグカーネルは、デバッグ用でないカーネルが約 2MB であるのに対して、約 11 MB のサイズになります。このスペースは、ルートファイルシステムと動作時のメモリの両方に効いてきます。デバッグカーネルを作るには、 -g オプションを使います。このオプションを用いると、 config は、カーネル構築ディレクトリに 2 つのファイルを構築します:
- kernel.debug が完全なデバッグカーネルです。
- kernel は、カーネルのデバッグシンボルを削除したコピーです。このカーネルは、通常のデバッグ用でないカーネルと同じ物です。
現在は、デバッグカーネルをインストールしてブートする意義はあまりありません。なぜならシンボルを利用できるツールは、オンラインでは動かないためです。それゆえ、デバッグカーネルをインストールするには、2 つのオプションがあります。
- “
make install
” kernel をルートファイルシステムにインストールします。 - “
make install.debug
” kernel.debug をルートファイルシステムにインストールします。
関連ファイル
- /sys/conf/files
- システム生成に必要な共通のファイルのリスト
- /sys/conf/Makefile. ARCH
- ARCH 用の一般的な makefile
- /sys/conf/files. ARCH
- ARCH 特有のファイルのリスト
- /sys/ ARCH /compile/ SYSTEM_NAME
- ARCH 上の SYSTEM_NAME システム固有のデフォルトカーネル構築ディレクトリ
歴史
config ユーティリティは、 4.1BSD で登場しました。-x のサポートが導入される前に、すべての設定ファイルを含める、 options INCLUDE_CONFIG_FILE は、新しいカーネルに埋め込まれるために使用されていました。これは、カーネルからそれを抽出するために strings(1) を使用することができることを意味しました: 設定情報を抽出するために、利用者は、次のコマンドを使用しなければなりませんでした:
strings -n 3 kernel | sed -n 's/^___//p'
バグ
エラーメッセージにおいて報告される行番号は、1 行ずれます。May 8, 2007 | FreeBSD |