MacBSD on LC630

Macintosh LC630 上で NetBSD 1.2A/mac68k(以下、MacBSD) が動いたということを 聞き、早速インストールしてみることにしてみました。 そして、ブートまでは成功しましたので、その時の作業の流れを書いてみます。

※注: ここに書いてあることを実行したことによる、不具合、損害などは一切保証しません ので、Your own lisk でお願いします。


使用した環境

必要な物(使用した物)

MacBSD のパッケージの他、tool類を入手する必要があります。 ここで使用したMacBSD 1.2 関係は基本的に NetBSD.org にありますが、近くのミラーがあればそちらを利用しましょう。

MacBSD インストールドキュメント

MacBSD 1.2 バイナリセット

以下のファイルは通常、 NetBSD-1.2/mac68k/binary/ に置かれています。 拡張子はありませんが、中身は tar+gzip で圧縮されています。

カーネル

ここでは netbsd.quadra カーネルを使用しました。 その他、GENERIC_77 や GENERIC-13 と呼ばれる GENERICカーネルもブート可能 であることを確認しました。
1.2 ソースから構築したカーネル(x68030で構築)を試してみましたがADBの認識 フェーズで停止してしまいます。

MacBSD インストール用ツール(MacOS用)

SCSI フォーマット用ツール

A/UX のパーティションが作れる物が必要です。 私は昔Stepで買ったCHQ-1080に付いてきたFileland のUtilityを使ったのですが、 HD SC setup や Silverlining でもいいでしょう。 (と、INSTALL に書いてあります)

インストール手順

1. SCSI フォーマット用ツールを起動

まず、ディスクをフォーマットします。 次にパーティションに分割します。基本的にroot と swap と usr の3つは 必要です。root と usr は一緒でもいいですが、ここでは分けたものとします。
私の環境では次のように分割しました。

最後のMacOS のパーティションはなくてもいいです。 私の場合は、取ってきたバイナリを置く場所がなかったので、ここに取りました。

2. Mkfs を起動

A/UX と指定したパーティションに ufs を作成します。 Mkfs を起動して、先ほど A/UX としたパーティションを 選んでください(swap は不要)。

作業終了後、Mkfs は勝手に終了してしまうので、その都度起動してください。

3. Installer を起動

起動後、SCSI ID を指定します。どの ID で指定しても、root は /dev/sd0a に なります。 (swap は /dev/sd0b, usr は /dev/sd0g, MacOS は/dev/sd0e と表示された)

まず、Fileから "Build Device" を選び、デバイスファイルを作成します。

次に、Fileから "Mini Shell" を起動し、次の作業を行います。 (このとき、なぜかショートカット[COM]+[M] が効かない)

    > mkdir /usr
    > mount /dev/sd0g /usr
    > quit

これにより、usr パーティションが /usr にマウントされます。
注: Mini Shell を終わるときに、cd で / 以外に移動していると警告が出ます。 これは、バイナリのインストール先がそのディレクトリ以下になるためです。

File から "Install" を選び、MacBSD 1.2 のバイナリファイル (base12 など) を指定して、インストールを行います。 この作業はかなりの時間を必要とします。 (Mini Shell から、install と入力しても同じです)

もう一度 "Mini Shell" を起動し、次の作業を行います。

    > rm /etc/fstab
    > fstab
    > quit

これにより、fstab の情報が更新されます。

4. Booter を起動

Booter を起動したら、Options メニューから Booting を選びます。 ここでは、次の項目を指定・入力します。

Save Preferences/Options で指定内容を保存します。 最後に Options の Boot now を指定して、ブートを開始します。

その他

気づいたことなど.

また、LC630 は ADBが古いMac と違ったチップ(Cuda-Chip)を使っているそうです (PowerBook や LC,IIsi 時代の物も違うらしい)。 そのため、GENERIC カーネルをそのままブートすると、ADB の認識フェーズで Unexpected trap が掛かります。ベクタが 0x0a なので、A-Trap がひっかかっている ようです(ToolBox のADBルーチン番号がが異なる?)。

参考

詳しくは、次のサイトを参考にしてください。


戻る