BSD/mac68k Booter マニュアル 

Booter Icon
Version 8, 30th June 1998. For Booter 1.11.3


目次


BSD/mac68k Booterとは何か?

BSD/mac68k Booterとは、NetBSD/mac68k(および、OpenBSD/mac68k)を ブートするためのMac OS用アプリケーションです。

一体NetBSD/mac68kとは何か?

MacBSDとしても知られているNetBSD/mac68kは、MacintoshのMotorola製 680x0プロセッサー向けのUNIX風OS、NetBSDの一ポートです。 NetBSD/mac68kに関するより広範囲な情報を得るには、以下にあげる Web サイトを 参照してください。

NetBSD/mac68k Web サイト

http://www.NetBSD.org/ports/mac68k
mac68kポートに関するメインのNetBSD Web サイト。

http://www.MacBSD.com/macbsd
mac68kポートに特化した情報が多く含まれる、MacBSDの Web サイト。

'port-mac68k' メーリングリスト

もしNetBSD/mac68k愛好家で、しかも(あるいは)NetBSD/mac68kをお使いならば、mac68kポート メーリングリスト, port-mac68k@NetBSD.org に申し込むべきです。 port-mac68k メーリングリストへ参加するには、NetBSD メーリングリスト web ページから申し込むか、 majordomo@NetBSD.orgへ、 題名のない

subscribe port-mac68k

という一行のメッセージを添えたメールを出し、 送られてくる確認のメールに返信してください。


ハードウェアの条件

最小ハードウェア構成は、68851 PMMUチップ付き68020か、68030以上です。 これ以外ではBooterが起動しないでしょう。 Booterは現在System 7.1、7.5(最小インストール、フルインストールともに)でテストされていますが、 System 7であれば動くはずです。System 6.0.xは対象外です。 なぜなら、Booterが32ビットアドレッシングモードで起動するマシンを必要とするからです。 Booterは仮想メモリーが有効になっていると起動しないので、いじっている間は メモリーコントロールパネルで仮想メモリーをオフにしてください。

NetBSD/mac68kである程度対象になっているMacintoshの機種は日々変化しています。 より多くの情報をお求めでしたら、 Web サイト、とくに この話題が含まれているユーザー調査のページをチェックしてください。

どうやってこのばかげたものをブートするのか!?

まずいちばんはじめにドライブをフォーマットし、A/UX用にパーティションを切ります。 つぎにMkfsを起動し、最低でも基本パッケージとカーネルをダウンロードして、インストールしなければいけません。 もしインストール前で情報をお探しでしたら、上記 Web サイトをごらんください。

Unix(とMac OS!)がそろっているとして、早速ブートのしかたです:

ブート処理の概略

はじめに、Booterは指定のカーネルを開こうとします。 もしBSDパーティションの中にカーネルが指定してあれば、すぐに探し当てるでしょう。 (うまくいけば)Booterは68K実行ファイルとして認識し、エントリーアドレスを出力します。 出力はほぼこのようになります:

MID_M68K executable: entry 0x3356.

(ここで、あとのブート処理も同様に、あなたの環境で出力される数字とここで紹介する数字が 全く同じではないかもしれません。数字はカーネルに依存する部分が多いためです。) 次にカーネルを読み込みます。 カーネルのセクションがそれぞれ読み込まれるにつれ、数字がステータスウィンドウに出力されます。 この数字は次のようになります:

768400+57532+99064+45588+48244

これらの数字はテキスト(実行マシンコード)セクション、静的データセクション、 bss(未初期化データ)セクション、シンボルテーブル、文字テーブルでそれぞれの大きさによります。 カーネルスペースへ飛ぶ前に表示される最後のメッセージは以下のようなものです:

  Bye-bye...
        So I sez to him...  The real way
        that it should be done is to...

システムは再起動したかのように動作します。そして、再起動が普通に始まると、 画面が真白になり、メモリー割り当ての一覧が短く表示されます。 次に版権の注意書きや自動設定の情報が続きます。 これで、ブートしたことがわかります。


ブートオプション、 うんざりします

