FreeBSDカーネルのコンフィグレーション
原作: &a.jehamby;. 6 October 1995.
訳:
&a.tomo;,
&a.yoshiaki;.
2 November 1996.
この章はシステムに合わせたカーネルの再構築の基礎について
述べたものです. この章は, システム管理の初心者から
Unixシステム管理に十分な経験を積んだ人までを対象としています.
なぜカスタムカーネルを作るか?
システムに合わせたカーネルの構築はすべての
Unixシステム管理者が
避けて通ることのできない最も重要な通過儀礼の1つです.
この作業は, 多くの時間を必要としますが, あなたの FreeBSD
システムに多くの利益をもたらします. GENERICカーネルは,
めったに使われることのないハードウェアをサポートするとともに,
考えられるすべての SCSIカードやネットワークカードをサポート
しなければなりませんが, システムに合わせたカーネルは
あなたの PC のハードウェアのみをサポートします.
これは, 次にあげるような利益をもたらします.
- あなたが持っていないハードウェアについては検出をおこなわな
いので, ブートにかかる時間が短くなります.
- システムに合わせたカーネルは多くの場合メモリ使用量が
減ります. カーネルはいつもメモリ上に存在するので,
不必要なコードがあると本来プログラムが利用できるはずの
RAM (実メモリ) を占めてしまいますのでこれは重要なことだ
といえます.
したがって, メモリが少ないシステムでは,
カーネルの再構築は大変重要です.
- 必要に応じていくつかのカーネルオプションは調整すること
ができ, またサウンドカードのような GENERICカーネルには
ないデバイスドライバをカーネルに含めることが
できます.
カスタムカーネルの構築とインストール
まず, カーネル再構築に必要なディレクトリをざっと見てみましょう.
ここではディレクトリはすべて /usr/src/sys以下の相対位
置で示します. また, /sysからもアクセス可能です.
ここには, カーネルの各部分を構成するサブディレクトリが
いくつもあります. しかし, 私たちの目的では
最も重要なのは i386/confです. ここで, あなたの
システムに合わせてカーネル コンフィグレーションを編集します.
それから compileディレクトリ, ここはカーネルが作られる
場所です. サポートされているデバイスやファイルシステムのディレ
クトリツリーがオプション毎にサブディレクトリに分かれている論理
的構成に注意してください. また, i386のディレクトリは
PCのハードウェアのみを扱い, i386以外のディレクトリは
FreeBSDが他のプラットフォームに移植される際には共有されるコー
ドです.
/usr/src/sys
以下のディレクトリがなければ, カーネルのソースが
インストールされていません. パッケージのインストール手順にしたがっ
て, システムにインストールしてください.
つぎに, i386/confに移動して, GENERIC
コンフィグレーションファイルをカーネルに与えたい名前に
コピーしてください. たとえば:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
慣習として, この名前はすべて大文字でつづられます. もし,
いくつかの異なるハードウェアの FreeBSDマシンを扱うなら,
この名前にホスト名を含めるとよいでしょう.
ここでは, 例として MYKERNEL と呼ぶことにします.
では, MYKERNELをあなたの好きなエディタで編集してください.
もし, システムをインストールしたばかりならば, 利用できる
エディタは viだけかもしれません. ここでは使い方
の説明はしませんが, [にあるような多くの本で詳しく説明
されていますので, そちらを参照してください.
まずファイルの最初の方のコメント行を編集し, あなたのコンフィグ
レーションに合せて変更した点などを記述して GENERICと区別がつく
ようにしておきましょう.
もし SunOSや他の BSDオペレーティングシステムでカーネルの
再構築をしたことがあれば, このファイルはとても親しみ
やすいでしょう. しかし, DOSのようなその他の
オペレーティングシステムしか知らない人から見れば,
GENERICコンフィグレーションファイルはとても
なじみにくいものかもしれません. そのような場合は, ][
の節をゆっくりと注意深く読んでください.
]config(8)を取ってくる必要があるかもしれません. これは
/usr/src/usr. sbinにあります. したがってこれらのソースをダ
ウンロードする必要があります. 次のコマンドを実行する前に
(configを)作りインストールをしておいてください.
編集し終ったら, 次のコマンドによってコンパイル, インストール
を行ってください.
# /usr/sbin/config MYKERNEL
# cd ../../compile/MYKERNEL
# make depend
# make
# make install
新しいカーネルはルートディレクトリに /kernelという
名前でコピーされ, 今までのカーネルは /kernel.old
という名前へ変更されます. では, システムをシャットダウン, リブー
トして新しいカーネルを使ってください. うまく行かない場合は,
この章の終りの
[
を参照してください. この章の新しい
][
場合のリカバリの方法を注意深く読んでおいてください.
]/devディレクトリで
デバイスノードを追加しなければならないかもしれません.
詳しくは, [を読んでください. ]
コンフィグレーション ファイル
コンフィグレーション ファイルの一般的なフォーマット
はとてもシンプルです. 各行は1つのキーワードと1つ以上の
引数を含んでいます. 見やすくするために, ほとんどのキーワードは
引数を1つしか書いてありません.
#に続くものはすべてコメントとして扱われ,
無視されます. ここでは, それぞれのキーワードについて
だいたい GENERICに出てくる順番で説明します. しかし,
お互いに関係のあるキーワードは, 実際には GENERICファイル上に
バラバラに現れていても, (ネットワーキングのように)1つにまとめ
てあります.