ce デバイスドライバのパラメタを設定するには、次の 2 通りの方法があります。
ndd ユーティリティーを使用する
ce.conf ファイルを使用する
ndd ユーティリティーを使用する場合、システムを再起動するまでパラメタは有効です。この方法は、パラメタの設定を試してみる際に有用です。
システムを再起動した後もパラメタが有効であるように設定するには、 /platform/sun4u/kernel/drv/ce.conf ファイルを作成して、システムのデバイスに設定する必要がある特定のパラメタ値をそのファイルに追加します。
ndd ユーティリティーを使用して、システムを再起動するまで有効なパラメタを設定します。ndd ユーティリティーは、DLPI (Data Link Provider Interface) が実装されているすべてのネットワークドライバに対応しています。
ここでは、ce ドライバと ndd ユーティリティーを使用して、各 ce デバイスのパラメタを変更 (-set オプションを使用) および表示 (-set オプションを使用しない) する方法について説明します。
ndd ユーティリティーで、ce デバイスのパラメタの取得または設定をする前に、ユーティリティーにデバイスインスタンスを指定してください。
/etc/path_to_inst ファイルを確認して、特定のデバイスに関連付けられたインスタンスを特定します。
# grep ge /etc/path_to_inst "/pci@1f,2000/pci@1/network@0" 2 "ce" "/pci@1f,2000/pci@2/network@0" 1 "ce" "/pci@1f,2000/pci@4/network@0" 0 "ce" |
この例では、3 つの GigaSwift Ethernet インスタンスは、取り付けられているアダプタのものです。わかりやすくするために、インスタンスの番号は斜体 (AnswerBook 形式では太字) になっています。
このインスタンス番号を使用して、デバイスを選択します。
# ndd -set /dev/ce instance インスタンス番号 |
選択を変更するまでデバイスの選択は有効です。
ndd ユーティリティーは、次の 2 通りのモードで使用できます。
非対話モード
対話モード
非対話モードでは、ユーティリティーを起動して特定のコマンドを実行します。コマンドが実行されると、ユーティリティーは終了します。非対話モードでは、ユーティリティーを使用して複数のパラメタ値の取得と設定ができます (詳細については、ndd(1M) のマニュアルページを参照してください)。
ここでは、パラメタ値の変更および表示の方法について説明します。
パラメタ値を変更するには、-set オプションを使用します。
-set オプションを指定して ndd ユーティリティーを起動すると、ユーティリティーは value で指定された値 (必須) をドライバに引き渡し、パラメタに割り当てます。値には /dev/ce ドライバインスタンスを、名称まで含めて指定します。
# ndd -set /dev/ce パラメタ名 値 |
adv パラメタを変更すると、次のようなメッセージが表示されます。
xcvr addr:0x00 - link up 1000 Mbps half duplex |
パラメタ値を表示するには、パラメタ名だけを指定し、値を省略します。
-set オプションを省略すると、照会操作と見なされ、指定されたドライバインスタンスを照会し、指定されたパラメタに関連づけられた値が取得されて表示されます。
# ndd /dev/ce パラメタ名 |
対話モードでパラメタ値を変更するには、次のように ndd /dev/ce と入力します。
ndd ユーティリティーから、パラメタ名の入力を求められます。
# ndd /dev/ce name to get/set? (パラメタ名を入力するか、あるいはすべてのパラメタ名を表示するには ? を入力します) |
パラメタ名を入力すると、ndd ユーティリティーから、パラメタ値の値の入力を求められます (表 1–1 から 表 1–11 までを参照してください)。
ce ドライバでサポートされているパラメタをすべて表示するには、ndd /dev/ce と入力します。
# ndd /dev/ce name to get/set ? ? ? (read only) instance (read and write) adv_autoneg_cap (read and write) adv_1000fdx_cap (read and write) adv_1000hdx_cap (read and write) adv_100T4_cap (read and write) adv_100fdx_cap (read and write) adv_100hdx_cap (read and write) adv_10fdx_cap (read and write) adv_10hdx_cap (read and write) adv_asmpause_cap (read and write) adv_pause_cap (read and write) link_master (read and write) use_int_xcvr (read and write) enable_ipg0 (read and write) ipg0 (read and write) ipg1 (read and write) ipg2 (read and write) rx_intr_pkts (read and write) rx_intr_time (read and write) red_dv4to6k (read and write) red_dv6to8k (read and write) red_dv8to10k (read and write) red_dv10to12k (read and write) tx_dma_weight (read and write) rx_dma_weight (read and write) infinite_burst (read and write) disable_64bit (read and write) name to get/set ? # |
デフォルトでは、自動ネゴシエーションは on に設定されています。つまり、アダプタは接続相手と通信して、互換性のあるネットワーク速度、全二重 / 半二重、およびフロー制御機能を決定します。
ネットワーク装置が自動ネゴシエーションをサポートしていない、または独自にネットワーク速度を指定する場合は、ce デバイスで自動ネゴシエーションをoff に設定します。
次のドライバパラメタを、接続相手 (スイッチなど) に付属のマニュアルに記載されている値に設定します。
adv_1000fdx_cap
adv_1000hdx_cap
adv_100fdx_cap
adv_100hdx_cap
adv_10fdx_cap
adv_10hdx_cap
adv_asmpause_cap
adv_pause_cap
パラメタの値と説明の詳細は、表 1–2 を参照してください。
adv_autoneg_cap パラメタを0 に設定します。
# ndd -set /dev/ce adv_autoneg_cap 0 |
ndd リンクパラメタを変更すると、次のようなメッセージが表示されます。
xcvr addr:0x00 - link up 1000 Mbps half duplex |
/platform/sun4u/kernel/drv ディレクトリに ce.conf ファイルを作成すると、デバイスごとにドライバパラメタのプロパティを設定できます。システムの特定のデバイスに特定のパラメタを設定する場合は、ce.conf ファイルを使用します。設定するパラメタは、ドライバのパラメタ値と定義 に記載されているパラメタの読み取り・書き込み可能なパラメタです。
詳細は、prtconf(1M) と driver.conf(4) のマニュアルページを参照してください。次の手順は、ce.conf ファイルでパラメタを設定する例です。
デバイスツリーで、ce デバイスのハードウェアパス名を取得します。
通常、パス名と関連するインスタンス番号は、/etc/path_to_inst ファイルにあります。
# grep ce /etc/path_to_inst "/pci108e;abba;/pci@4,4000/network@0" 2 "ce" "/pci108e;abba;/pci@6,2000/network@0" 1 "ce" "/pci108e;abba;/pci@4,2000/network@0" 0 "ce" |
この例では次のようになります。
最初の二重引用符内の部分は、デバイスツリーでのハードウェアノード名を表します。
2 番目の番号はインスタンス番号です。
最後の二重引用符内の部分はドライバ名です。
デバイスパス名で、最後の / 文字と @ 文字に囲まれた最後の構成要素はデバイス名です。
最後の構成要素の前のパス名は親の名前を表します。
@ 文字に続くカンマで区切られた数値は、デバイス番号と機能番号を表し、まとめて装置アドレスと呼ばれます。
ce.conf ファイルで明確に PCI デバイスを特定するには、デバイス名、親の名前、および装置アドレスを使用します。PCI デバイスの仕様の詳細は、pci(4) マニュアルページを参照してください。
例の 1 行目
名前 = pci108e,abba
親の名前 = /pci@4,4000
装置アドレス = 4,4
例の 2 行目
名前 = pci108e,abba
親の名前 = /pci@6,2000
装置アドレス = 6,2
例の 3 行目
名前 = pci108e,abba
親の名前 = /pci@4,2000
装置アドレス = 4,2
上記のデバイスのパラメタを /platform/sun4u/kernel/drv/ce.conf ファイル内に設定します。
次の例では、adv_autoneg_cap パラメタと adv_1000fdx_cap パラメタは、すべての Sun GigaSwift Ethernet デバイスに設定されます (詳細は、driver.conf(4) のマニュアルページを参照してください)。
adv_autoneg_cap=0 adv_1000fdx_cap=0 |
次の例では、adv_autoneg_cap パラメタと adv_1000fdx_cap パラメタは、Sun GigaSwift Ethernet デバイスの単一のインスタンスに設定されます。
name=pci108e,abba parent=pci@4,4000 unit address+4 adv_autoneg_cap=0 adv_1000fdx_cap=0; |
ce.conf ファイルを保存します。
すべてのファイルを保存し、プログラムとともにすべて閉じて、ウィンドウシステムを終了します。
システムをシャットダウンし、再起動します。