カスタムカーネルを作る場合に起きるトラブルは、 次の 4 種類に分けられます。
config
コマンドの失敗config(8) が失敗したのであれば、 おそらく単純なエラーです。 さいわい、config(8) はトラブルの起きた行番号を出力します。 例えば、次のように出力された場合
config: line 17: syntax error
17 行目のキーワードが正しく入力されているかどうか、
GENERIC
カーネルのファイルや、
他のリファレンスと比較して注意深く修正してください。
make
コマンドの失敗make
が失敗した場合には、
カーネル設定で config(8)
がとらえられなかったような間違いをしていることが多いようです。
コンフィグレーションファイルを見直してください。
それでも問題を解決することができなければ、
FreeBSD general questions メーリングリスト
へカーネルコンフィグレーションファイルをつけてメールしてください。
新しいカーネルが起動しなかったり、
デバイスの認識をしない場合でもあわてないでください!
さいわい、FreeBSD
には利用できないカーネルから復帰する洗練されたメカニズムがあります。
FreeBSD のブートローダで起動したいカーネルを選択してください。
システムの起動メニューが表示されている時に、
「Escape to a loader prompt」
オプションを選択するとアクセスできます。
プロンプトで
boot kernel.old
か他の正常に起動するカーネルを入力してください。
カーネルの再設定をおこなう場合にはいつも、
確実に動くことが分かっているカーネルを用意しておくようにすると良いでしょう。
問題のないカーネルで起動した後、
コンフィグレー ションファイルを調べ、
再び構築を試みてください。
/var/log/messages
にはすべての成功した起動時のカーネルメッセージの記録があり、
これは助けになる情報の一つでしょう。また、
dmesg(8) は現在の起動時のカーネルメッセージを出力します。
カーネルの構築中にトラブルが起きた時に使うために、
GENERIC や他のカーネルを次回の構築で消されないよう別の名前で保存するようにしてください。kernel.old
は新しいカーネルをインストールする時に、
その一つ前にインストールした、
うまく動かないかもしれないカーネルで上書きされてしまうので当てにできません。
できる限り早く動作しているカーネルを本来の
/boot/kernel
の位置に移動させてください。
そうしないと
ps(1) のようなコマンドが正しく動きません。これを行うには、
以下のように正しく起動するカーネルを含むディレクトリ名に変更するだけです。
#
mv /boot/kernel /boot/kernel.bad
#
mv /boot/kernel.good /boot/kernel
システムユーティリティの構築されたバージョンと異るバージョンのカーネルをインストールした場合、 例えば -CURRENT のカーネルを -RELEASE 上にインストールするような場合、 ps(1) や vmstat(8) のような多くのシステムステータスコマンドは動かなくなります。 修正するには、カーネルと同じバージョンのソースツリーで world を再構築し、インストール してください。 これは、カーネルとそれ以外で異なるバージョンを組み合わせてオペレーティングシステムを使用することが推奨されない理由の一つとなっています。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。