NetBSD が対応している Power Mac は、 いずれも内蔵ネットワークインターフェース経由でのブートが可能です。 PCI、 Cardbus、 SCSI、 Airport ネットワークインターフェース経由での ネットブートができたという報告はありません。
サポートされている macppc マシンに搭載された Open Firmware には 三つのメジャーバージョンがあります。これらはそれぞれ異なる方法でブートします。 Open Firmware バージョン 1.0.5、 1.1.22、 2.0.x、 2.4 は BOOTP (または BOOTP 互換モードでの DHCP サーバー) に対応しており、 XCOFF ブートローダーをロードするように なっています。 Open Firmware バージョン 3 は DHCP ( BOOTP に落ちます) に対応しており、 XCOFF または ELF ブートローダー、または直接 ELF カーネルをロードするようになっています。
すべてのバージョンの Open Firmware は XCOFF ブートローダーをロード可能であり、 また、 XCOFF ブートローダーはもっとも融通がきくため、どのバージョンの Open Firmware であっても NetBSD/macppc の配布に含まれる ofwboot.xcf を使うべきです。
OpenFirmware のバージョンは、 Open Firmware に入った時に表示されます。 macppc 対応機種ページ を見てください。ここにはすべての対応機種と、それぞれの Open Firmware バージョンが載っています。
実行時に起こりうる傾向/問題
いくつかの Open Firmware 1.0.5 の機種では、 ネットブートができないとの報告があります。 この症状は、 ofwboot.xcf がカーネルのある nfs サーバーを マウントできなくて、ファイル名なしで何かを tftp しようと試みるというものです ("TFTP timeout" とのメッセージが出続けます) 。 解決するためには、ブートローダー名を (たとえ DHCP や bootp サーバーがその情報を送出していたとしても) 与えてください:
0 > boot enet:,ofwboot.xcf
このほか、 Open Firmware 1.0.5 を持った古い PowerMacintosh システムで ofwboot.xcf バージョン 1.2 (NetBSD 1.5.3 以前に附属) を使うと、 圧縮されたカーネルをロードできません。 gunzip でカーネルを伸長してください。
いくつかの Open Firmware 2.0.x の機種についても、 BOOTP サーバーからではすべての情報を適切に得られないが、 DHCP サーバーが BOOTP リクエストに応答している 場合は動作するとの報告があります。このことを覚えておいてください。
初代 iMac (ボンダイブルー) は、オリジナルのファームウェアに DHCP に関する問題があることが知られています。 そのような iMac では新しいファームウェアをダウンロードしましょう。 他の初期の Open Firmware 3 の機種にも同様の問題がある可能性があります。 私の機種の Open Firmware の動作にバグはありますか ? を見てください。
IP アドレスの取得とブートローダーのダウンロード
Power Macintosh ワークステーションは、まず、その Open Firmware バージョンによって Internet Bootstrap Protocol (BOOTP) または Dynamic Host Configuration protocol (DHCP) を使って IP アドレスを得ようとします。 bootpd や dhcpd サーバーは、クライアントのイーサネットアドレス (MAC) をもとに IP アドレスとブートローダーのファイル名を決定します。 このリクエストが成功すると、 Open Firmware は Trivial File Transfer Protocol (TFTP) を使って 2 段階目のブートプログラムをダウンロードする体制に入ります。 これは、 BOOTP や DHCP のリクエストに応えたサーバーに TFTP コネクションを張り、 サーバーから教えられたファイル名のファイルを要求することで行なわれます。 2 段階目のブートプログラムは、 BOOTP や DHCP で得られたサーバーとパスを元に NFS を使ってカーネルをロードします。
最初期の PCI PowerMacintosh (初期の Open Firmware 1.0.5 の機種) では、 マザーボードのエラーにより、イーサネットアドレスを逆に (たとえば 00:a0:40:0b:77:2c 、本来は 00:05:02:d0:ee:34) 宣言するので注意してください。 ある Mac OS ユーティリティーがこれを修正します。 突然ネットブートができなくなったら、イーサネットアドレスが修正されていたり、 PRAM クリアによってこの修正が無効になっていないか再確認してください。
Open Firmware が BOOTP/DHCP リクエストで使う MAC アドレスを調べるには 次のコマンドをタイプします:
0 > dev enet 0 > .properties [...] local-mac-address CCCCCCCC CCCC [...]
これより古い機種では (または、 Open Firmware 3 の機種をデフォルトで ネットブートするよう設定したい場合は) 、 まず Open Firmware プロンプトに入る方法を読んで、 プロンプトでブートコマンドを入力しなければなりません。
ネットブート用のコマンドは、 Open Firmware のバージョンによって異なります。 Open Firmware 1.0.5、 1.1.22、 2.0.x、 2.4 では、次のいずれかをタイプします:
0 > boot enet:,ofwboot.xcf 0 > boot enet:,ofwboot.xcf netbsd.ram.gz # "netbsd" 以外のカーネルを指定する場合 0 > boot enet:192.168.1.5,ofwboot.xcf netbsd # bootpd からの情報取得に問題がある場合
Open Firmware 3 では、次のいずれかをタイプします:
0 > boot enet:0,ofwboot.xcf 0 > boot enet:0,ofwboot.xcf netbsd.ram.gz # "netbsd" 以外のカーネルを指定する場合 0 > boot enet:192.168.1.5,ofwboot.xcf netbsd # dhcpd からの情報取得に問題がある場合
数人のユーザーが DHCP で情報を送信するときの問題点を報告しています。 彼らはコマンドラインでカーネル名を指定する必要があることを発見しました。
他の引数は、コマンドラインの最後で指定する (例: boot enet:,ofwboot.xcf -a) ことで、ブートローダーやカーネルに渡すことができます。 ofwboot(8) マニュアルページを見てください。
デフォルトでネットワーク経由でブートさせるためには、 Open Firmware の変数を設定します (ここで、 0 の有無は Open Firmware のバージョンにより異なります):
0 > setenv boot-device enet:[0],ofwboot.xcf 0 > setenv auto-boot? true 0 > reset-all
|
|