ethtoolを使用していくつかの広告リンクパターンを削除する

ethtoolを使用していくつかの広告リンクパターンを削除する

私の場合、PHYは10/100/1000をサポートしますが、10/100のみをサポートします。

デフォルトの動作は、自動ネゴシエーションを使用して最良のモードを見つけることです。一方、ギガビット対応ルータを使用すると、インターフェイスが機能しなくなります。自動交渉は決して収束しないようです。 100Mbpsスイッチを使って良い結果を得た人の話を聞きました。

これは使えますが、ethtoolとても残念です。

ethtool -s eth1 duplex full speed 100 autoneg off

私が望むのは自動ネゴシエーションを維持しますが、1000baseT / Fullを選択から撤回して100Mbpsでスムーズに実行することです。ethtoolまたは、カーネルオプションを使用してこれを達成する方法はありますか? (私の2.6.32カーネルでは何も見つかりません...)

(ある奇妙な人が10Mbpsスイッチを持って私に来て、他の世紀のこのスイッチを使用するにはこのethが必要だとしましょう。)

答え1

自動ネゴシエーションの問題は、一方の端でオフにすると他端では速度を検出できますが、デフォルト値が半分の二重モードでは検出できないことです。その後、二重の不一致が発生します。これはリンクが機能しないのとほぼ同じです。したがって、一方の端で自動ネゴシエーションを無効にする場合は、実際にはもう一方の端でも自動ネゴシエーションを無効にする必要があります。

(オートネゴシエーションが実際にケーブルをテストせずにエンドポイントで実行できる操作のみを実行するという問題もあります。これにより、ケーブルに2組だけがあり、1000Base-Tをサポートしないギガビットリンクが発生する可能性があります。)

しかし、ethtoolはドライバーに広告するスピード/デュアルモードを伝えることができるようです。ethtool -s eth1 advertise 0x0fすべての10/100モードは許可されますが、1Gは許可されません。

advertise N
    Sets the speed and duplex advertised by autonegotiation.  The 
    argument is a hexadecimal value using one or a combination of
    the following values:
      0x001       10baseT Half
      0x002       10baseT Full
      0x004       100baseT Half
      0x008       100baseT Full
      0x010       1000baseT Half       (not supported by IEEE standards)
      0x020       1000baseT Full

答え2

同様の問題がありましたが、あなたの答えは正しい自動調整を設定するのに役立ちました。問題は、以前の設定に戻りたいということです。より多くのオプションがあります。

  • 1000baseT/完全
  • 10000baseT/完全
  • 1000baseX/完全
  • 10000baseSR/完了
  • 10000baseLR/完全

これで以下を設定できます。

ethtool -s eth0 advertise 0x1000

しかし、これは私に10Gだけを与えます。設定できます。

ethtool -s eth0 advertise 0x020

しかし今回も結果は1000baseTだけになります。

ethtoolのマニュアルページにはこれを組み合わせることができると明示されていますが、方法がわかりません。複数の組み合わせを試しましたが、この組み合わせを復号化することはできません。


それで、この記事が出た直後に私は悟りを得ました。簡単に言えば、値を合計する必要があります。 Bathを10進数に変換し、これを追加して結果を16進数に変換します。あるいは、方法がわかっている場合は、16進数で直接実行することもできます。プログラマー電卓が役に立ちます。

私にとって結果は次のとおりです

ethtool -s eth0 advertise 0x1020

その結果、元の状況が復元されます。

Supported link modes:   1000baseT/Full
                            10000baseT/Full
                            1000baseX/Full
                            10000baseSR/Full
                            10000baseLR/Full
    Supported pause frame use: Symmetric
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  1000baseT/Full
                            10000baseT/Full
                            1000baseX/Full
                            10000baseSR/Full
                            10000baseLR/Full

これが誰かに役立つことを願っています。

関連情報