kernelはOSの最も重要な基本部分です。
FreeBSDをインストールした時にロードされるkernelはGENERICなkernelと呼ばれ、標準的なデバイスがサポートされています。
つまり標準的なデバイスがサポートされているということは、自分のPCにとって必要の無いデバイスまで含まれていたりします。
この必要の無いデバイスの部分を削ったり、GENERICに含まれていないデバイスを使いたい場合に、kernelを自分のPC用に作ることができます。
これをkernelの再構築と言います。
再構築することによって起動時間を大幅に短縮できたりメモリ使用量を減らしたりできるので、これは是非覚えておくべきだと思います。
kernelを再構築する時には、kernelのコンフィグファイルが必要になります。
GENERICなkernelはGENERICというconfigファイルでサポートデバイスが定義されています。
自分でkernelのコンフィグファイルを作るときは、まずGENERICなkernelのコンフィグファイルのコピーを作り、それを編集していくことになります。
kernelの再構築にはsysのソースファイル(/usr/src/sys)が必要なので、無い方はcvsupでとってくるか、/stand/sysinstallのDistributionsから入れてください。
> su
# cd /usr/src/sys/i386/conf
# cp GENERIC CELIES
上の例では「CELIES」という新しいconfigファイルを作成しました。
これを改造して、自分専用のconfigファイルを作ります。
この記事では、新しく作ったconfigファイルを「CELIES」として話を進めます。
# vi CELIES
新しいコンフィグファイルを開いたら、最初に上の方にあるidentを変更します。
ident CELIES (コンフィグファイルと同じ名前に変更)
これ以外は、基本的にはデバイス名の頭にコメントアウト(#)を付けるかどうかがメイン作業になります。
例えば、SCSIデバイスが無いPCの場合、SCSIやRAID関係の部分は全てコメントアウトします。
必要かどうか判断できない場合はデフォルトのままで良いでしょう。
各行の説明は、コンフィグファイルが置いてあるディレクトリ内にあるNOTESファイルや、Web上ですと
http://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/kernelconfig-config.html
に詳しく書いてありますので参考にすると良いでしょう。
configファイルが完成したら、早速kenelを再構築しましょう。
最初にconfigコマンドで構文が正しいかをチェックし、コンパイル用のディレクトリを作成します。
# config CELIES
何もエラーが無ければ、コンパイル用に作られたディレクトリへ移動しmake dependを行ってください。
# cd ../compile/CELIES
# make depend
make dependが何もエラーが発生せず終わった場合はmakeでコンパイルしてmake installでインストールします。
# make
# make install
これが終わると、新しいkernelが/boot/kernelに作成されます。
古いkernelはkernel.oldとして残りますので、後から戻すことも可能です。
再起動して、自分が作ったkernelがちゃんと動くか確認してください。
無事起動できたら、
> uname -a
を実行してkernelが変わっているかを確認したり、dmesgコマンドで自分がkernelに追加したデバイスが動作しているか、削除したはずのデバイスが動いてないか等を確認してください。
一応、私の作ったLavieのconfigファイルを公開しておきます。
NEC LavieM LM500/7D kernel configファイル