ブート処理はマシンやインストール環境によって完全に異なります。 そのため、マシンに関する重要な情報をカーネルに伝えるため、 Booterを使ってオプションやフラグを設定することができます。 オプションのほとんどが'Booting'ダイアログウィンドウで 設定されています。また'Serial ports...''Monitors''Preferences' ダイアログウィンドウでも設定ができます。

Booting ダイアログウィンドウ:

Picture of Boot Options dialog window

以下にあげてあるものは、'Booting'ダイアログウィンドウから設定できるオプションです。 ほとんどの場合、これらのオプションだけ変更すればブートすることができます。

Kernel Location: Mac OS file か BSD device

Booterの主要な役割はBSDオペレーティングシステムのコードをメモリーに読み込むことです。 このコードはカーネルと呼ばれており、通常netbsdというファイルの中に あります。 このファイルは通常BSDファイルシステムのルートパーティションのルートディレクトリーにあります。 しかし、新しいシステムをテストしたり、SCSIがまだ対象外であるシステムでブートする場合には、 Mac OSファイルシステムからカーネルを読み込むことも可能です。 このブートオプションにより、カーネルの場所を選択できます; もしMac OSを選択すれば、Booterはフォルダの中(あるいは'Set'ボタンで 選択された別のフォルダ)からカーネルを探すでしょう。 このオプションは上で述べられている通り、普通BSDデバイスに設定されているはずです。

Kernel Name

通常、カーネルはnetbsdと名付けられており、これがカーネル名として入力すべきものです。 しかし、最近インストールしたカーネルをためしてみたり、単に代わりのカーネルをブートしたいならば、 ここにその名前を入力できます。 多くのBSDソフトウェアがカーネルはnetbsdと名前がついていて、 ルートディレクトリーにあるとみなします。 そのため、カーネルがうまく動いたならば、そのカーネルの名前をnetbsdに すべきであることをよく覚えておいてください。

Partition and Root SCSI ID

もしBSD/mac68kファイルシステムからブートするのであれば、 Booterはどのパーティションにカーネルがあるのか知る必要があります。 ブートパーティションがあるドライブのSCSI IDを入力してください。 もしSCSI IDが入力されていないと、0だと見なします。 Booterはデフォルトでルートパーティションを探し当てるはずです。 もし選択されたSCSI IDに複数のパーティションがある場合、 Partition Nameフィールドにパーティション名を入力することで、 その内のひとつを使用することができます。 (このパーティション名は、パーティションを切ったときにディスクフォーマットソフトウェアが 設定した名前です。e.g. 'UNIX Root&Usr slice 0', 'NetBSD Root & Usr' か 'A/UX Root'です。) 名前を入力しなかった場合、Booterは正しいパーティションを推測しようとします。 名前に'Root'がついている最初のUNIX(i.e. type="Apple_UNIX_SVR2")パーティションが 一番に考えられます。 そして、その中で見つからない場合は、名前に'Swap'がついていない最初のUnixパーティションを 次に考えます。

Enabled?

このオプションにより、システムはたとえばNFSファイルシステムを利用して、 ルートのSCSI IDを特定しなくてもブートすることができます。 通常はオンのままにしておきます。

Ask for alternate root/swap?

このオプションにより、ユーザーはルートパーティションがマウントされる直前に 代わりのルートやスワップデバイスを指定することができます。 たとえば一番目のSCSIディスク(sd0)のカーネルをブートせず、ルートをcd0(CD-ROM)上のものや sd1(など)に指定することができます。 通常は空白のままにしておきます。

RAM size と Auto-size RAM

Auto-size RAMをクリックし、Booterが自動的にコンピューターに積まれているRAMの量を計算する ようにしておくべきです。将来のリリースではオプションではなくなります。 疑り深い人は(MB単位で)RAMの容量を適当なボックスに入力できます。

GMT Bias と Auto-set GMT Bias

これはあなたの地域の時間帯にあわせるため、UTC(グリニッジ標準時やGMTとしても 知られている世界標準時)に何分足すかを表します。 もしMac OSの世界地図コントロールパネルがあなたの地域に設定されていれば、 'Auto-set GMT Bias'を有効にすることで、この情報を設定することができます。

Single User

このオプションにより、カーネルは通常のマルチユーザーモードのブートではなく、 シングルユーザー(管理者用)モードでシステムをブートします。 マルチユーザーモードでブートする際に問題が発生するか、システムがブートし終わる前に ファイルを編集する必要があるときに必要になるでしょう。

