この章では、OpenBoot ファームウェアを使用して行う最も一般的な作業について説明します。次のような作業があります。
システムの起動
診断の実行
システム情報の表示
システムのリセット
OpenBoot ファームウェアの最も重要な機能はシステムを起動することです。起動とは、オペレーティングシステムなどのスタンドアロンプログラムをロードし、実行するプロセスのことです。通常、システムは、電源を入れるとユーザーの操作なしに自動的に起動します。必要な場合、ユーザーは OpenBoot コマンドインタプリタから明示的に起動処理を開始できます。自動起動では、不揮発性 RAM (NVRAM) で指定されるデフォルトの起動デバイスが使用されます。ユーザーが開始する起動では、デフォルトの起動デバイスか、ユーザーが指定する起動デバイスが使用されます。
システムをデフォルト起動デバイスから起動するには、Forth モニターのプロンプトで次のコマンドを入力します。
ok boot |
制限付きモニターのプロンプトでシステムを起動するには、次のように入力します。
> b |
boot コマンドの構文は次のとおりです。
boot [device-specifier] [filename] [options]
boot コマンドのオプションの変数を以下の表で説明します。
表 2-1 boot コマンドの 一般的オプション
変数名 |
説明 |
---|---|
[device-specifier] |
起動デバイス名 (フルパス名または別名)。例を示します。 cdrom (CD-ROM ドライブ) disk (ハードディスク) floppy (3.5 インチフロッピーディスクドライブ) net (Ethernet) tape (SCSI テープ) |
[filename] |
起動するプログラムの名前 (たとえば stand/diag)。filename は選択するデバイスとパーティションのルートからのパス名とします。 filename を指定しないと、起動プログラムは boot-file NVRAM 変数の値 (第 3 章「システム変数の設定」を参照) を使用します。 |
[options] |
-a - デバイスと起動ファイル名を聞いてきます。 -h - プログラムを読み込み後、停止します。 (これらは OS に固有のオプションで、システムによって異なります。) |
デバイス名の指定を必要とする (boot や test などの) 多くのコマンドには、フルデバイスパス名、デバイスの別名のどちらを指定してもかまいません。このマニュアルでは、どちらの場合に対しても、device-specifier という表記を使用します。
明示的に内部ディスクから起動するには (ディスクフルシステムの場合)、次のように入力します。
ok boot disk |
明示的に Ethernet から起動するには、次のように入力します。
ok boot net |
制限付きモニタープロンプトで起動デバイスを指定するには、次の例に示すように、起動デバイスの名前を指定して b コマンドを使用します。
> b disk (ディスクフルシステム用の内部ディスクから明示的に起動する場合) > b net (Ethernet から明示的に起動する場合) |
デバイスの別名定義はシステムによって異なります。システムの別名の定義を知るには、第 1 章「概要」で説明した devalias コマンドを使用します。以下の表は、デバイスの別名と、SPARCstation 2 および SPARCstation IPX システムでのデバイス別名の定義の例です。見出しの「旧パス」は、対応する SBus デバイスに対する OpenBoot バージョン 1.x での指定形式を示します。
表 2-2 代表的デバイスの別名
別名 |
起動パス |
旧パス |
説明 |
---|---|---|---|
disk |
/sbus/esp/sd@3,0 |
sd(0,0,0) |
デフォルトディスク (第 1 内部ディスク) |
disk0 |
/sbus/esp/sd@3,0 |
sd(0,0,0) |
第 1 内部ディスク sd0 |
disk1 |
/sbus/esp/sd@1,0 |
sd(0,1,0) |
第 2 内部ディスク sd1 |
disk2 |
/sbus/esp/sd@2,0 |
sd(0,2,0) |
外部ディスク sd2 |
disk3 |
/sbus/esp/sd@0,0 |
sd(0,3,0) |
外部ディスク sd3 |
tape |
/sbus/esp/st@4,0 |
st(0,0,0) |
第 1 テープドライブ st0 |
tape0 |
/sbus/esp/st@4,0 |
st(0,0,0) |
第 1 テープドライブ st0 |
tape1 |
/sbus/esp/st@5,0 |
st(0,1,0) |
第 2 テープドライブ st1 |
cdrom |
/sbus/esp/sd@6,0:c |
sd(0,6,2) |
CD-ROM パーティション c |
cdroma |
/sbus/esp/sd@6,0:a |
sd(0,6,0) |
CD-ROM パーティション a |
net |
/sbus/le |
le(0,0,0) |
Ethernet |
floppy |
/fd |
fd(0,0,0) |
フロッピードライブ |
この表の sd0、sd1 などは、これらのデバイスを記述するために Solaris(R) 1.x オペレーティング環境で使用されていた用語です。Solaris 2.x では、以下の表に示すように異なっています。
表 2-3 Solaris オペレーティング環境の別名
別名 |
Solaris 1.x での名前 |
Solaris 2.x での名前 |
---|---|---|
disk と disk0 |
sd0 |
c0t3d0s0 |
disk1 |
sd1 |
c0t1d0s0 |
disk2 |
sd2 |
c0t2d0s0 |
disk3 |
sd3 |
c0t0d0s0 |
いくつかの診断ルーチンが診断ルーチン Forth モニターで使用できます。これらのオンボードテストでは、ネットワークコントローラ、フロッピーディスクシステム、メモリー、装着されている SBus カード、SCSI デバイス、システムクロックなどのデバイスの機能を確認できます。ユーザーがインストールするデバイスは、そのファームウェアに自己診断機能があればテストできます。
以下の表に診断テスト用コマンドの一覧を示します。device-specifier は、デバイスパス名またはデバイスの別名を意味します。
表 2-4 診断テストコマンド
コマンド |
説明 |
---|---|
probe-scsi |
組み込み SCSI バスに接続されているデバイスを確認します。 |
probe-scsi-all [device-path] |
システムの、指定したデバイスツリーノードの下にインストールされているすべての SCSI バスに対して probe-scsi を実行します。(device-path を指定しないと、ルートノードが使用されます。) |
test device-specifier |
指定したデバイスの自己診断テストを実行します。例を示します。 test floppy: フロッピーディスクドライブが接続されている場合、テストします。 test /memory: NVRAM 変数 selftest-#megs で指定される M バイト数をテストします。または diag-switch? が true の場合は全メモリをテストします。 test net: ネットワーク接続をテストします。 |
test-all [device-specifier] |
指定したデバイスツリーノードの下の (組み込みセルフテスト方法を備える) すべてのデバイスをテストします。(device-specifier を指定しないと、ルートノードが使用されます。) |
watch-clock |
時計機能をテストします。 |
watch-net |
ネットワークの接続を監視します。 |
組み込み 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 バスをテストするには、次のように入力します。
ok probe-scsi-all /iommu@f,e0000000/sbus@f,e0001000/esp@3,200000 Target 6 Unit 0 Disk Removable Read Only device SONY CD-ROM CDU-8012 3.1d /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000 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 |
これにより、指定したデバイスノードの (selftest という名前の) デバイステスト方法が実行されます。応答はデバイスノードの自己診断テストの方法によって異なります。
インストールされているデバイスのグループをテストするには、次のように入力します。
ok test-all |
デバイスツリーのルートノードの下のすべてのデバイスがテストされます。応答は、各デバイスの自己診断テストの方法によって異なります。test-all コマンドに device-specifier オプションを使用すると、指定したデバイスツリーノードの下のすべてのデバイスがテストされます。
フロッピーディスクドライブのテストは、フロッピーディスクドライブが正しく機能するかどうかを調べます。このテストを実行するには、フロッピーディスクドライブにフォーマット済みの高密度 (HD) ディスクをセットしておかなければなりません。
フロッピーディスクドライブをテストするには、次のように入力します。
ok test floppy Testing floppy disk system. A formatted disk should be in the drive. Test succeeded. ok |
このテストが失敗した場合は、エラーメッセージを参照してください。
フロッピーディスクを取り出すには、次のように入力します。
ok eject-floppy ok |
このコマンドが失敗する場合は、紙クリップを伸ばしてディスクスロットの近くの小さな穴に差し込んで、フロッピーディスクを取り出せます。
メモリーテストルーチンを使用すると、システムは NVRAM のシステム変数 selftest-#megs で指定した M バイト数のメモリーをテストします。(NVRAM のシステム変数についての詳細は、第 3 章「システム変数の設定」を参照してください。) デフォルトでは 1 M バイトのメモリーがテストされます。ハードウェア診断スイッチ (システムにある場合) 、NVRAM のシステム変数 diag-switch? のどちらかが有効にしてある場合は、全メモリーがテストされます。
メモリーをテストするには、次のように入力します。
ok test /memory Testing 16 megs of memory at addr 4000000 11 ok |
上記の例で、最初の数値 (4000000) はテストの基底アドレスであり、その次の数値 (11) はテストされる M バイト数です。
PROM がシステムをテストするにはしばらく時間がかかります。システムがこのテストに失敗した場合は、エラーメッセージが表示されます。
Ethernetコントローラのテストボード上の Ethernet コントローラをテストするには、次のように入力します。
ok test net Internal Loopback test - (result) External Loopback test - (result) ok |
システムはテストの結果を示すメッセージを表示して応答します。
システムが Ethernet に接続されていない場合は、このテストの外部ループバック部分が失敗します。
クロック機能をテストするには、次のように入力します。
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 つずつ増えていきます。テストを停止するには任意のキーを押します。
ネットワーク接続を監視するには、次のように入力します。
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 2.x システムにはこのテストワードがありません。
Forth モニターはシステム情報を表示するコマンドをいくつか備えています。それらのコマンドを以下の表に示します。これらのコマンドでは、システムバナー、Ethernet コントローラの Ethernet アドレス、ID PROM の内容、OpenBoot ファームウェアのバージョン番号を表示できます。(ID PROM 内容は、シリアル番号、製造年月日、マシンに割り当てられている Ethernet アドレスを含む各マシン固有の情報です。)
表 2-5 システム情報表示コマンド
コマンド |
説明 |
---|---|
banner |
電源投入時のバナーを表示します。 |
show-sbus |
インストールされ、プローブされる SBus デバイスのリストを表示します。 |
.enet-addr |
現在の Ethernet アドレスを表示します。 |
.idprom |
ID PROM の内容を書式付きで表示します。 |
.traps |
SPARC のトラップタイプのリストを表示します。 |
.version |
起動 PROM のバージョンと日付を表示します。 |
デバイスツリー表示コマンドも参照してください。
オペレーティングシステムを停止し banner と入力し、次にシステムを再起動すると、カラーテーブルが変更されてしまうことがあります。Solaris 2.0 以前の OS でこのカラーテーブルを復元するには、clear_colormap を実行し、次に Utilities メニューから Refresh を選択します。Solaris 2.0 または 2.1 のオペレーティング環境に復元するには、 Properties...メニューから Color Chooser を選択します。
場合により、システムをリセットする必要が生じることがあります。reset コマンドはシステム全体をリセットします。これは、電源再投入 (パワーサイクル) を行うのと同じです。
システムをリセットするには、次のように入力します。
ok reset |
リセット時にパワーオン自己診断テスト (POST) および初期化手続きを実行するようにシステムを設定してある場合は、このコマンドを起動すると、それらの手続きの実行が開始されます。(システムによっては、電源投入後に POST だけが実行されます。) POSTが終了すると、電源再投入後と同様に、システムは自動的に起動するか、Forth モニターに入ります。
デバイスツリーをブラウズしていた場合は、システムをリセットする前に device-end コマンドの実行が必要になることがあります。