ge ドライバパラメタの設定には 2 種類の方法があります。必要に応じて選択してください。
ndd ユーティリティを使用する
ge.conf ファイルを使用する
システムをリブートするまでの間だけパラメタの設定を有効にしておきたい (リブート後は無効になるようにしたい) 場合は、ndd ユーティリティを使用してください。この方法は、パラメタ設定のテストとしても便利です。
システムのリブート後もパラメタの設定内容が持続するようにしたい場合は、ge.conf ファイルを使用してください。システムのデバイスのある特定のパラメタを設定する必要が生じた場合は、/kernel/drv/ge.conf ファイルを作成して、このファイルにパラメタ値を書き加えてください。
システムをリブートするまでの間だけパラメタの設定内容が有効となるようにしたい場合は、ndd ユーティリティを使用します。ndd ユーティリティは、データリンクプロバイダインタフェース (DLPI: Data Link Provider Interface) を実装したすべてのネットワークドライバに対応しています。
この節では、ge ドライバと ndd ユーティリティを使用して各 ge デバイスのパラメタの設定を変更 (この場合はオプション -set を付ける) または設定を表示 (この場合はオプション -set を付けない) する方法を解説します。
ge デバイスのパラメタの設定や表示に ndd ユーティリティを使用するには、その前にまず ndd ユーティリティ用のデバイスインスタンスを指定する必要があります。
/etc/path_to_inst ファイルを調べて、ge デバイスを表すインスタンスを探します。
Sun GigabitEthernet/P の場合
# grep ge /etc/path_to_inst "/pci@4,4000/network@4" 2 "ge" "/pci@6,2000/network@1" 1 "ge" "/pci@4,2000/network@1" 0 "ge" |
上記の例では、PCI スロットに実装されたアダプタから、3 つの GigabitEthernet インスタンスが見つかりました。
Sun GigabitEthernet/S の場合
# grep ge /etc/path_to_inst "/sbus@b,0/network@2,100000" 0 "ge" |
上記の例では、SBus スロットに実装されたアダプタから、GigabitEthernet インスタンスが 1 つ見つかりました。
インスタンス番号を指定して、方法 1 で見つけたインスタンスの中から目的のデバイスを選択します。
# ndd -set /dev/ge instance インスタンス番号 |
ここで選択したデバイスは、新たに別のデバイスを選択するまで有効となります。
ndd ユーティリティの使用形式には、2 つのモードが用意されています。
非対話モード
対話モード
非対話モードでは、コマンドを 1 つ実行する度にユーティリティを起動します。つまりこのモードでは、1 つのコマンドの実行が終了する度に ndd ユーティリティも終了することになります。これに対し対話モードでは、1 回のユーティリティ起動で複数のパラメタ値を表示または設定することができます。詳細についてはマニュアルページの ndd (1M) の項目を参照してください。
ここではパラメタ値の設定変更および表示の方法を解説します。
パラメタ値を変更する場合は、-set オプションを付けます。
以下のように -set オプションを付けて ndd ユーティリティを起動すると、ユーティリティはここで指定したパラメタ値をドライバインスタンスに渡し (インスタンス名は /dev/ge となっているはずです)、パラメタ名の部分に入力したパラメタの値とします。
# ndd -set /dev/ge パラメタ名 パラメタ値 |
パラメタ値の表示を行う場合は、パラメタ名のみを指定します。
-set オプションの指定を省略すると、照会とみなされます。指定されたドライバインスタンスに照会し、指定されたパラメタ名のパラメタ値を表示します。
# ndd /dev/ge パラメタ名 |
パラメタ値の設定に対話モードを使用するには、以下のように ndd /dev/ge と入力します (パラメタ値は入力しません)。
ndd ユーティリティはパラメタ名の入力を促すプロンプトを表示します。ここで設定または表示したいパラメタ名を入力します。ここで ? と入力すると、すべてのパラメタ名が表示されます。
# ndd /dev/ge name to get/set? (Enter the parameter name or ? to view all parameters) |
パラメタ名を入力すると、ndd ユーティリティはパラメタ値の入力を促すプロンプトを表示します (各パラメタの詳細については表 1–1 から表 1–8 までを参照してください)。
ndd /dev/ge \? と入力すると、ge ドライバがサポートしているすべてのパラメタを一覧表示します。
(各パラメタの詳細については表 1–1 から表 1–8 までを参照してください)
# ndd /dev/ge \? ? (read only) link_status (read only) link_speed (read only) link_mode (read only) ipg1 (read and write) ipg2 (read and write) instance (read and write) lance_mode (read and write) ipg0 (read and write) adv_1000autoneg_cap (read and write) adv_1000fdx_cap (read and write) adv_1000hdx_cap (read and write) adv_pauseTX (read and write) adv_pauseRX (read and write) 1000autoneg_cap (read only) 1000fdx_cap (read only) 1000hdx_cap (read only) asm_dir_cap (read only) pause_cap (read only) lp_1000autoneg_cap (read only) lp_1000fdx_cap (read only) lp_1000hdx_cap (read only) lp_asm_dir_cap (read only) lp_pause_cap (read only) # |
デフォルトでは自動ネゴシエーション機能が on になっています。この機能が働いていると、アダプタは接続速度、二重モード、フロー制御機能の設定を、接続相手に適応するように自動的に決定します。
自動ネゴシエーションをサポートしていないネットワーク装置を使用していたり、接続速度などの値を手動設定したい場合は、ge デバイスの自動ネゴシエーションを off にすることも可能です。
パラメタ adv_1000fdx_cap、adv_1000hdx_cap、adv_pauseTX、adv_pauseRX を選択し、これらのパラメタの値を接続相手のデバイス (例えばスイッチなど) に付属のユーザーズマニュアルに記載してある値に合わせて設定変更します。パラメタ値については表 1–6 を参照してください。
adv_1000autoneg_cap の値を 0 に設定します。
ディレクトリ /kernel/drv にファイル ge.conf を作成すれば、ドライバパラメタの値をデバイスごとに独立して設定することも可能です。システム内のデバイスの特定のパラメタを修正する場合は、この ge.conf ファイルを設定変更してください。この方法で設定が可能なのは、ドライバパラメタの値と定義に記載されている読み取り・書き込みの両方に対応しているパラメタだけです。
更に詳細な情報が必要な場合はマニュアルページの prtconf (1M) と driver.conf (4) の項目を参照してください。
目的の ge デバイスを表すハードウェアパス名をデバイスツリーから取得する方法を解説します。
通常、ge デバイスのパス名およびそのインスタンス番号は、ファイル /etc/path_to_inst に含まれています。
# grep ge /etc/path_to_inst"/sbus@b,0/network@2,100000" 0 "ge" |
Sun GigabitEthernet/S の場合
ge.conf ファイル内で SBus デバイスを明確に表したい場合には、デバイス名およびその親の名前をそのまま使用してください。SBus デバイスの指定に関してさらに詳しい情報が必要な場合は、マニュアルページの sbus(4) の項目を参照してください。
例えば前述の例で表す場合は、以下のようになります。
名前 = SUNW,sbus-gem
クラス = "sbus"
ge.conf ファイルに設定する「名前」の属性値は、互換性のある属性値でなければいけません。上記の例では、この値が SUNW,sbus-gem になっています。
Sun GigabitEthernet/P の場合
ge.conf ファイルで PCI デバイスを明確に表したい場合は、デバイスの名前、その親の名前、装置アドレスをそのまま使用してください。PCI デバイスの指定に関してさらに詳しい情報が必要な場合は、マニュアルページの pci(4) の項目を参照してください。
前述の例の 1 行目では以下のようになります。
名前 = pci108e,2bad
親 = /pci@4,4000
装置アドレス = 4
2 行目は以下のようになります。
名前 = pci108e,2bad
親 = /pci@6,2000
装置アドレス = 1
3 行目は以下のようになります。
名前 = pci108e,2bad
親 = /pci@4,2000
装置アドレス = 1
kernel/drv/ge.conf ファイルのデバイスパラメタ ipg1 および ipg2 の値を、例えば以下のように設定します。
name = "SUNW,sbus-gem" class = "sbus" reg=0x2,0x100000,0x14,0x2,0x200000,0x9060 ipg1=20 ipg2=10 ; |
ge.conf ファイルを保存します。
すべてのファイルとプログラムを保存してから閉じ、ウィンドウシステムを終了します。
DR (動的再構成) をサポートしていないシステムの場合は、スーパーユーザープロンプトからコマンド init 6 を入力してリブートします。
kernel/drv/ge.conf ファイルのデバイスパラメタ ipg1 および ipg2 の値を、例えば以下のように設定します。
name="pci108e,2bad" parent="/pci@4,4000" unit-address="4" ipg1=20 ipg2=10; name="pci108e,2bad" parent="/pci@6,2000" unit-address="1" ipg1=20 ipg2=10; name="pci108e,2bad" parent="/pci@4,2000" unit-address="1" ipg1=20 ipg2=10; |
ge.conf ファイルを保存します。
すべてのファイルとプログラムを保存してから閉じ、ウィンドウシステムを終了します。
スーパーユーザープロンプトからコマンド init 6 を入力して、システムを停止してリブートします。