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

おすすめ記事