Intel X550支援2.5G和5G

在拿到两片X550后,因为工作需要,需要支援2.5G和5G。但是ethtool ethx之后发现,并不支援2.5G和5G,这和事先调查的结果并不一致。查询code后,我发现相关的代码并没有添加进ixgbe的code,即无法从ethtool的角度实现支援。但是经过对代码的研究,我找出了被动实现的方法,代码如下。

1.打开2.5G和5G

在刚拿到X550后,我和手头的8125B相连,发现link的speed是1000M而不是2.5G,发现是在ixgbe code里已经关闭了2.5G和5G。打开的话需要作如下修改:

@@ -6451,11 +6451,11 @@ static int ixgbe_non_sfp_link_config(struct ixgbe_hw *hw)
 	speed = hw->phy.autoneg_advertised;
 	if (!speed && hw->mac.ops.get_link_capabilities) {
 		ret = hw->mac.ops.get_link_capabilities(hw, &speed,
 							&autoneg);
-- 		speed &= ~(IXGBE_LINK_SPEED_5GB_FULL |
--			   IXGBE_LINK_SPEED_2_5GB_FULL);
 	}
 
 	if (ret)
 		goto link_cfg_out;

在上述打开2.5G和5G后,我发现两张X550相连,仍然无法达到2.5G和5G。在经过一番探索之后,我找到了一个捷径。即当需要5G时,禁止10G,当需要2.5G时,禁止5G和10G。这样通过被动降速,即可实现2.5G和5G的link。

2.实现5G

@@ -6450,12 +6450,11 @@ static int ixgbe_non_sfp_link_config(struct ixgbe_hw *hw)
 
 	speed = hw->phy.autoneg_advertised;
 	if (!speed && hw->mac.ops.get_link_capabilities) {
 		ret = hw->mac.ops.get_link_capabilities(hw, &speed,
 							&autoneg);
--		speed &= ~(IXGBE_LINK_SPEED_5GB_FULL |
--			   IXGBE_LINK_SPEED_2_5GB_FULL);
++		speed &= ~(IXGBE_LINK_SPEED_10GB_FULL);
 	}
 
 	if (ret)
 		goto link_cfg_out;

3.实现2.5G

@@ -6451,11 +6451,11 @@ static int ixgbe_non_sfp_link_config(struct ixgbe_hw *hw)
 	speed = hw->phy.autoneg_advertised;
 	if (!speed && hw->mac.ops.get_link_capabilities) {
 		ret = hw->mac.ops.get_link_capabilities(hw, &speed,
 							&autoneg);
 		speed &= ~(IXGBE_LINK_SPEED_5GB_FULL |
--			   IXGBE_LINK_SPEED_2_5GB_FULL);
++			   IXGBE_LINK_SPEED_10GB_FULL);
 	}
 
 	if (ret)
 		goto link_cfg_out;

当然,可以通过修改ethtool.c文件来修改,进而通过ethtool命令来实现,不过我尝试了一下并没有成功,走了捷径。

如果觉得这篇文章有用的话,可以点赞、评论或者收藏,万分感谢,goodbye~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值