特記事項: Sun GigaSwift デバイスドライバ

ce ドライバパラメタの設定

ce デバイスドライバのパラメタを設定するには、次の 2 通りの方法があります。

ndd ユーティリティーを使用する場合、システムを再起動するまでパラメタは有効です。この方法は、パラメタの設定を試してみる際に有用です。

システムを再起動した後もパラメタが有効であるように設定するには、 /platform/sun4u/kernel/drv/ce.conf ファイルを作成して、システムのデバイスに設定する必要がある特定のパラメタ値をそのファイルに追加します。

ndd ユーティリティーを使用したパラメタの設定

ndd ユーティリティーを使用して、システムを再起動するまで有効なパラメタを設定します。ndd ユーティリティーは、DLPI (Data Link Provider Interface) が実装されているすべてのネットワークドライバに対応しています。

ここでは、ce ドライバと ndd ユーティリティーを使用して、各 ce デバイスのパラメタを変更 (-set オプションを使用) および表示 (-set オプションを使用しない) する方法について説明します。

ndd ユーティリティーにデバイスインスタンスを指定する

ndd ユーティリティーで、ce デバイスのパラメタの取得または設定をする前に、ユーティリティーにデバイスインスタンスを指定してください。

  1. /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 形式では太字) になっています。

  2. このインスタンス番号を使用して、デバイスを選択します。


    # ndd -set /dev/ce instance インスタンス番号
    

    選択を変更するまでデバイスの選択は有効です。

非対話モードと対話モード

ndd ユーティリティーは、次の 2 通りのモードで使用できます。

非対話モードでは、ユーティリティーを起動して特定のコマンドを実行します。コマンドが実行されると、ユーティリティーは終了します。非対話モードでは、ユーティリティーを使用して複数のパラメタ値の取得と設定ができます (詳細については、ndd(1M) のマニュアルページを参照してください)。

非対話モードでの ndd ユーティリティーの使用

ここでは、パラメタ値の変更および表示の方法について説明します。

    パラメタ値を変更するには、-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 ユーティリティーの使用

    対話モードでパラメタ値を変更するには、次のように 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 に設定します。

  1. 次のドライバパラメタを、接続相手 (スイッチなど) に付属のマニュアルに記載されている値に設定します。

    • 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 を参照してください。

  2. adv_autoneg_cap パラメタを0 に設定します。


    # ndd -set /dev/ce adv_autoneg_cap 0
    

    ndd リンクパラメタを変更すると、次のようなメッセージが表示されます。


    xcvr addr:0x00 - link up 1000 Mbps half duplex

ce.conf ファイルを使用したパラメタの設定

/platform/sun4u/kernel/drv ディレクトリに ce.conf ファイルを作成すると、デバイスごとにドライバパラメタのプロパティを設定できます。システムの特定のデバイスに特定のパラメタを設定する場合は、ce.conf ファイルを使用します。設定するパラメタは、ドライバのパラメタ値と定義 に記載されているパラメタの読み取り・書き込み可能なパラメタです。

詳細は、prtconf(1M) と driver.conf(4) のマニュアルページを参照してください。次の手順は、ce.conf ファイルでパラメタを設定する例です。

ce.conf ファイルを使用して、ドライバパラメタを設定する
  1. デバイスツリーで、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

  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;

  3. ce.conf ファイルを保存します。

  4. すべてのファイルを保存し、プログラムとともにすべて閉じて、ウィンドウシステムを終了します。

  5. システムをシャットダウンし、再起動します。