
カスタムカーネルを作る場合に起きるトラブルは4種類に分けられま す.
カーネルにあなたの設定をおこなった場合で configコ
マンドが失敗したのであれば, 多分どこかで単純な間違いを
やっているのでしょう. さいわい, configはトラ
ブルの起きた行番号を出力しますので viで素早く
見つけることができます. 例えばもし次のように出力されれ
ば,
config: line 17: syntax error
viのコマンドモードで ``17G''とタイプすればあな
たは問題のところへ飛ぶことができます. GENERIC カーネル
のファイルや他のリファレンスと比較して注意深く修正して
ください.
make コマンドが失敗した場合には, カーネル設定で
configがとらえられなかったような間違いをして
いることが多いようです. ふたたびコン
フィグレーションを見直してください. それでも問題を解決
することができなければ FreeBSD 一般的な質問メーリングリスト
<freebsd-questions@FreeBSD.ORG>へあなたのカーネルのコンフィグレーションをつけてメー
ルしてください. 誰かが素早く間違いを見つけてくれるで
しょう.
新しいカーネルがブートしなかったり, デバイスの認識をしな い場合でもあわてないでください! さいわい, BSDは利用で きないカーネルから復帰する優れたメカニズムがあります. FreeBSDの bootプロンプトでリターンキーを押すかわりに 単にブートさせたいカーネルの名前 (例えば ``kernel.old'') をタイプするだけです. カーネルの再設定 をおこなう場合に現在のカーネルを利用できるように取ってお くのはよい考えです.
問題のないカーネルでブートした後にあなたのコンフィグレー
ションファイルを調べ, 再び構築を試みてください.
/var/log/messages ファイルにはすべての成功した
ブートのカーネルのメッセージやその他の記録があり, これ
は助けになる情報の一つでしょう. また,
dmesg(8)コマンドは現在のブート時のカーネルメッ
セージを出力します.
注: カーネルの構築中にトラブルが起きた時に使 うために GENERICや他のカーネルを次の構築で消されない ように異る名前で保存するようにしてください.kernel. oldは新しいカーネルをインストールする 時に, その一つ前にインストールしたうまく動かないかもしれ ないカーネルで上書きされてしまいますので当てにできませ ん. またできる限り早く動作しているカーネルを本来の ``kernel''の位置に移動させてください. そうしないとps(1)のようなコマンドが正しく動きません.makeでインストールされたカーネルのファイルを (別のカーネルに戻すために) 「アンロック」するための特別 のコマンドはです. また, 新しい置き換えたカーネルあるいは重要ファイ ルを動かしたり変更されないように「ロック」するには 次のようにします.# chflags noschg /kernel# chflags schg /kernel
ps は動かない!システムユーティリティと異るバージョンのカーネルをインス
トールした場合, 例えば 実験的に ``2.2.0''のカーネルを
2.1.0-RELEASEシステム上にインストールするような場合,
ps(1)や vmstat(8)のような多くのシ
ステムステータスコマンドは動かなくなります. libkvm を
再コンパイルしてこれらのユーティリティを作りなおす必要がありま
す. これは, オペレーティングシステムのそれ以外の部分と異るバージョ
ンのカーネルを使うことが普通はあまりよくない理由の一つです.
www@freebsd.org