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

nvramrc の使用方法

nvramrc システム変数はスクリプトと呼ばれる内容を持ち、起動時に実行されるユーザー定義コマンドを格納します。

一般的に、nvramrc は起動時のシステム変数を保存したり、デバイスドライバコードをパッチしたり、インストール先固有のデバイス構成とデバイスの別名を定義するためにデバイスドライバが使用します。また、バグパッチまたはユーザーインストールの拡張用にも使用できます。コマンドは、ユーザーがコンソールから入力するように ASCII で格納されます。

use-nvramrc? システム変数が true の場合は、そのスクリプトが OpenBoot の起動処理で次のように評価されます。

場合によっては、probe-all install-console banner の処理を変更することが必要な場合があります。たとえば、差し込み式ディスプレイデバイスのプローブが終わってからコンソールデバイスの選択が終わるまでに、差し込み式デバイスの特性を変更するコマンドを実行する必要があることがあります。そのようなコマンドは、probe-allinstall-console の間で実行する必要があります。出力をコンソールに表示するコマンドを install-console または banner の後に入れる必要があります。

これは、bannersuppress-banner を内容とするカスタムスクリプトを作成することにより実現できます。それは、そのスクリプトから bannersuppress-banner が実行されれば、probe-allinstall-console および banner 処理が実行されないためです。つまり、そのスクリプト内部で probe-allinstall-consolebanner を場合により他のコマンドと混用する形で使用することができ、スクリプト終了後にそれらのコマンドを再び実行させないようにできます。

次の例外を除く、ほとんどすべてのユーザーインタフェースコマンドがスクリプトで使用できます。

スクリプトの内容の編集

スクリプトエディタである nvedit では、表 3-5 に示すコマンドを使用して、スクリプトの内容を作成、変更することができます。

表 3-5 NVRAMAC に影響するコマンド

コマンド 

説明 

nvalias alias device-path

スクリプトにコマンド devalias alias device-path を格納します。この別名は、nvunalias または set-defaults コマンドが実行されるまで有効です。

$nvalias

スタックから引数 name-string device-string を使用する以外は、nvalias と同じ機能です。

nvedit

スクリプトエディタを起動します。前の nvedit セッションからのデータが一時バッファー内に残っている場合は、以前の内容の編集を再開します。残っていない場合は、nvramrc の内容を一時バッファーに読み取って、それらの編集を開始します。

nvquit

一時バッファーの内容を、nvramrc に書き込まないで捨てます。捨てる前に、確認を求めます。

nvrecover

nvramrc の内容が set-defaults の実行結果として失われている場合、それらの内容を回復し、次に nvedit の場合と同様にこのエディタを起動します。nvramrc の内容が失われたときから nvrecover が実行されるまでの間に nvedit を実行した場合は、nvrecover は失敗します。

nvrun

一時バッファーの内容を実行します。 

nvstore

一時バッファーの内容を nvramrc にコピーします。一時バッファーの内容は捨てます。

nvunalias alias

対応する別名を nvramrc から削除します。

$nvunalias

スタックから引数 name-string を使用する以外は、nvunalias と同じ機能です。

表 3-6 にスクリプトエディタで使用できる編集コマンドを示します。

表 3-6 スクリプトエディタキー操作コマンド

キー操作 

説明 

Control-B 

1 文字位置戻ります。 

Escape B 

1 語戻ります。 

Control-F 

1 文字位置進みます 

Escape F 

1 語進みます。 

Control-A 

行の先頭に戻ります。 

Control-E 

行の終わりに進みます。 

Control-N 

スクリプト編集バッファーの次の行に進みます。 

Control-P 

スクリプト編集バッファーの前の行に戻ります。 

Return (Enter) 

カーソル位置に改行を挿入し、次の行に進みます。 

Control-O 

カーソル位置に改行を挿入し、現在の行にとどまっています。 

Control-K 

カーソル位置から行の終わりまで消去し、消去した文字を保存バッファーに格納します。カーソルが行の終わりにある場合は、現在の行に次の行をつなぎます (つまり、改行を削除します)。 

Delete 

前の 1 文字を削除します。 

Backspace 

前の 1 文字を削除します。 

Control-H 

前の 1 文字を削除します。 

Escape H 

語の先頭からカーソルの直前まで消去し、消去した文字を保存バッファーに格納します。 

Control-W 

語の先頭からカーソルの直前まで消去し、消去した文字を保存バッファーに格納します。 

Control-D 

次の 1 文字を消去します。 

Escape D 

カーソルから語の終わりまで消去し、消去した文字を保存バッファーに格納します。 

Control-U 

1 行全体を消去し、消去した文字を保存バッファーに格納します。 

Control-Y 

保存バッファーの内容をカーソルの前に挿入します。 

Control-Q 

次の文字の前に引用符を付けます (つまり、制御文字を挿入できます)。 

Control-R 

1 行を入力し直します。 

Control-L 

編集バッファーの内容全体を表示します。 

Control-C 

エディタを終了し、OpenBoot コマンドインタプリタに戻ります。一時バッファーは保存されていますが、スクリプトには戻されません。(後で nvstore を使用して書いて戻してください。)

スクリプトファイルの起動

次の手順で、スクリプトコマンドファイルを作成し起動してください。

  1. ok プロンプトで、nvedit と入力します。

エディタのコマンドを使用してスクリプトの内容を編集します。

  1. Control-C を入力してエディタを終了し、再び ok プロンプトを表示させます。

変更を保存するために nvstore をまだ入力していない場合、nvrun と入力して一時編集バッファーの内容を実行できます。

  1. nvstore と入力して変更結果を保存します。

  2. 次のように入力して、スクリプトを有効にします。


    setenv use-nvramrc? true
    

  3. reset-all と入力してシステムをリセットしてからスクリプトの内容を実行するか、次のように入力してスクリプトの内容を直接実行します。


    nvramrc evaluate
    

次の例で、nvramrc 内に単純なコロン定義を作成する方法を示します。


ok nvedit 
0: : hello ( -- ) 
1: ." Hello, world. " cr 
2: ; 
3: ^C 
ok nvstore 
ok setenv use-nvramrc? true 
ok reset-all 
...
ok hello 
Hello, world.
ok 

上の例で nvedit の行番号のプロンプト (0:、1:、2:、3:) に注意してください。これらのプロンプトはシステムによって異なることがあります。