私の場合、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
これが誰かに役立つことを願っています。