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

デバイスのパス名、アドレス、引数

OpenBoot ファームウェアはシステム内のハードウェアデバイスを直接取り扱います。各デバイスには、デバイスの種類、システムアドレス構造内のそのデバイスの位置を表す固有の名前があります。次の例でデバイスのフルパス名を示します。

/sbus@1,f8000000/esp@0,40000/sd@3,0:a

デバイスのフルパス名は、スラッシュ (/)で区切られた一連のノード名です。ツリーのルートは明示的には示されない、先頭のスラッシュ (/) で示されるマシンノードです。各ノード名は次の形式になっています。

name@address:arguments

表 1-2でこれらの変数を説明します。

表 1-2 デバイスパス名の変数

変数名 

説明 

name

理想的には、なんらかのニーモニック値をもつテキスト文字列。(たとえば、 sd は SCSI ディスクを表します。多くの名前、特に差し込み式モジュールの名前は、デバイスのメーカの名前または株式略称を含みます (たとえば、SUNW)。

@

address 変数の前に入れます。

address

アドレスを表すテキスト文字列。通常は、hex_numberhex_number の形式。(数値は 16 進形式で指定します。)

:

arguments 変数の前に入れなければなりません。

arguments

形式が特定のデバイスによって決まるテキスト文字列。これを使用してデバイスのソフトウェアに追加情報を渡すことができます。 

フルデバイスパス名は、システムが使用するハードウェアアドレス指定をまねて、異なるデバイスを区別します。したがって、特定のデバイスをあいまいさなしに指定できます。

一般的に、ノード名の address 部分はその親のアドレス空間内の 1 つのアドレスを表します。特定のアドレスの正確な意味は、そのアドレスのデバイスが接続されているバスによって決まります。同じ例をもう一度示します。

/sbus@1,f8000000/esp@0,40000/sd@3,0:a

パス名を指定するときは、ノード名の @addressまたは name 部分は省略できます。省略すると、ファームウェアは指定した名前に最もよく一致するデバイスを選択しようとします。同じ程度に一致するデバイスが複数存在すると、ファームウェアはそれらから選択します (ユーザーが希望するものと異なるかも知れません)。

たとえば、/sbus/esp@0,40000/sd@3,0 を使用するとすると、そのシステムにはメインシステムバス上の sbus インタフェースが 1 つあるものとし、sbussbus@1,f8000000と表すのと同じように明確にします。しかし同じシステムでも、/sbus/esp/sd@3,0と表すと、あいまいな場合と、そうでない場合があります。SBus には差し込み式カードが装着できるので、同じ SBus 上に esp だけを使用したのではどのデバイスかを指定できず、ファームウェアはユーザーが意図するesp デバイスを選択しないかも知れません。

もう 1 つの例として、/sbus/@0,40000/sd@3,0 は通常指定できるのに対して、/sbus/esp@0,40000/@3,0 は通常では指定できません。それは、SCSI ディスクデバイスドライバ (sd) と SCSI テープデバイスドライバ (st) の両方に SCSI のターゲット、論理ユニットアドレス 3,0を使用できるためです。

ノード名の :arguments 部分も省略できます。同じ例を示します。

/sbus@1,f8000000/esp@0,40000/sd@3,0:a

sd デバイスの引数は文字列 a です。sdのソフトウェアドライバはその引数をディスクパーティションとして解釈するため、デバイスパス名はそのディスク上のパーティション a を参照します。