
カーネルの再構築
(1998/5/18 更新)
カーネルのソースコードは、/usr/src/sys(/sysは、これへのシンボリックリンク)にあります。 なければ、ソースのアーカイヴファイル名はsys.tar.gzなので、
- # cd /usr
- # tar ztvpf sys.tar.gz
とします。
再構築の手順は、次の通りです。
- # cd /sys/arch/mac68k/conf
- # cp GENERIC TEST
GENERICをコピーして定義ファイルを作成する。 例えば、TESTとしています。
- 必要に応じてこのTESTを編集します。
- # config TEST
これで、../compileにTESTというディレクトリが作られます。 ここでなにかエラーが出る場合、定義ファイルの内容に間違いがないか確認します。(もちろんエラーメッセージの内容によります)
currentをコンパイルする場合などで、もし、GENERICでもエラーが出る場合、configコマンドと再構築するソースとが合っていないかもしれませんので、現在のソースに対応したconfigを手に入れてます。 currentの場合、configのソースはconfig.tar.gzにあります。
- # cd ../compile/TEST
- # make depend
- # make
これで、netbsdというファイルが出来、これがカーネルです。
また、カーネルは、/にある必要が有ります。
- # mv /netbsd /netbsd.old
現在のカーネルを別の名前にしておきます。 今動作しているカーネルを保存しておくということは大変重要です。 仮に再構築したカーネルに不具合があったり、ブートしなかった場合、即座に元のカーネルに戻すことができます。
- # mv netbsd /
再構築したカーネルを/に移動します。
- # reboot
これで、準備はできましたので、再起動します。
もし、再構築したカーネルに不具合があったり、ブートしなかった場合は、元の保存しておいたカーネルでブートし、元に戻しましょう。 手順は次の通りです。
- 「BSD/Mac68k Booter」のOptionsメニューのBooting...で、Kernel nameを「netbsd.old」とし、Single
Userをチェックして、起動させます。
- 次のプロンプトで一旦停止しますので、リターンだけ押します。
Enter pathname or shell or return for sh:
Terminal Type?:vt220
- ファイルシステムをチェックし、カーネルを元に戻し、その後再起動させます。
(もちろん必要に応じて他のファイルシステムもチェックします。)
- # fsck /
- # mount /
- # mv netbsd.old netbsd
- # reboot
なお、再構築したカーネルを「mv netbsd /」としていますが、これを「mv netbsd /netbsd-TEST」としておき、「BSD/Mac68k
Booter」で起動させるKernel nameを「netbsd-TEST」と指定して起動してもかまいませんが、一部のコマンド(fstat,
gdb, ipcs, netstat, nfsstat, ps, systat, uptime, vmstat, w)が「netbsd」という名前でしかカーネルを認識しないので動作が正常に行われません。
IIci(68030/25MHz)では、10時間ほどかかりました。
「MacBSDネットワークサーバ構築ガイド」によるとIIciで4〜5時間くらいだったそうです。(げ、マジ? うーん...)
Centris 660AV(68040/25MHz)では、2時間40分でした。
[ NetBSD/mac68k Topics (Japanese) もくじ ]
HQP00700@nifty.ne.jp