nvramrc システム変数はスクリプトと呼ばれる内容を持ち、起動時に実行されるユーザー定義コマンドを格納します。
一般的に、nvramrc は起動時のシステム変数を保存したり、デバイスドライバコードをパッチしたり、インストール先固有のデバイス構成とデバイスの別名を定義するためにデバイスドライバが使用します。また、バグパッチまたはユーザーインストールの拡張用にも使用できます。コマンドは、ユーザーがコンソールから入力するように ASCII で格納されます。
use-nvramrc? システム変数が true の場合は、そのスクリプトが OpenBoot の起動処理で次のように評価されます。
電源投入時自己診断テスト (POST)を実行します。
システムの初期化を実行します。
(use-nvramrc? が true の場合) スクリプトを評価します。
二次診断を実行します。
(auto-boot? が true の場合) デフォルト起動を実行します。
場合によっては、probe-all install-console banner の処理を変更することが必要な場合があります。たとえば、差し込み式ディスプレイデバイスのプローブが終わってからコンソールデバイスの選択が終わるまでに、差し込み式デバイスの特性を変更するコマンドを実行する必要があることがあります。そのようなコマンドは、probe-all と install-console の間で実行する必要があります。出力をコンソールに表示するコマンドを install-console または banner の後に入れる必要があります。
これは、banner か suppress-banner を内容とするカスタムスクリプトを作成することにより実現できます。それは、そのスクリプトから banner か suppress-banner が実行されれば、probe-all install-console banner 処理が実行されないためです。つまり、そのスクリプト内部で probe-all、install-console、banner を場合により他のコマンドと混用する形で使用することができ、スクリプト終了後にそれらのコマンドを再び実行させないようにできます。
次の例外を除く、ほとんどすべてのユーザーインタフェースコマンドがスクリプトで使用できます。
スクリプトエディタである nvedit では、表 3-5に示すコマンドを使用して、スクリプトの内容を作成、変更することができます。
表 3-5 NVRAMAC に影響するコマンド
表 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 を使用して書いて戻してください。) |
次の手順で、スクリプトコマンドファイルを作成し起動してください。
ok プロンプトで、nvedit と入力します。
エディタのコマンドを使用してスクリプトの内容を編集します。
Control-C を入力してエディタを終了し、再び ok プロンプトを表示させます。
変更を保存するために nvstore をまだ入力していない場合、nvrun と入力して一時編集バッファーの内容を実行できます。
nvstore と入力して変更結果を保存します。
次のように入力して、スクリプトを有効にします。
setenv use-nvramrc? true |
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:) に注意してください。これらのプロンプトはシステムによって異なることがあります。