Ubuntu Hardy 中的 sky2 驱动程序

Ubuntu Hardy 中的 sky2 驱动程序

我有一张网卡:

02:00.0 以太网控制器:Marvell Technology Group Ltd. 88E8050 PCI-E ASF 千兆以太网控制器(rev 18)

并且看起来卡随机重置。这是 dmesg:

  
[751806.503694] sky2 eth1:挂起 mac 124:54 fifo 195(128:123)
[751806.503702] sky2 eth1:检测到接收器挂起
[751806.504154] sky2 eth1:禁用接口
[751806.504440] sky2 eth1:启用接口
[751809.712495] sky2 eth1:链路以 1000 Mbps 的速度运行,全双工,流量控制 rx
[970196.706605] sky2 eth1:挂起 mac 0:2 fifo 195 (194:189)
[970196.706611] sky2 eth1:检测到接收器挂起
[970196.706913] sky2 eth1:禁用接口
[970196.707227] sky2 eth1:启用接口
[970199.917018] sky2 eth1:链路以 1000 Mbps 的速度运行,全双工,流量控制 rx

看来网络驱动程序 sky2 有问题;但我还没有在其他论坛找到任何答案。您有什么建议吗?我可以使用其他驱动程序来驱动该卡吗?这是一个已知的错误吗?

谢谢!

答案1

sky2多年来,该驱动程序质量一直很差。

我确实相信现在基本上没什么问题,9.10 版本应该可以正常工作。

答案2

有一种解决方法对我来说非常可靠,适用于大约 10 个装有 sky2 驱动程序的盒子。我所有的盒子都是基于 Centos5 的,内核是 2.6.18(是的,对于 2017 年来说太老了)。我发现在这些日志消息之后...

sky2 eth1: receiver hang detected
sky2 eth1: disabling interface
sky2 eth1: enabling interface

... 驱动程序似乎会破坏将校验和卸载到硬件的功能。在一些实验中,我能够仅通过ifdown; ifup序列使其部分失败,这似乎只会导致校验和卸载在某些 UDP 流量中中断。

因此我只是禁用校验和卸载到硬件:

ethtool --offload eth1 tx off

警告:对我来说是ethtool --show-offload eth1谎言,并且始终声称它是关闭的。我可以看到将其设置为onoff显然会改变行为,但查询其状态是谎言,并且始终显示为off

现在,为了使其自动应用,我将其输入/sbin/ifup-local

#!/bin/bash
DEVICE=$1
if [[ "$DEVICE" == "eth0" || "$DEVICE" == "eth1" ]] ; then
 ethtool --offload "$DEVICE" tx off
fi

但类似的东西可能也可以放在其他地方,例如在/etc/network/if-up.d/ethdebian 之类的地方。

相关内容