NetBSD/mac68kをブートする


Pages in English

さて、NetBSDをブートしてみよう。

  1. INSTALLガイドにあるように、初めに"A/UX Root & Usr"と"A/UX Swap" パーティションを作った。その後、"mksf"を使って初期化を行ない、 "MacBSD Install Utility"で"base11"と"etc11"をインストールし build devices を行なった。
  2. さらに、"MacBSD Install Utility"の"Mini Shell"で
    cpin (the path):netbsd netbsd.test
    
    をタイプし、カーネルをコピーした。 (the path)はディレクトリのフルパスを示す。(セパレータは":")
  3. "Booter"を適切に設定し、ブートし始めた。 何も起こらなかった。 [96年3月]
    初めはbooterの問題かと思ったが、1週間程して booterは正常に動作していることが分かった。 (booterをコンパイルして確認した。)
  4. 一体どこでプログラムが止まっているかしる必要があった。 videoaddrが0xfe200000だったので、locore.sのいろいろな場所に アドレスを0x4ずつ増やしながら "movel #0xaaaaaaaa,0xfe200000"という命令を加えた。 これは、画面に短い灰色の線を描く。 そして、machdep.cのsetmachdep()で止まっていることを見付けた。
    setmachdep()の中で、ブートが止まったのは
    via_reg(VIA2, vIER) = 0x7f;	/* disable VIA2 int */
    
    の行である。(gray_bar()を使って見付けた。)
  5. VIA2は0x50f02000に無いようである。 [96年4月]
  6. VIA2の問題が修正されたようなので、 NetBSD-currentから新しいソースをftpした。 [96年5月27日]
    JPWさんのパッチと浜田さんのパッチをあて、カーネルを構築した。 外部モニタ付きと言う条件でシングルユーザモードで ブートすることに成功した。 [96年5月30日]
  7. locore.sのget_pte()にある'.long 0xf0100800'を全て '.long 0xf0100c00'に変更した。これは、tt0レジスタの代わりに tt1レジスタを使うと言う意味である。 そして、カーネルを再構築した。これは、外部モニタ無しでもブートした。 [96年6月8日]
  8. NetBSD1.1をインストールした。外部モニタでXが走った。 [96年8月1日]