NetBSD/macppc | build.sh | kernel | models(NetBSD) | models(ki.nu) | Tsubai San | Starting | (English) | sysinst | X11 | kernel | Install in English | mozilla | make build | Open Firmware | sup | StarMax (Diary) | Diary | Links | NetBSD at ki.nu | NetBSD links | ki.nu 全文検索

Starting NetBSD on PowerPC

(Sorry, this page is in Japanese. If I got many requests, I will have English version. -> English version being prepared)

PowerPC 603e, 604e の載っている Macintosh あるいはその互換機 (macppcと呼ぶ) のうち PCI Bus を採用しているもので NetBSD を動かす話を書いています。 (1998/12/21)時点では、直接便利に設置する方法(sysinst)が用意 されていませんでしたので、

という手順を採る必要がありました。しかし 1999/01/19 版になると sysinst が使えるようになっていますので Ethernet 内蔵の Macintosh であれば、とても簡単に設置が出来ると 思います。つまり ということになります。以下に書いてあるのはこの古い方なので 19990119 版で設置される場合、情報が古くなってしまっています sysinst を使った新しい方法 も(一応英語なのですが)用意していますので、御覧下さい。 (StarMax 3000/200 などにも対応しています)

ただし Tanzania 板を使っている機械や、 Ethernet が DEC 21041 などの場合、やはりここに書いてある方法が必要なのではないかと 思っています。( boot floppy と kernel だけはここの情報のもの を使い それ以外の binary/sets/*.tgz は新しいものを使う)

英語での設置手順の説明は(少し古いですが)次のところにあります。 http://www.matematik.su.se/~tege/macppc.txt

という訳で、現在のところ、 このような方におすすめです

Open FirmWare とのつき合い

Open Firmwareは IEEE1275 (実際に規格の中身を見るには userid/password が要るようです。 印刷物の 価格など) の規格で、 PCI bus の載っている PowerMac にはこの 機能があります。NetBSD/macppc を起動するには、これを経由 します。
Open Firmware and Boot Variables
http://www.linuxppc.org/userguide/of.html
linux-ppc/INSTALL
を村田暢宏さんが訳したものから、 2. Booting Linux with Open Firmware. の部分
http://www.y-min.or.jp/~nob/linux-pmac/INSTALL-j.html#part2
確定前の IEEE 1275
ftp://playground.sun.com/pub/p1275/coredoc/1275-1994/
Unofficial OpenFirmware Web Page ( by CodeGen, Inc.)
http://www.openfirmware.org/
The OpenFirmware Source
http://www.firmworks.com/
auto-boot?
(起動の設定について) 僕はいつも
auto-boot?          false 
としている。こうすると起動直後に Open Firmware と対話する形になり、そこで
bye              -> MacOS
boot             -> default boot 
                    (boot-device,boot-file を参照)
boot fd:0        -> floppy boot
boot scsi/sd@4:0 -> SCSI id = 4 の disk から起動
などと切換えることが出来る
printenv
変数名・その内容・初期値を表示します
printenv とすると表示されるものの
setenv
変数の内容を設定します
setenv auto-boot? falseのように入力します。
boot の方法
boot scsi/sd@3:0 と入力するか(この例は SCSI-ID = 3)
次の二つの変数を設定しておけば、boot と入力するだけで良い。
boot-device
boot-file
BootVars を使えば、MacOS から、これらの変数を設定出来ます。 bootvars-1.3a.sit.hqx は少なくとも次のところにあります。
ftp://top.cis.syr.edu/users/fadushin/bootvars/

最近は BootX (http://www.linuxppc.org/bootx.html) というのが流行りですが、NetBSD-macppc では、まだこれに対応 するものはありません。

ttya(モデムポート)で通信するには
(多分不要だとは思うが) 本当に最初に作業する時は記録が採れるので 直列口 serial port を通じて他の計算機などと通信出来るようにす るのも一つの方法。この時は 38.4kbps になる。

通常の Mac 用のモデム線を使うと Mac 側の RTS(4番 pin) が low のままで、それを端末側の CTS(5番 pin) につないでしまうと(CTS が上らないので) 入力をすることが出来ない。 それで、次のように macppc 側の四番は使わずに、端末側の四番から戻す。

      macppc 側                端末側                
(low) RTS     4      +-->   CTS   5            
                     |
      CTS     5   <--+---   RTS   4
上記の番号は DB-25の場合。
Open Firmware をいきなり起動する方法もある。
Macintosh で 起動時に command + option + O + F とすると 入力 ttya 出力 ttya で Open Firmware と出会うことも出来る (つまり他の端末か、端末の働きをする計算機を 38.4kbps でモデムポー トにつないでおく)
画面が真暗になってしまったら
電源を入れ直したり、reset をしても画面が真黒のままで 何も表示されず、またそういう時に bye と入れても何も反応がない時

電源を入れる時に、 command + option + P + R を全て押したままで起動音が二回鳴れば、大丈夫。 PRAM が消されて元に戻るのでいつもの MacOS が起動出来るはず。 (但し 「Ethernet を使う設定」は -> 「プリンタポート使用」になってしまう)

boot floppy を作る

19990220 版を作っていただいていますので(これが一番新しい)を使って下さい。 ftp://ftp.jp.netbsd.org/pub/NetBSD/arch/macppc/floppy/
次のものを
http://www.ceres.dti.ne.jp/~tsutsui/netbsd/boot.fs.gz
80 * 36 * 512 = 1,474,560 bytes の floppy に書きます。方法はいろ いろあるはずですが、少なくとも次のような方法があります。
Macintosh (SunTar(*) を使う)
suntar を使う時の注意点は次のところに書いてある
ftp://ftp.jp.netbsd.org/pub/NetBSD/arch/macppc/floppy/ README.rawdisk

僕も説明を用意して見た。

Macintosh(Disk Copy, 次の三つの操作は MacOS 上で行う)
  1. 次のところなどから Disk_Copy 6.3.3 などを入手する ftp://ftp.apple.co.jp/pub/AppleJapan/Macintosh/Utilities/Disk_Copy/
    http://ftp-info.apple.co.jp/reference/disk_copy613.html (Not Found)
  2. boot.fs.img 次のところから boot.fs.img.hqx を入手し、
    ftp://ftp.ki.nu/pub/NetBSD/powerpc-jp/ boot.fs.img.hqx (圧縮なし1.9MBytes)
    ftp://ftp.ki.nu/pub/NetBSD/powerpc-jp/boot.fs.img.lzh.hqx (MacLHA(*) 形式 1.5MBytes)
    MacOS 上で boot.fs.img を得る (もしかしたら一回エラーと言われるかも知れないが多分大丈夫)
  3. Disk Copy を起動し、 「フロッピーを作成」を選ぶと、「2HD のものを入れなさい」と言うので、 それに従えば boot floppy が出来る。
Linux
dd if=boot.fs of=/dev/fd0 bs=36k
(*) Sun tar/Mac LHA林檎の花 からたどって行くと取得出来る。
ただし suntar は 2.2 でなく 2.2.1 になっていて File Not found が出るかも知れない。一つ上って suntar-221.hqx をもらって来る ( asahi-net の例)

Open Firmware を起動

Open Firmware が 1.05 の場合画面を 640x480 にして おくなどの制約がある。関係する情報は次のところにある。 http://www.linuxppc.org/userguide/of105.html

いくつかの方法がある。

boot floppy で起動

用意した floppy を使って、Open Firmware の入力促進(prompt)から 次のように入力します。
>boot fd:0
この時に
input-device ttya
output-device ttya
とするか、
input-device kbd
output-device screen
としておくかの、どちらかにする。混ぜるとうまく行かないはず。

disklabel と newfs

SCSI disk の区画(partition) と File system の初期化をする。
disklabel という操作もあるにはあるが vi が使えない環境で は面倒なはずなので、 (僕は上で起動したばかりの single user mode 上で ) /etc/disktab を用意し、
disklabel -w sd0 'Disk Name' として区画した。 僕が使った disktab の例

binary/sets を展開

macppc/snapshot(New)

ftp://ftp.netbsd.org/ 19990119/binary/sets/
ftp://ftp.dti.ad.jp/ 19990119/binary/sets/

macppc/snapshot

ftp://ftp.netbsd.org/ 19981023/binary/sets/
ftp://ftp.dti.ad.jp/ 19981023/binary/sets/

bebox/snapshot

ftp://ftp.netbsd.org/ 19981119/binary/sets/
ftp://ftp.dti.ad.jp/ 19981119/binary/sets/
ifconfig de0 ip_address ( DEC 21040 などの場合)
ifconfig mc0 ip_address ( 内蔵 Ethernet = mace controller の場合 )
とすると Ethernet 経由で通信が出来る。

NFS server が設定してあれば
mkdir /nfs
mount ip_address:/export/yyyy /nfs
のようにして利用出来る

あるいは
mkdir /cdrom
mount -t cd9660 /dev/cd0a /cdrom
とすると iso9660 形式の CDROM を読むことが出来る。
(以上の例のうち、/nfs, /cdrom などの名前は何でもいい)
これらの方法と、

/mnt に設置したい SCSI disk の / /usr などを mount しておいて 
cd /mnt
gunzip -c etc.tgz | tar xpf -
( etc.tgz, base.tgz, kern.tgz があれば、とりあえずは動くが、
全部開けても 80MBytes くらいなので、全部入れてしまっていい。
macppc/19990119 から etc.tgz   games.tgz kern.tgz  man.tgz   
                     misc.tgz  text.tgz
                     base.tgz  comp.tgz  
を入れるようにする。
for i in /mnt/usr/tar_files/*.tgz
  do
   echo $i
   gunzip -c $i | tar xpf -
   done
とすれば、まとめて開けることが出来る。

Kernel の入替

binary set に入っている /netbsd は古いことがあるので、最新のものに 入替える。 (正確には古いということでなくて僕の機械に必要な mesh/de が入ってい なかったので筒井さんに作っていただいたというのが一番の理由)
筒井さんに作っていただいた(+mesh, +de) kernel
http://www.ceres.dti.ne.jp/~tsutsui/netbsd/netbsd-macppc-generic-19981221.gz
椿井さんの mesh 入り kernel
ftp://nandra.iri.co.jp/pub/NetBSD/powermac/mesh/

MAKEDEV

device file を作っておく。いまの作業域の /mnt の下で実行する
cd /mnt/dev
./MAKEDEV all
(これは結構時間がかかるので、ゆっくり待つ。多分一分か二分)

installboot

以下の説明は B&W G3/iMac にはあてはまりません。それらの 機種では、HFS partition ( MacOS の区画 )を用意し、その中 に ofwboot.elf を置いて >boot hd:5,ofwboot.elf hd:6 のようにするという話があります
cd /mnt/usr/mdec
cp ofwboot /mnt/   # boot file を (目的のdisk の) / に写す
sync; sync; sync   # 一回で充分のはずだが念の為必ず三回
./installboot -v /mnt/ofwboot bootxx /dev/rsd0a
(以上に出て来る ofwboot を /mnt に写す時の名前は自由) installboot の説明は NetBSD が動いている機械があれば /usr/share/man/cat8/*/installboot.0 にあるはず。

/etc/fstab

/mnt/etc/fstab に次のものを書いておく
/dev/sd0a   /      ffs  rw 1 1
/dev/sd0b   none   swap rw 0 0
/dev/sd0d   /usr   ffs  rw 1 2
/dev/sd0g   /var   ffs  rw 1 3


いよいよ boot

sync;sync;sync;reboot
> boot scsi/sd@3:0

あるいは内蔵の SCSI の場合
> boot scsi-int/sd@3:0
(など)

その他

multi user で起動した後
直後は相変らず single user になってしまいますが、 /etc/rc.conf の設定などをします。 ここから先は NetBSD に共通の問題になることも多いので、 その方面で情報を集めて下さい。
kernel を作り直す
僕が作り直した様子を書いています。 (まだこれでいいと確めた訳ではないので、あくまで参考です http://www.ki.nu/software/NetBSD/PowerPC/kernel.shtml
質問など
PowerPC/macppc に特有の問題だと思われることは、 port-powerpc-ja@jp.netbsd.org というML があります。
同じように英語の 加入は次のところから出来ます。 http://www.jp.netbsd.org/MailingLists/index.html#port-macppc
僕の日記
とりとめもなく作業などを日記の形で 書いています。

最終更新 03/12/08 19:52:55
Count.cgi(since 1998/12/22)