CONFIG(8)

名称
config - システムを構築するために必要なファイルの作成

書式
config [-gpr] [-d destdir] SYSTEM_NAME

解説
これは古いバージョンの config プログラムです。 このプログラムは、古いオートコンフィギュレーションスキームを理解します。 このスキームは HP300, i386, DECstation やその派生プラットフォームにて 使用されます。 新しいバージョンの config は SPARC プラットフォームで使用されます。 あなたが使用しているアーキテクチャに適合したバージョンの config のみがあなたのマシンにインストールされているでしょう。

config は、システムの構成を記述した設定ファイル SYSTEM_NAME にもとづいてシステムを構築するために必要なファイルを作成します。 別のファイルが、 config に対し、 システム生成に必要なファイルと、 構成依存ファイルセットにより追加されるファイルとを指示します。 構成依存ファイルセットは、固有マシン用代替ファイルを指定します (以降に示す 関連ファイル を参照)。

オプションとオペランドしては以下のものがあります:

-d destdir
    デフォルトの出力ディレクトリの代わりに、 destdir に出力します。 config は与えられたディレクトリに SYSTEM_NAME を追加しないことに注意してください。

-g  システムのデバッグのための設定をします。

-p  プロファイリングを行うシステムを構築します。プロファイルを行うものは例えば kgmon(8) や gprof(1) などです。 -p オプションを 2 度以上指定すると、 config はより詳細なプロファイリングを行うシステムを構築します。

-r  以前のコンパイル用ディレクトリを削除します (以降参照)。

SYSTEM_NAME
    SYSTEM_NAME はシステム設定ファイルの名前であり、システム設定ファイル にはデバイスの仕様、構築するシステムのオプション、 その他のシステムパラメータの記述をします。

config はシステムソースの conf サブディレクトリで起動します (通常 /sys/ARCH/conf) 。ただし ARCH には FreeBSD がサポートしているアーキテクチャの一つが入ります。 config は必要により ../../compile/SYSTEM_NAME か、または -d オプションで指定されたディレクトリ を作成し、そこにすべての出力ファイルを置きます。 出力ディレクトリが既に存在し、 -r オプションが指定されている場合、 ディレクトリがまず削除されます。 config の出力は多くのファイルです; i386 の場合は次のようなファイルになります: ioconf.c はシステムに接続された I/O デバイスの記述です; Makefile は make(1) がシステム構築に使用するファイルです; ヘッダファイルはシステムに組み込まれる多くのデバイスに関する定義です。

config の実行後は、 “make depend” を Makefile が作成されたディレクトリで実行する必要があります。 config は正常終了すると、これを促すメッセージ表示を行います。

config が、これとは異なるエラーメッセージ表示を行った場合には、 設定ファイルの記述の誤りを修正し、再度 config を実行する必要があります。 コンフィギュレーションでエラーとなったシステムをコンパイルしようとしても、 おそらく失敗するでしょう。

設定ファイル中に options INCLUDE_CONFIG_FILE を指定した場合、 該ファイル全体が作成されるカーネルに埋め込まれます。 これは、 strings(1) によって該ファイルをカーネルから引き出す事が出来ることを意味します: 構成情報を抽出するには以下のコマンドを使用してください:

    strings kernel | grep ___

デバッグカーネル
“デバッグ” カーネルをコンパイルすることはシステムにひどく負荷を掛けるため、 伝統的な 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/conf/files.SYSTEM_NAME
    ARCH 上の SYSTEM_NAME 特有のファイルのリスト
/sys/compile/SYSTEM_NAME
    SYSTEM_NAME システム固有のデフォルトカーネル構築ディレクトリ

関連項目
セクション 4 にある、デバイスのマニュアルの 書式 の部分。 Building 4.3 BSD UNIX System with Config.

バグ
エラーメッセージにおいて報告される行番号は1行ずれます。

歴史
config コマンドは 4.1BSD から登場しました。