Extra kernel debugging messages

このオプションにより、カーネルは通常表示されないデバッグ情報を出力します。

Jump into debugger after booting

このフラグが立っていると、カーネルはデバッガー(kgdbかddb)を初期化直後に立ち上げます。

Don't disable VBL interrupts on video cards

バージョンが1.8以降のBooterは有効なビデオカードが見つかると、縦方向の空白(VBL)の割り込みを 無効にしようとします。現在のgrf_mv(Macintosh QuickDraw互換のNuBusビデオカード)ドライバーの 実装では、VBL割り込みを信頼できるほどうまく扱えないからです。 この処理が失敗したら(失敗したらすぐにわかります;エラーコードが表示され、ブートが止まります)、 このボックスをチェックし、もう一度ブートしてみてください。

Video address hack (for LC575 & LC475)

このオプションにより、ほとんどどんなカーネルでもこれら二つのマック上で、 コンソールとして内蔵ビデオが使用されます。 これらのマシンはMac OSのビデオアドレスを再割り当てするためにMMUを使用します。 Mac OSの割り当てはBSD/mac68kカーネルが実行されると失われます。 望まないカーネルクラッシュを起こす可能性がありますので、 LC/Performa 475, 575, 630シリーズ以外のマシンではこのオプションは使用しないでください。

Serial ports ダイアログウィンドウ:

このダイアログウィンドウ内のオプションは下にある通り、主に新しいzsc/zsttyシリアルドライバーの 初期設定に関するものです。

Picture of Serial ports... dialog

Serial Boot Echo

このオプションがチェックされていると、カーネルからの出力を9600ボーレート、 パリティーなし、8データビット、1ストップビットでプリンターポートに出力します。 ('Default Serial Speed'ボックスも参照してください)

Serial Console (Modem or Printer)

このオプションがチェックされていると、選択されたシリアル線はSerial Boot Echo(上記参照)と 同じ通信環境でコンソールとして使われます。コンソールとして使用しているシリアル線状でgetty処理を 走らせることはできない(つまりモデムポートがコンソールになっている場合、ttye0とtty00の両方で gettyを実行できない)ことに注意してください。なぜなら、カーネルパニックの原因になるからです。 シリアルコンソール用にポートを選択することはできますが、シリアルブートエコーはいつもプリンター ポート上にあることを覚えておいてください。

LocalTalk connected to Printer port

ある場合では、非常に混んでいるLocalTalkネットワークにつながっていると、 カーネルがフリーズすることがあります。 LocalTalkはカーネルでは対象外ですが、このボックスにチェックが入っていれば この状況に遭遇してもカーネルパニックは起こりません。

Open port before booting (for PowerBook)

PowerBookでシリアルポートを使用するためには、Power Managerがチップとポートに 電力を供給できるようにブート前に起動しなければいけません。 PowerBook上でNetBSD/mac68kを起動するならば、このオプションを設定する必要があります。

Default Serial Speed

1997年12月20日以降のNetBSD/mac68kのカーネル(たとえば 1.3)では、 ここで新しいスピードを打ち込むことでポートのスピードを設定することができます。 たとえばHP DeskJetプリンターへブートメッセージのログを取りたい場合などに有効です。

Set Modem (or Printer) port to 'stty raw' defaults

このオプションにより、カーネルは'stty raw'コマンドから問題のシリアルポートの デフォルト設定をします。 BSDはシリアルポートがデフォルトで端末に接続されていると考えます。そしてカーネルは ユーザーが端末に打ち込んだ文字をそのまま返すのが、通常カーネルの端末に対する処理です。 'raw'モードでは、シリアルポートの接続先についてはどんなす則も立てません。 他の変更と同じように、ポートから文字が帰ってくることはありません。

BSD/mac68kマシンがHP DeskWriterプリンターのシリアルインターフェースに 接続されていると、この違いは重要です。 これらのプリンターは(たぶん他のプリンターも)ホストコンピューターに文字を送ることで 状態を知らせています。 このブートオプションがないと、BSDは人間がこれらの文字を打ち込んでいると考え、 そのまま返そうとします。 しかし、プリンターはこれらの文字を印刷しなければいけないと考えます。 DeskWriterでは、これらの文字は醜い白地に黒のブロック状の文字(ごみ)として出力されます。 この印刷はユーザーの干渉もなく、自然に起こります。 このブートオプションを設定することで、この問題を解決できるはずです。

