OpenBoot

2007/5/23更新

対応バージョン: 3

以下の手順でdiag-switch?システム変数をtrueに設定してマシンをブートする。

okプロンプトに移行

diag-switch?システム変数をtrueに設定

ok printenv
Variable Name   Value   Default Value
:
diag-switch?    false   false

ok setenv diag-switch? true

電源OFF

数秒後に電源ON

→ セルフテストが始まる。処理時間は数分程度。

セルフテストが終了するとマシンのブートが始まるのでテストの結果を表示したい場合はブート開始時に「Stop」+「A」にてokプロンプトに移行し、show-post-resultsコマンドを実行する

→ 数行の出力があるが、最初の行に0と出力されていればエラーなし

diag-switch?システム変数がtrueのままだと毎回ブート時にセルフテストが行なわれるのでfalseに戻す

ok setenv diag-switch? false

ok reset-all ← 設定をNVRAMに書き込む

2007/5/23更新

対応バージョン: 3

システム変数一覧

システム変数には以下のようなものがある(括弧内はデフォルト値)。

auto-boot? (true)

自動ブートの指定。

trueの場合、電源投入/リセット時にシステムが自動的に起動する。

boot-command (boot)

auto-boot?がtrueの場合に実行されるコマンドを指定する。

boot-device (disk net)

起動するデバイスのエイリアス名を指定する。

boot-file (空白)

起動するプログラムに渡される引数を指定する。

この変数を使用する場合にはdiag-switch?の値がfalseである必要がある。

boot-fileの使用例を示す。

ok setenv boot-file kernel/unix ← 32bitモードで起動する場合
ok setenv boot-file kernel/sparcv9/unix ← 64bitモードで起動する場合
ok setenv boot-file kadb /kernel/unix ← kadbモードで起動する場合

diag-device (net)

診断モードの際の起動デバイスを指定する。

diag-file (空白)

診断モードで起動するプログラムに渡される引数を指定する。

diag-level (min)

実行される診断レベル(minまたはmax)を指定する。

diag-switch? (false)

trueの場合、診断プログラムが実行される。

fcode-debug? (false)

trueの場合、追加デバイスFCodeの名前フィールドを取り入れる。

input-device (keyboard)

電源投入時の入力デバイスを指定する(その他ttya、ttybなど)。

keymap (no default)

キーボードカスタマイズ用のキー割当を指定する。

nvramrc (空白)

NVRAM起動スクリプトを指定する。

oem-banner (空白)

カスタムOEMバナーである(oem-banner?がtrueで使用可能になる)。

oem-banner? (false)

trueの場合、カスタムOEMバナーを使用する。

output-device (screen)

電源投入時の出力デバイスを指定する(その他ttya、ttybなど)。

use-nvramrc? (false)

trueの場合、システム起動時にnvramrcのコマンドを実行する。

システム変数表示/変更方法

システム変数は以下のコマンドを使用して表示/変更することができる。

PROM上の場合

システム変数の設定値を表示する
ok printenv [変数]
システム変数の値を設定する。
ok setenv [変数] [値]
指定された変数をデフォルト値に戻する。
ok set-default [変数]
全ての変数をデフォルト値に戻する。
ok set-defaults

OSが起動している場合

システム変数の設定値を表示する。
# eeprom [変数]
システム変数の値を設定する。
# eeprom [変数]=[値]

2007/5/23更新

対応バージョン: 3

以下のコマンドを使用する。

show-devs

システムに認識されている全てのデバイス名を表示する。

show-displays

フレームバッファのデバイス名を表示する。

show-nets

ネットワークインタフェースのデバイス名を表示する。

2007/5/23更新

対応バージョン: 3

以下のコマンドが使用できる。

尚、bannerコマンド以外は一部のバージョンのOpenBootファームウェアのみで利用可能である。

banner

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

enet-addr

NICのMACアドレスを表示する。

version

PROMのバージョン及び日付を表示する。

idprom

ID PROMの内容を見やすく整形して表示する。

2007/5/23更新

対応バージョン: 3

以下の手順で作業する。

現在の標準出力(output-device)を確認する

システムの標準出力先はPROMのoutput-device変数で指定できるのでまず現在の設定を確認する。

ok printenv output-device
output-device = screen

デフォルトの設定ではscreenというエイリアス名が設定されている。

以下のコマンドでscreenに対応するフレームバッファのデバイス名を確認する。

ok devalias screen
screen   /pci@1f,0/pci@5/TSI,gfxp@2

使用できるフレームバッファの一覧を表示し、出力結果から標準出力に設定するフレームバッファを選択する

ok show-displays

a) /pci@1f,0/pci@5/TSI,gfxp@2 ← 現在の出力先
b) /pci@1f,0/pci@5/SUNW,m64B@1
q) NO SELECTION
Enter Selection, q to quit:b ←ここで選択する。

選択したデバイスをコンソールデバイスとして設定する

ok setenv output-device <「Control」+「Y」>

設定内容を確認する

ok printenv output-device
output-device = /pci@1f,0/pci@5/SUNW,m64B@1

システムをリセットして設定を反映させる

ok reset

設定を元に戻したい場合は以下のようにoutput-deviceの値を変更する

ok setenv output-device <screenまたはその他のデバイス名>
ok reset

2007/5/23更新

対応バージョン: 3

OpenBootファームウェアはデフォルトでdisk、cdrom、screen、netなどのエイリアスが定義されているが、nvaliasコマンドを使用するとユーザがデバイスパスのエイリアスを設定することが可能である。

ok nvalias <エイリアス名> <デバイスパス>

尚、エイリアスの設定内容を確認するコマンドはdevaliasである。

nvaliasを設定するとnvramrc変数に設定した内容が入り、use-nvramrc?変数が自動的にデフォルトのfalseからtrueに変更される。

これによりPROMの起動時にnvramrcに設定されているnvaliasが実行され、設定したエイリアスが使えるようになる。

また、nvaliasの設定を解除するには以下のコマンドを実行すればよい。

ok nvunalias <エイリアス名>

この設定はシステムのリセット後に反映される。