私の場合、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