カーネルの再構築 (1998/5/18 更新)

カーネルのソースコードは、/usr/src/sys(/sysは、これへのシンボリックリンク)にあります。 なければ、ソースのアーカイヴファイル名はsys.tar.gzなので、
  1. # cd /usr
  2. # tar ztvpf sys.tar.gz
とします。

再構築の手順は、次の通りです。

  1. # cd /sys/arch/mac68k/conf
  2. # cp GENERIC TEST
    GENERICをコピーして定義ファイルを作成する。 例えば、TESTとしています。
  3. 必要に応じてこのTESTを編集します。
  4. # config TEST
    これで、../compileにTESTというディレクトリが作られます。 ここでなにかエラーが出る場合、定義ファイルの内容に間違いがないか確認します。(もちろんエラーメッセージの内容によります)
    currentをコンパイルする場合などで、もし、GENERICでもエラーが出る場合、configコマンドと再構築するソースとが合っていないかもしれませんので、現在のソースに対応したconfigを手に入れてます。 currentの場合、configのソースはconfig.tar.gzにあります。
  5. # cd ../compile/TEST
  6. # make depend
  7. # make
    これで、netbsdというファイルが出来、これがカーネルです。
    また、カーネルは、/にある必要が有ります。
  8. # mv /netbsd /netbsd.old
    現在のカーネルを別の名前にしておきます。 今動作しているカーネルを保存しておくということは大変重要です。 仮に再構築したカーネルに不具合があったり、ブートしなかった場合、即座に元のカーネルに戻すことができます。
  9. # mv netbsd /
    再構築したカーネルを/に移動します。
  10. # reboot
    これで、準備はできましたので、再起動します。

もし、再構築したカーネルに不具合があったり、ブートしなかった場合は、元の保存しておいたカーネルでブートし、元に戻しましょう。 手順は次の通りです。

  1. 「BSD/Mac68k Booter」のOptionsメニューのBooting...で、Kernel nameを「netbsd.old」とし、Single Userをチェックして、起動させます。
  2. 次のプロンプトで一旦停止しますので、リターンだけ押します。
    Enter pathname or shell or return for sh:
    Terminal Type?:vt220
  3. ファイルシステムをチェックし、カーネルを元に戻し、その後再起動させます。
    (もちろん必要に応じて他のファイルシステムもチェックします。)
    1. # fsck /
    2. # mount /
    3. # mv netbsd.old netbsd
    4. # 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