「/etc/system ファイル内のパラメタの設定」で説明されているパラメタは、デバイスごとに設定することもできます。それらのパラメタをデバイスごとに設定するには、/kernel/drv ディレクトリに hme.conf ファイルを作成します。hme.conf ファイルのパラメタ設定は、/etc/system ファイルの設定に優先します。システムの特定のデバイスに対して特定のパラメタを設定する必要がある場合は、hme.conf ファイルを使用してください。hme.conf ファイルには、第 2 章「パラメタの定義」で示されている読み取り・書き込み可能なパラメタを設定することができます。
詳細は、prtconf(1M)、system(4)、driver.conf(4) のマニュアルページを参照してください。以下に hme.conf ファイルに設定する例を示します。
prtconf -v コマンドを実行し、出力を more コマンドにパイプで渡すか (prtconf -v | more)、出力先をファイルに変更して (prtconf -v > ファイル名)、保存されたファイルの内容を表示します。
prtconf -v の出力から、SUNW,hme,instance #0 や SUNW,hme,instance #1 などのセクションを探します。
Sun Ultra 1 Creator シリーズのシステムでは、SUNW,hme,instance #0 に対応する出力は以下のようになります。
SUNW,hme, instance #0 Driver software properties: name <pm_norm_pwr> length <4> value <0x00000001>. name <pm_timestamp> length <4> value <0x30743b26>. Register Specifications: Bus Type=0xe, Address=0x8c00000, Size=108 Bus Type=0xe, Address=0x8c02000, Size=2000 Bus Type=0xe, Address=0x8c04000, Size=2000 Bus Type=0xe, Address=0x8c06000, Size=2000 Bus Type=0xe, Address=0x8c07000, Size=20
スーパーユーザーになります。
テキストエディタを使用して /kernel/drv ディレクトリに hme.conf ファイルを作成し、そのファイルに以下のような行を追加します。
name="hme" および class="sbus" と指定します。
reg 属性を使用して、目的のデバイス (この例では 0xe) を指定します。 prtconf -v の出力の Bus Type の後に続く値を使用します。
アドレスを入力し、その後に指定サイズを入力します。以下の例のように、それぞれのサイズの先頭に 0x と 0 の列を付けてください。
ipg1 と ipg2 を設定します。最後の値の後にセミコロン (;) を付けます。
この例では、ipg1 と ipg2 をそれぞれ 20 と 10 に設定しています。ipg パラメタの定義については、第 2 章「パラメタの定義」を参照してください。
name="hme" class="sbus" reg=0xe,0x8c00000,0x00000108, 0xe,0x8c02000,0x00002000, 0xe,0x8c04000,0x00002000, 0xe,0x8c06000,0x00002000, 0xe,0x8c07000,0x00000020 ipg1=20 ipg2=10;
hme.conf ファイルを保存します。
すべてのファイルを保存してすべてのプログラムを終了し、ウィンドウシステムを終了します。
# プロンプトに対して init 6 と入力し、システムを再起動します。
目的のデバイスのハードウェアパス名をデバイスツリーから取得します。
通常、デバイスのパス名と関連するインスタンス番号は、/etc/path_to_inst ファイルに含まれています。たとえば、SunSwift-PCI カード 1 枚が取り付けられている Sun Ultra 30 UPA/PCI システムでは、/etc/path_to_inst ファイル内に (他のデバイス用のエントリに加えて) 以下の 2 つのエントリが存在します。
"/pci@1f,4000/network@1,1" 0 "hme" "/pci@1f,4000/pci@4/SUNW,hme@0,1" 1 "hme"
最初のエントリは、マザーボード上の hme デバイスに対応しています。2 番目のエントリは、SunSwift-PCI カード上の hme デバイスに対応しています。
上記の 2 行についての詳細は以下のとおりです。
最初の二重引用符内は、デバイスツリー内のハードウェアノード名を表します。
次の列の数字は、インスタンス番号です。
最後の二重引用符内はドライバ名です。
デバイスパス名の最後の / 文字と@ 文字の間の要素は、デバイス名を表します。
最後の要素の前のパス名は、親の名前を表します。
最後の@ 文字の後のコンマで区切られた数字は、デバイス番号と機能番号を表し、この 2 つで装置アドレスと呼ばれます。
hme.conf ファイルで PCI デバイスを明確に指定するには、名前と親、装置アドレスを使用します。PCI デバイス指定の詳細については、pci(4) のマニュアルページを参照してください。
上記の例の 1 行目では、以下のようになります。
名前 = network
親 = /pci@1f,4000
装置アドレス = 1,1
2 行目では、以下のようになります。
名前 = SUNW,hme
親 = /pci@1f,4000/pci@4
装置アドレス = 0,1
/kernel/drv/hme.conf ファイル内の以上の 2 つのデバイスに、ipg1 および ipg2 のパラメタを設定します。
name = "SUNW,hme" parent = "/pci@1f,4000" unit-address = "1,1" ipg1=10 ipg2=5; name = "SUNW,hme" parent = "/pci@1f,4000/pci@4" unit-address = "0,1" ipg1=20 ipg2=10;
パス名でデバイス名が network となっている場合でも、マザーボードデバイスには デバイス名として SUNW,hme が使用されます。デバイス名 SUNW,hme は、マザーボードデバイスと互換性のある属性の値です。