通常のターミナルのデフォルトがこの場合最適であるので、 このオプションは多分端末に接続されているシリアルポートには不適切でしょう。

External clock sources

新しいzsc/zsttyドライバー(NetBSD/mac68k 1.2で導入された)は、アップルが Macのシリアルポートではじめから見越していたオプションの多くをサポートしようとしています。 そのうちの一つに、データを送受信する際に使われるボーレートを作り出すクロックを、Macに送る サポートするというものがあります。 Personal LaserWriterと会話したり、MIDIアダプターユニットを動かしたりする際に 有効に使えます。

シリアルポートにはそれぞれ二つの入力用のピンがあります。そのため、4クロックレートの 価値が潜在的にあります。1クロックレートが入力されると、二つのことが起こります。 まず一つめに、関連したピンにクロック用に予約されたというフラグが立ちます。 二つめにNetBSDが特定のボーレートを要求したときにクロックレートが考えられます。

これらのピン(BSDとMac OSでは違う名前でよばれます)がBSDにモデム信号のピンであると通常考えられると 一つめの処理がされます。 モデムがデータの媒体を発見したと考えると、カーネルはかならずそれにしたがって反応しなければ いけません。これは一秒に1回も起こりません。一方、クロックレートは常に一秒に数百万のサイクルで 発生します。そのため、クロックの予約はNetBSDカーネルの保護として働きます。

プリンターポート(GPi/DCD)のピンの一つは実際にはボーレートハードウェアによって使うことができません。 これはモデムポート側で完全に特徴となっているクロックの入力に一致します。 それゆえ、本来モデムポートにつなぐべきところをプリンターポートにつなげている機器から カーネルを守るようになっています。

Monitors ダイアログウィンドウ:

最新のカーネルとXサーバーはビデオモードをうまく変更することができません。 BSD/mac68kのコンソールはほとんどの色数や解像度で動作しますが、X Windowシステム(や、たぶん DTマルチウィンドウコンソール)は動作しないでしょう。

BSD/mac68kと同時に、Mac OSとしてもマックを使用している人にとっては、これらのオプションでMac OSの 画面を好きなようにでき、BSD/mac68kカーネルをブートする直前に設定を変更させることができます。

Picture of Monitors... dialog

Change Monitor Colourmap to GreyScale

すべてのXサーバーでは、現在カラーをサポートしていません。 しかし、いくつかのXサーバーは256色グレイスケールをサポートしています。 このオプションによって、 このシステム上のX Window systemが多少使いやすくなるはずです。

Change Monitor Depth

一般的な色数の設定ですが、お使いのMacではサポートしていないものもあります。 もし指定の色数が対象外でしたら、色数は変更されないはずです。

Change Monitor Resolution

一般的なMac OSの画面の大きさですが、モニターMacの両方がサポートしていない かもしれません。もし指定のサイズをMacがサポートしていなければ、画面がぱっと光りますが、 なんの変化もないはずです。逆にモニターが指定の解像度やスキャンレートをサポートしていない場合は、 モニターやケーブルによって処理が違います。普通、解像度の変更は行われません。 もしモニターの特性とは違った設定のMac-PC変換ケーブルをお持ちでしたら、 モニターは同期がとれず、滅多にないことですが、損傷するかもしれません。

これらのオプションはメインモニターのみ反映されることに注意してください。 複数のモニター構成とは現在全く関係ありません。

Startup ダイアログウィンドウ:

Booter自身の操作に関するいくつかの雑多なオプションがPreferencesダイアログウィンドウにあります。

Picture of Startup... dialog

Auto boot on startup / Timeout before boot

通常のブート設定を保存したら、Booterを起動してすぐにBSDへブートしたいでしょう。 'Auto boot on startup'をチェックすると、Booterが起動した後、指定の秒数が経つとブートを 始めます。

Show dialog & wait for OK before booting

