安装在 Ubuntu 服务器 22.04 上的网卡 Intel X550T 未公布所有可用的速度,因此(如果是这个原因)自动协商无法连接到可用的速度(源是 2.5GB 连接):
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
我该怎么办,寻找解决方案后,它似乎是驱动程序问题,但另一方面,Ubuntu 22.04 中的内核似乎应该完全支持该卡?
编辑:根据@waltinator 的建议,我通过运行以下命令修改了卡的速度:
sudo ethtool -s <name_of_card> speed 2500
上述命令按预期将速度提高到 2.5GB。但是,我无法关闭自动协商(@waltinator 评论似乎建议这样做);如果我运行以下命令:
sudo ethtool -s <name_of_card> autoneg off speed 2500 duplex full
或者:
sudo ethtool -s <name_of_card> autoneg off speed 2500
或者:
sudo ethtool -s <name_of_card> autoneg off
无错误无效果,速度和自动协商均不改变。
修改 2:经过一些测试,使用上述命令更改链接模式会导致随机断开连接。也许关闭自动协商可以解决这个问题,但尝试关闭卡上的自动协商不起作用(我猜如果交换机需要自动协商,则无法关闭卡上的自动协商参数,并且我不允许在交换机上更改它)。
答案1
使用 Ubuntu 22.04 Server,以下命令公布所有可用的速度并解决问题:
ethtool -s <ethX> advertise 0x1800000001028
这在英特尔 Linux 驱动程序(“ixgbe”)的文档中有详细说明;但您不需要安装它们,该卡可直接与 Ubuntu 22.04 Server 一起使用。