OpenBoot 3.x コマンド・リファレンスマニュアル

第 2 章 システムの起動とテスト

この章では、OpenBoot ファームウェアを使用して行う最も一般的な作業について説明します。次のような作業があります。

システムの起動

OpenBoot ファームウェアの最も重要な機能はシステムを起動することです。起動とは、オペレーティングシステムなどのスタンドアロンプログラムを読み込み、実行するプロセスのことです。起動は、自動的にも、ユーザーインタフェースでコマンドを入力しても開始できます。

起動処理は多数のシステム変数によって制御されます (システム変数については、第 3 章「システム変数の設定」で詳細に説明します)。起動処理に関係するシステム変数を次に示します。

上記の各システム変数の値に基づいて、起動処理はさまざまな形態で進められます。次にいくつかの例を示します。

一般ユーザー向けの起動

一般的に、auto-boot?trueboot-commandboot に設定されており、OpenBoot は診断モードにはなりません。したがって、システムに最初に電源を投入したり、システムをリセットしたときは、システムは、boot-device によって記述されたデバイスから、boot-file によって記述された引数を使用してプログラムを読み込み、実行します。

auto-boot? false のときにデフォルトプログラムを起動する場合は、ok プロンプトで boot と入力します。

上級ユーザー向けの起動

起動はクライアントプログラムを読み込み実行するプロセスです。クライアントプログラムは、通常はオペレーティングシステムまたはオペレーティングシステムのローダプログラムですが、boot を使用して診断などその他の種類のプログラムを読み込み、実行することもできます。(オペレーティングシステム以外のプログラムの読み込みについての詳細は、第 5 章「プログラムの読み込みと実行」を参照してください。

起動は、普通は、上記で説明した各システム変数の内容値に基づいて自動的に行われますが、ユーザーインタフェースからも開始できます。

OpenBoot は起動処理で次に示す手順を実行します。

多くの場合、起動処理によって読み込み、実行されるプログラムは二次起動プログラムであり、それはさらに別のプログラムを読み込みすることを目的とします。この二次起動プログラムは、OpenBoot が使用するものとは異なるプロトコルを使用して二次起動プログラムを読み込むことができます。たとえば、OpenBoot は簡易ファイル転送プロトコル (TFTP) を使用して二次起動プログラムを読み込むこともでき、さらに読み込まれたた二次起動プログラムが今度はネットワークファイルシステム (NFS) を使用してオペレーティングシステムを読み込むこともできます。

一般的な二次起動プログラムには次の形式の引数を指定できます。

filename -flags

ここで、filename はオペレーティングシステムを格納しているファイルの名前であり、-flags は、二次起動プログラム、オペレーティングシステム、またはそれらの両方の起動フェーズの詳細制御用のオプションのリストです。すぐ次の boot コマンドのテンプレートに示すように、OpenBoot はそのようなテキストをすべて OpenBoot そのものには特別な意味をもたない、1 つの隠された引数文字列として取り扱うということ、つまり、引数文字列は変更されないでそのまま指定されたプログラムに渡されるということに注意してください。

boot コマンドの形式は次のとおりです。


ok boot [device-specifier] [arguments]

boot コマンドの省略可能な変数を 表 2-1で説明します。

表 2-1 boot コマンドの省略可能な変数

変数名 

説明 

[device-specifier]

起動デバイスの名前 (フルパス名または devalias)。一般的には次のような値が使用されます。

cdrom (CD-ROM ドライブ )

disk (ハードディスク)

floppy (3.5 インチフロッピーディスク)

net ( Ethernet )

tape (SCSI テープ)

device-specifier を指定しないときに、 diagnostic-mode? から false が返された場合は、 bootboot-device システム変数によって指定されるデバイスを使用します。

device-specifier を指定しないときに、 diagnostic-mode? から true が返された場合は、 bootdiag-device システム変数によって指定されるデバイスを使用します。

[arguments]

起動するプログラム (たとえば stand/diag) の名前と任意のプログラム引数。

arguments を指定しないときに、diagnostic-mode? から false が返された場合は、 bootboot-file システム変数によって指定されるファイルを使用します。

arguments を指定しないときに、 diagnostic-mode? から true が返された場合は、 bootdiag-file システム変数によって指定されるファイルを使用します。


注 -

デバイス名を必要とする大部分の (boottest などの) コマンドには、フルデバイス名でもデバイスの別名でも指定できます。本書では、device-specifier (デバイス指定子) という用語は、デバイスパス名でもデバイスの別名でも指定できるということを意味しています。


デバイスの別名は構文的には arguments と区別できないので、OpenBoot はこのあいまいさを次のように解決します。

したがって、boot コマンド行には次に示すような書式が可能です。


ok boot

この書式の場合は、boot はデフォルトの起動デバイスからデフォルトの起動引数によって指定されるプログラムを読み込み、実行します。


ok boot device-specifier

boot の引数が 1 つだけであって、その最初の文字が / であるか、または定義されている devalias の名前である場合は、boot はその引数をデバイス指定子として使用します。つまり、boot は指定されたデバイスからデフォルト起動引数によって指定されるプログラムを読み込み、実行します。

たとえば、明示的にディスクから起動するには、次のように入力します。


ok boot disk 

明示的にネットワークから起動するには、次のように入力します。


ok boot net

boot の引数が 1 つだけであって、かつその最初の文字が / でもなく、また定義されている devalias の名前でもない場合は、boot はその後のテキストをすべて boot の引数として使用します。


ok boot arguments

boot はデフォルトの起動デバイスから引数によって指定されるプログラムを読み込み、実行します。


ok boot device-specifier arguments

空白文字で区切られた引数が最低 2 つはあって、かつそれらの最初の引数の最初の文字が / であるか、または定義されている devalias の名前である場合は、boot は最初の引数をデバイス指定子として使用し、その後のテキストをすべて boot の引数として使用します。つまり、boot は指定されたデバイスから引数によって指定されるプログラムを読み込み、実行します。

上に示したすべての場合について、boot はそれが使用するデバイスを /chosenノードの bootpath 特性に記録します。boot はさらに、それが使用する引数も /chosen ノードの bootargs 特性に記録します。

デバイスの別名定義はシステムごとに異なります。第 1 章「概要」で説明している devalias を使用してシステムの別名の定義を調べてください。

診断の実行

いくつかの診断ルーチンがユーザーインタフェースで使用できます。これらのオンボードテストでは、ネットワークコントローラ、フロッピーディスクシステム、メモリー、装着されている SBus カード、SCSI デバイス、システムクロックなどのデバイスの機能を確認できます。

diagnostic-mode? から返される値は、次に示す設定を行います。

OpenBoot は診断モードになり、次の条件のうち少なくとも 1 つが満たされた場合は、diagnostic-mode? コマンドから true が返されます。

OpenBoot が診断モードのときは、diag-device の値は boot コマンドの「デフォルトの起動デバイス」として使用され、diag-file の値は「デフォルトの起動引数」として使用されます。

OpenBoot が診断モードでないときは、boot-device の値は boot コマンドの「デフォルトの起動デバイス」 として使用され、boot-file の値は「デフォルトの起動引数」として使用されます。

表 2-2に診断テスト用コマンドの一覧を示します。これらのテストは OpenBoot で実装していないことがあります。

表 2-2 診断テストコマンド

コマンド 

説明 

probe-scsi

SCSI バスに接続されているデバイスを確認します。 

test device-specifier

指定したデバイスの自己診断テスト を実行します。例を示します。

test net : ネットワーク接続をテストします。

watch-clock

時計機能をテストします。 

watch-net

ネットワークの接続を監視します。 

SCSI バスのテスト

SCSI バスに接続されているデバイスの機能を確認するには、次のように入力します。


ok probe-scsi 
Target 1
  Unit 0 Disk SEAGATE ST1480 SUN04246266 
   Copyright (C) 1991 Seagate All rights reserved 
Target 3
  Unit 0 Disk SEAGATE ST1480 SUN04245826 
   Copyright (C) 1991 Seagate All rights reserved 
ok

応答は SCSI バスに接続されているデバイスによって異なります。

取り付けられているデバイスのテスト

取り付けられている 1 つのデバイスをテストするには、次のように入力します。


ok test device-specifier

一般的に、メッセージが何も表示されなければテストは成功です。


注 -

多くのデバイスでは、このテストを実行するために、システムの diag-switch? パラメタを true にしておく必要があります。


フロッピーディスクドライブのテスト

フロッピーディスクドライブのテストは、フロッピーディスクドライブが正しく機能するかどうかを調べます。このテストを実行するには、フロッピーディスクドライブにフォーマット済みの高密度 (HD) ディスクをセットしておかなければなりません。

フロッピーディスクドライブをテストするには、次のように入力します。


ok test floppy
Testing floppy disk system. A formatted
disk should be in the drive.
Test succeeded.
ok 


注 -

一部の OpenBoot システムにはこのテストワードがありません。


ソフトウェアによる取り出しが可能なシステムのドライブからフロッピーディスクを取り出すには、次のように入力します。


ok eject-floppy
ok 

メモリーのテスト

メモリーをテストするには、次のように入力します。


ok test /memory 
Testing 16 megs of memory at addr 4000000 11
ok 


注 -

一部の OpenBoot システムにはこのテストワードはありません。


上の例で、最初の数値 (4000000) はテストの基底アドレスであり、その次の数値 (11) はテストされる M バイト数です。

クロックのテスト

クロック機能をテストするには、次のように入力します。


ok watch-clock 
Watching the 'seconds' register of the real time clock chip.
It should be ticking once a second.
Type any key to stop.
1 
ok 

数値が 1 秒ごとに 1 つずつ増えていきます。テストを停止するには任意のキーを押します。


注 -

一部の OpenBoot システムにはこのテストワードがありません。


ネットワークコントローラのテスト

ネットワークコントローラをテストするには、次のように入力します。


ok test net 
Internal Loopback test - (結果)
External Loopback test - (結果)
ok 

システムはテストの結果を示すメッセージを応答します。


注 -

特定のネットワークコントローラとシステムが接続しているネットワークのタイプとによって、各種レベルのテストが可能です。それらのテストによっては、ネットワークインタフェースをネットワークに接続することが必要な場合があります。


ネットワークの監視

ネットワーク接続を監視するには、次のように入力します。


ok watch-net 
Internal Loopback test - succeeded
External Loopback test - succeeded
Looking for Ethernet packets.
'.' is a good packet. 'X' is a bad packet.
Type any key to stop
....................X.....X...............
ok 

システムはネットワークトラフィックを監視し、エラーのないパケットを受け取るたびに . を、また、ネットワークハードウェアインタフェースによって検出できるエラーがあるパケットを受け取るたびに X をそれぞれ表示します。


注 -

一部の OpenBoot システムにはこのテストワードがありません。


システム情報の表示

ユーザーインタフェースはシステム情報を表示するコマンドをいくつか備えています。banner は ObenBoot のすべての実装で提供されます。その他のコマンドについては、一部の実装で拡張機能として提供されます。それらのコマンドを表 2-3に示します。これらのコマンドでは、システムバナー、Ethernet コントローラの Ethernet アドレス、ID ROM の内容、OpenBoot ファームウェアのバージョン番号を表示できます。(ID ROM 内容は、シリアル番号、製造年月日、マシンに割り当てられている Ethernet アドレスを含む各マシン固有の情報です。)

表 2-3 システム情報表示コマンド

コマンド  

説明 

banner

電源投入時のバナーを表示します。 

show-sbus

取り付けられ、プローブされる SBus デバイスのリストを表示します。 

.enet-addr

現在の Ethernet アドレスを表示します。 

.idprom

ID PROM の内容をフォーマットされた形式で表示します。 

.traps

プロセッサに依存するトラップタイプのリストを表示します。 

.version

起動 PROM のバージョンと日付を表示します。 

.speed

プロセッサおよびバスの速度を表示します。 

表 1-3のデバイスツリー表示コマンドも参照してください。

システムのリセット

場合により、システムをリセットすることが必要になることがあります。

reset-all コマンドはシステム全体をリセットします。これは、電源再投入 (パワーサイクル) を行うのと同じです。

システムをリセットするには次のように入力します。


ok reset-all

リセット時にパワーオン自己診断テスト (POST) および初期化手続きを実行するようにシステムを設定してある場合は、このコマンドを起動すると、それらの手続きの実行が開始されます。(システムによっては、電源投入後に POST だけが実行されます。) POST が終了すると、電源再投入後と同様に、システムは自動的に起動するか、ユーザーインタフェースに入ります。