上記のオプションをチェックすると、ブート前にブートするかキャンセルするかを 訊ねるダイアログウィンドウが現れます。コンソールが現れて画面が白くなる前に、 ウィンドウのメッセージを読めるように実装されました。

Debugging level

デバッグレベルを1以上に設定すると、ステータスウィンドウにたくさんのデバッグ出力を 表示できます。この出力によって、ブート処理で何がおかしいのか診断することができます。 しかし通常は0のままにしておきます。

Log debugging to file / Set...

メールへ落としたり後で見られるように、ステータスウィンドウのメッセージのログを 保存したい場合、このボックスにチェックを入れ、'Set...'をクリックしてログファイルが生成される場所を 選択して下さい。 保存する際に"Replace existing 'bootlog'?"と言ってきますが、 Booterはすでに存在するログファイルを置き換えず、付け足してくことに御注意ください。 ブートログを必要とするときは、通常デバッグを有効にし(デバッグレベルを1か2にし)、 このオプションを使用することも覚えておいてください。 もちろん通常はブートログを有効にする必要はありません。

No env dumps

このオプションがチェックされていないと、Booterはブート前にステータスウィンドウに ブート環境、つまりUNIXの処理環境と同様の変数の一覧を吐き出します。 このオプションがチェックされていると、ブート前にウィンドウに文字列の一覧をすべて 吐き出すことはありません。 バグレポートには役に立ちますが、ブート処理を遅くします。 このオプションを無効にする場合、'Show dialog & wait for OK before booting'が 有効になっていて、しかも素晴らしい大きなブートウィンドウがある環境ではうまくいきます。:)

Halt on non-fatal errors

いくつかのエラー(ビデオボードの割り込みエラーの様な難解なものに関するものがほとんど)は 致命的ではないと考えられます。 BSD/mac68kのビデオでもし問題があれば、スクロールしていくエラーメッセージを 読めるように、このオプションを有効にしてください。 しかし、ほとんどの場合、気をもむことはないでしょう。無効のままにしておいてください。


よくあるブートエラー

次にあげるエラーの一部は実際にはport-mac68kのFAQですが、そうでないものもあります。 どれも起こる可能性があります。このガイドで不具合の原因が理解できるでしょう。 Mac OSにかならずこのガイドを置いておきましょう!

Couldn't locate any partitions on SCSI ID (0). Cannot open kernel (0,?)netbsd.

このエラーはカーネル用に設定したパーティションをBooterが開けない時に起こります。 'Booting'ダイアログボックスにあるSCSI IDやパーティション名ボックスの打ち間違えを チェックしてください。

File 'foobar' is nonexistent. Cannot open kernel (0,?)foobar.

このエラーはBooterがパーティションを見つけますが、指定したカーネルを開けないときに 起こります。正しいパーティションを指定してあるかどうか確認し、('Booting'ダイアログ ウィンドウ内の)カーネルの名前が打ち間違っていないか確認してください。

Cannot malloc()...
malloc() failed...
Not enough free memory to load this kernel.
(などなど)

これらはすべてBooterがメモリー不足を起こしていることを示します。ファインダーの'Get Info'コマンドを 使って、Booterのメモリー割り当てを増やして、再度ブートしてください。

Magic numbers do not match -- Improper UFS partition.

これは、Booterが指定のNetBSDパーティションを読みに行き、有効なBSDファイルシステムを 見つけられなかったことを示します。パーティションにきちんとMkfsを実行しましたか?

Error -nnn turning off interrupts for slot SS
Error -nnn {getting name of,trying to open} slot 0xSS video driver
(などなど)

これらは起こるはずがありませんが、もしビデオカードのエラーでブートが止まってしまったら、 'Booting'ダイアログウィンドウの"Don't disable VBL interrupts on video cards"を チェックし、再度ブートしてみてください。

Error #-nnn locking kernel memory.

仮想メモリーが有効になった状態でブートしようとしますが、Booterが実際のRAM中に カーネルバッファーをロックできないでいます。仮想メモリーが有効の状態での ブートは全く対象外です。その上、まず動作しません。 メモリーコントロールパネルで仮想メモリーを無効にし、再起動してから改めてブートしてください。

Failed to read executable header from kernel image.
This kernel is not in a format which the Booter can execute.
The kernel does not appear to be a 68k kernel.
Short boot_read. Kernel file corrupt?

これらのメッセージはすべて、Booterがカーネルに指定したファイルをNetBSD 680x0の 実行ファイルだと認識できないことを示しています。 転送中に壊れてしまったのかもしれません。 FTPする時にバイナリーモードを使いましたか? あるいは、カーネルを解凍し忘れているのかも知れません。


Booterバージョン

BooterのソースコードパッケージにはChangeLog.txtというファイルがあり、 これはBooterのバージョン毎の詳しいログが載っています。 ここに、たぶん知る必要があると思われるバージョンの要約を載せます。

バージョン: 1.9.4
製作者: Brian Gaeke

バージョン: 1.9.6
作成者: Allen Briggs

バージョン: 1.9.7
作成者: Steve Brown

バージョン: 1.10.0
作成者: Allen Briggs

バージョン: 1.10.3b1
作成者: Nigel Pearson

バージョン: 1.11.1
作成者: Scott Reynolds, Nigel Pearson

バージョン: 1.11.2
作成者: Eugenio Macia Vivo, Nigel Pearson

バージョン: 1.11.3
作成者: Nigel Pearson


誰が責任者なのか?

Booterは現在Nigel Pearsonによってメンテナンスされています。 <nigel@ind.tansu.com.au あるいは nigel@socs.uts.edu.au>

TO-DO.txtというファイル(ソースコードのパッケージ内にあります) の中にBooterの改善要求の一覧があります。 このファイルに目を通してから、Nigelへ気軽に新しい提案をメールで送信してください。 提案されているものを御自身で実装する際も、Nigelに気軽にコンタクトしてください。

Booterに関するバグレポートをお持ちでしたら、エラーだと思われる処理と再現方法の詳細な記述とともに、 NuBusカードを含んだシステム設定の完全な記録をNigelへ送ってください。 もしMacsBugへ落ちたのであれば、Standardログの内容も送るべきでしょう。 (MacsBugのコマンドバッファーへStdLogと入力し、リターンをおしてください。運がよければ、 最終的にブートディスクのデスクトップフォルダーに行き着くでしょう。) 注意:もしNetBSDの版権のメッセージを通り過ぎたならば、多分Booterが原因のエラーではありません。

Booterにかかわっている人々の一覧です: Allen Briggs, Steve Brown, Chris Caputo, Michael Finch, Brian Gaeke, Brad Grantham, Markus Hitter, Dan Jacobowitz, Lawrence Kesteloot, Nigel Pearson, Scott Reynolds, Bill Studenmund, そして Eugenio Macia Vivo.

このマニュアルは当初NetBSD/mac68kのバージョン1.9.4用にBrian Gaekeによって書かれました。 新しいシリアルポートのオプションの記述はBill Studenmundのおかげです。


版権および商標など

Apple、Macintosh、LocalTalk、System 7、Mac OSはすべてApple Computer Corporationの 登録商標です。 UNIXはSCOの登録商標です。 文中で述べられている他の商標は個々の会社の所有するものです。

Copyright (C) 1996 Brian R. Gaeke
Copyright (C) 1997-8 Nigel Pearson
All rights reserved.

この文書の再配布、ならびに使用は、修正のあるなしに関らず、以下の条件に沿っていれば 認められます。

  1. この文書の再配布は、上記の版権の注意書き、この条件の一覧、次に挙げる放棄声明文が なければいけません。
  2. 文書にした特別重要な許可がなければ、この文書を含む商品の推奨または販売促進のために 著者の名前を使うことはできません。

この文書は著者により、原文のまま提供されています。 どんな表現や言外の保証も、特定の目的の適合性や商業性の言外の保証を含めて、 放棄されています。 とにかく、著者は直接的、間接的、偶発的、特別、典型的、あるいは重大な 損害(代用品、あるいは代わりのサービスの調達;使用法、データ、利益の損失;商業妨害を含む)が どのように起ころうと、責任の理論上、たとえ契約の上で厳格な責任であろうと 不法行為であろうと(不注意やその他を含め)この文書の使用から発生したいかなるものに対し、 たとえ損害の可能性が示唆されていても、いっさい責任を負いません。