Intel 82574L 千兆网卡频繁掉线修复
ESXI中安装OpenWRT,两个Intel 82574L千兆网卡,eth0做LAN,eth1做WAN,eth1不管直通或者非直通给OpenWRT,都是用一段时间就会断网,短则几天,长则一个多月。断网后无法重新拨号,只能重启OpenWRT才能解决。有可能没有报错,也有可能报Reset adapter unexpectedly
或者Detected Hardware Unit Hang
。通过搜索,大致确定原因是省电模式ASPM出现问题。试过换OpenWRT镜像也没有效果。内核日志:
[292169.214098] e1000e 0000:03:00.0 eth1: Reset adapter unexpectedly
[292172.699452] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[292177.118943] e1000e 0000:03:00.0 eth1: Detected Hardware Unit Hang:
[292177.118943] TDH <0>
[292177.118943] TDT <8>
[292177.118943] next_to_use <8>
[292177.118943] next_to_clean <0>
[292177.118943] buffer_info[next_to_clean]:
[292177.118943] time_stamp <104595cea>
[292177.118943] next_to_watch <0>
[292177.118943] jiffies <104596138>
[292177.118943] next_to_watch.status <0>
[292177.118943] MAC Status <80080783>
[292177.118943] PHY Status <796d>
[292177.118943] PHY 1000BASE-T Status <3c00>
[292177.118943] PHY Extended Status <3000>
[292177.118943] PCI Status <10>
[292181.119093] e1000e 0000:03:00.0 eth1: Detecte
网卡信息:
root@OpenWrt:~# lspci ' grep Ethernet
02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
root@OpenWrt:~# ethtool -i eth1
driver: e1000e
version: 3.2.6-k
firmware-version: 0.5-0
expansion-rom-version:
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
升级驱动
可以看到现在的驱动版本是3.2.6-k,Intel官网上的最新驱动是3.8.4(https://www.intel.com/content/www/us/en/download/14611/15817/intel-network-adapter-driver-for-pcie-intel-gigabit-ethernet-network-connections-under-linux.html?),不过升级驱动需要自己编译OpenWRT,我使用的是eSir编译好的,自己编译需要的学习成本比较高。这边有在Ubuntu下更换驱动成功解决的案例(https://gist.github.com/amit177/63c86ee05110091f6fdda4c87a4209d0),而且他的原始驱动版本跟我的一致。不过这边又有人也是使用跟我一致的驱动版本出现一样的问题,升级驱动后,还是没有解决(https://www.codenong.com/cs110631505/)
ethtool -K eth1 tx off rx off
看到有人通过关闭网卡offload解决了问题(https://www.codenong.com/cs110631505/、https://blog.csdn.net/sxyllxy/article/details/110631505、https://gaomf.cn/2019/07/28/PVE_OpenWRT_Network_Broken/、https://www.dazhuanlan.com/clumsy_girl/topics/1507825),遂尝试,然后并没有效果
root@OpenWrt:~# ethtool --show-offload eth1
Features for eth1:
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: on
tx-tcp6-segmentation: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
root@OpenWrt:~# ethtool -K eth1 tx off rx off
Actual changes:
rx-checksumming: off
tx-checksumming: off
tx-checksum-ip-generic: off
tcp-segmentation-offload: off
tx-tcp-segmentation: off [requested on]
tx-tcp-mangleid-segmentation: off [requested on]
tx-tcp6-segmentation: off [requested on]
root@OpenWrt:~# ethtool --show-offload eth1
Features for eth1:
rx-checksumming: off
tx-checksumming: off
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: off
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
tx-tcp-segmentation: off [requested on]
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off [requested on]
tx-tcp6-segmentation: off [requested on]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
ethtool -K eth1 gso off gro off tso off
同样是关闭offload,通过这个命令逐个关闭(https://serverfault.com/a/616623、https://web.archive.org/web/20160205153351/http://ehc.ac:80/p/e1000/bugs/378/、https://bbs.archlinux.org/viewtopic.php?id=162841、https://forum.proxmox.com/threads/eno1-detected-hardware-unit-hang.57025/、https://itniels.com/2019/10/28/proxmox-5x-e1000-driver-hang-fix/、https://bbs.ikuai8.com/forum.php?mod=viewthread&tid=106407&ordertype=2、https://www.right.com.cn/forum/thread-4066580-1-1.html),遂尝试,然而并没有效果
root@OpenWrt:~# ethtool --show-offload eth1
Features for eth1:
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: on
tx-tcp6-segmentation: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
root@OpenWrt:~# ethtool -K eth1 gso off gro off tso off
root@OpenWrt:~# ethtool --show-offload eth1
Features for eth1:
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
tx-tcp-segmentation: off
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off
tx-tcp6-segmentation: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
修复EEPROM尝试1
这个方法首先是在这里看到的(https://forum.openwrt.org/t/network-issues-on-new-openwrt-install-on-x86/74678/9)。在翻看Intel官网下载的驱动的README中,也看到Known Issues/Troubleshooting
中,有一节叫做82573(V/L/E) TX Unit Hang Messages
,看症状很像,网卡型号也很接近,原文如下:
<cite>82573(V/L/E) TX Unit Hang Messages
Several adapters with the 82573 chipset display "TX unit hang" messages during
normal operation with the e1000edriver. The issue appears both with TSO enabled
and disabled and is caused by a power management function that is enabled in
the EEPROM. Early releases of the chipsets to vendors had the EEPROM bit that
enabled the feature. After the issue was discovered newer adapters were
released with the feature disabled in the EEPROM.
If you encounter the problem in an adapter, and the chipset is an 82573-based
one, you can verify that your adapter needs the fix by using ethtool:ethtool -e eth0
Offset Values
0x0000 00 12 34 56 fe dc 30 0d 46 f7 f4 00 ff ff ff ff
0x0010 ff ff ff ff 6b 02 8c 10 d9 15 8c 10 86 80 de 83
^^
The value at offset 0x001e (de) has bit 0 unset. This enables the problematic
power saving feature. In this case, the EEPROM needs to read "df" at offset
0x001e.
A one-time EEPROM fix is available as a shell script. This script will verify
that the adapter is applicable to the fix and if the fix is needed or not. If
the fix is required, it applies the change to the EEPROM and updates the
checksum. The user must reboot the system after applying the fix if changes
were made to the EEPROM.
Example output of the script:
bash fixeep-82573-dspd.sh eth0
eth0: is a "82573E Gigabit Ethernet Controller"
This fixup is applicable to your hardware executing command:
ethtool -E eth0 magic 0x109a8086 offset 0x1e value 0xdf
Change made. You MUST reboot your machine before changes take effect!
The script can be downloaded at
http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh.</cite>
于是把http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh这个地址的sh下载下来看代码,发现有通过设备号判断是否是82573(V/L/E),不是的话不给刷,是的话,通过ethtool -E命令修改EEPROM,代码如下:
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 \<interface\>"
echo " i.e. $0 eth0"
exit 1
fi
if ! ifconfig $1 > /dev/null; then
exit 1
fi
dev=$(ethtool -e $1 ' grep 0x0010 ' awk '{print "0x"$13$12$15$14}')
case $dev in
0x108b8086)
echo "$1: is a \"82573V Gigabit Ethernet Controller\""
;;
0x108c8086)
echo "$1: is a \"82573E Gigabit Ethernet Controller\""
;;
0x109a8086)
echo "$1: is a \"82573L Gigabit Ethernet Controller\""
;;
*)
echo "No appropriate hardware found for this fixup"
exit 1
;;
esac
echo "This fixup is applicable to your hardware"
var=$(ethtool -e $1 ' grep 0x0010 ' awk '{print $16}')
new=$(echo ${var:0:1}`echo ${var:1} ' tr '02468ace' '13579bdf'`)
if [ ${var:0:1}${var:1} == $new ]; then
echo "Your eeprom is up to date, no changes were made"
exit 2
fi
echo "executing command: ethtool -E $1 magic $dev offset 0x1e value 0x$new"
ethtool -E $1 magic $dev offset 0x1e value 0x$new
echo "Change made. You *MUST* reboot your machine before changes take effect!"
原理是取EEPROM中0x1e位置的字节,最右边的bit从0改成1,知道了原理我就可以跳过设备型号验证,自己用命令行尝试。
这里用到的命令行是(https://blog.csdn.net/yiyeshuanglinzui/article/details/98584028):
ethtool -e'-eeprom-dump devname [raw on'off] [offset N] [length N]
ethtool -E'-change-eeprom devname [magic N] [offset N] [length N] [value N]
其中magic的参数由DeviceID + VendorID组成,82574L的DeviceID为10d3,Intel的VendorID为8086,所以magic的参数为0x10d38086。
root@OpenWrt:~# ethtool -e eth1
Offset Values
------ ------
0x0000: 00 e8 4c 68 7d c4 ff ff ff ff 50 00 ff ff ff ff
0x0010: ff ff ff ff 6b 02 40 6c 62 14 d3 10 ff ff d8 83
0x0020: 00 00 01 20 74 7e ff ff 00 00 c8 00 00 00 04 27
0x0030: c9 6c 50 21 3e 07 0b 45 84 2d 40 00 00 f0 06 07
0x0040: 00 60 80 00 04 0f ff 7f 01 4d ec 92 5c fc 83 f0
0x0050: 20 00 83 00 a0 00 1f 7d 61 19 83 01 50 00 ff ff
0x0060: 00 01 00 40 1c 12 07 40 ff ff ff ff ff ff ff ff
0x0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff 88 df
0x0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0110: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0120: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0210: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0220: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0230: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0240: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0250: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0260: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0270: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0310: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0320: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0330: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0340: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0350: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0360: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0370: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
root@OpenWrt:~# ethtool -e eth1 ' grep 0x0010 ' awk '{print "0x"$13$12$15$14}'
0x10d3ffff
root@OpenWrt:~# ethtool -e eth1 ' grep 0x0010 ' awk '{print $16}'
d8
root@OpenWrt:~# echo 8 ' tr '02468ace' '13579bdf'
9
root@OpenWrt:~# ethtool -E eth1 magic 0x10d38086 offset 0x1e value 0xd9 length 1
root@OpenWrt:~# ethtool -e eth1
Offset Values
------ ------
0x0000: 00 e8 4c 68 7d c4 ff ff ff ff 50 00 ff ff ff ff
0x0010: ff ff ff ff 6b 02 40 6c 62 14 d3 10 ff ff d9 83
0x0020: 00 00 01 20 74 7e ff ff 00 00 c8 00 00 00 04 27
0x0030: c9 6c 50 21 3e 07 0b 45 84 2d 40 00 00 f0 06 07
0x0040: 00 60 80 00 04 0f ff 7f 01 4d ec 92 5c fc 83 f0
0x0050: 20 00 83 00 a0 00 1f 7d 61 19 83 01 50 00 ff ff
0x0060: 00 01 00 40 1c 12 07 40 ff ff ff ff ff ff ff ff
0x0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff 87 df
0x0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0110: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0120: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0210: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0220: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0230: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0240: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0250: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0260: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0270: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0310: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0320: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0330: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0340: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0350: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0360: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0370: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
可见原来0x1e位置的值为d8,现在改成d9。由于eth1是直通给OpenWRT,所以改完EEPROM后,我直接重启了OpenWRT,可是几分钟后,竟然直接掉线了,赶紧刷回d8,继续重启,然后又正常了。看来这个方法只适用于82573。
刷的过程中有遇到两个坑:
ethtool -E eth1 magic 0x10d3ffff offset 0x1e value 0xd9
offset & length out of bounds
命令后面加上 length 1就可以了(https://forums.servethehome.com/index.php?threads/patching-intel-x520-eeprom-to-unlock-all-sfp-transceivers.24634/post-324427)
ethtool -E eth1 magic 0x10d3ffff offset 0x1e value 0xd9 length 1
Cannot set EEPROM data: Bad address
看来是设备号错误,设备号由DeviceID + VendorID组成(8086 == Intel, 1019 == 82547EI Gigabit Ethernet Controller in my example) (http://blog.vodkamelone.de/archives/146-Unbricking-an-Intel-Pro1000-e1000-network-interface.html),可见我获取到的DeviceID正常,但是VendorID为ffff导致的,由于Intel的VendorID默认都是8086,于是直接把设备号改成0x10d38086再次尝试,刷写成功。
修复EEPROM尝试2
继续网上搜索,看到了有专门针对82574网卡的修复sh(https://support.unitrends.com/hc/en-us/articles/360013179057-Prevent-Intel-82574-NICs-from-going-offline),于是从文中的地址下载(ftp://ftp.unitrends.com/support/scripts/nic82574.sh),代码如下:
#!/bin/sh
log=/var/log/nicfix.log
function fix_eeprom()
{
eth=$1
if [ -z "$eth" ]; then
return 1;
fi
if ! ifconfig $eth > /dev/null; then
echo "$eth does not exist"
return 1;
fi
bdf=$(ethtool -i $eth ' grep "bus-info:" ' awk '{print $2}')
dev=$(lspci -s $bdf -x ' grep "00: 86 80" ' awk '{print "0x"$5$4$3$2}')
case $dev in
0x10d38086)
echo "$eth: is a 82574L Gigabit Network Connection"
;;
0x10f68086)
echo "$eth: is a 82574L Gigabit Network Connection"
;;
0x150c8086)
echo "$eth: is a 82583V Gigabit Network Connection"
;;
*)
echo "No appropriate hardware found for this fixup"
return 2
;;
esac
echo "This fixup is applicable to your hardware"
var=$(ethtool -e $eth ' grep 0x0010 ' awk '{print $16}')
new=$(echo ${var:0:1}`echo ${var:1} ' tr '014589bc' '2367abef'`)
if [ ${var:0:1}${var:1} == $new ]; then
echo "Your eeprom is up to date, no changes were made"
return 0
fi
echo "Applying Intel NIC EEPROM fix ..."
echo "executing: ethtool -E $eth magic $dev offset 0x1e value 0x$new"
ethtool -E $1 magic $dev offset 0x1e value 0x$new
echo "Change made. You must reboot before changes take effect."
return 0
}
function ethmatch()
{
bdf=$(ethtool -i $1 ' grep "bus-info:" ' awk '{print $2}')
dev=$(lspci -s $bdf -x ' grep "00: 86 80" ' awk '{print "0x"$5$4$3$2}')
case $dev in
0x10d38086)
echo "$1: is a 82574L Gigabit Network Connection"
ret=1
;;
0x10f68086)
echo "$1: is a 82574L Gigabit Network Connection"
ret=1
;;
0x150c8086)
echo "$1: is a 82583V Gigabit Network Connection"
ret=1
;;
*)
echo "$1: is not a match"
ret=0
;;
esac
return $ret
}
lspci 'grep Eth 'grep -q 82574
i1=$?
lspci 'grep Eth 'grep -q 82583
i2=$?
if [ $i1 -eq 0 -o $i2 -eq 0 ]; then
# found matching NICs, set kernel param
grubby --update-kernel="$( grubby --default-kernel )" --args="pcie_aspm=off"
# find which eth device matches these NICs
doeth=eth0
ethlist=`ifconfig 'grep eth 'awk '{ print $1 }' 'sed -e 's/\n/ /g'`
echo "$0 started" >$log
for eth in $ethlist
do
echo "check $eth ..." >>$log
ethmatch $eth >>$log
if [ $? -eq 1 ]; then
echo "ethmatch $eth found" >>$log
doeth=$eth
break
fi
done
echo "matching eth = $doeth" >>$log
# do the EEPROM fixup from Intel
fix_eeprom $doeth >>$log
fi
可见这个sh是专门修复82574L和82583V的网卡。
由于这个出处不是Intel官方,决定找找官方有没有类似的文件,结果还真有(https://sourceforge.net/projects/e1000/files/e1000e%20historic%20archive/eeprom_fix_82574_or_82583/)。
<cite>Packet drop issues may occur in some 82574 and 82583-based adapters. Neither the
e1000e driver nor the hardware itself show any packets being dropped, however
packets ARE actually being dropped.
If you encounter packet drop issues in an 82574 or 82583-based adapter, you can
verify that your adapter needs the fix by using ethtool:ethtool -e eth0
Offset Values
0x0000 00 1b 21 51 39 8c 20 0d 46 f7 a1 10 ff ff ff ff
0x0010 29 e6 02 64 6b 02 00 00 86 80 0c 15 ff ff 58 9c
^^
The value at offset 0x001e (58) has bit 1 unset. This enables the problematic
power saving feature. In this case, the EEPROM needs to read "5a" at offset
0x001e.
A one-time EEPROM fix is available as a shell script. This script will verify
that the adapter is applicable to the fix and whether the fix is needed or not.
If the fix is required, it applies the change to the EEPROM and updates the
checksum. The user must reboot the system after applying the fix if changes
were made to the EEPROM.
Example output of the script:bash fixeep-82574_83.sh eth0
eth0: is a "82583V Gigabit Network Connection"
This fixup is applicable to your hardware
executing command: ethtool -E eth0 magic 0x150c8086 offset 0x1e value 0x5a
Change made. You MUST reboot your machine before changes take effect!
The script can be downloaded at
[https://sourceforge.net/projects/e1000/files/e1000e%20stable/eeprom_fix_82574_or_82583/fixeep-82574_83.sh]</cite>
sh文件跟上述那个非官方文件不大一样,不过核心的地方是一样的:
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 \<interface\>"
echo " i.e. $0 eth0"
exit 1
fi
if ! ifconfig $1 > /dev/null; then
exit 1
fi
bdf=$(ethtool -i $1 ' grep "bus-info:" ' awk '{print $2}')
dev=$(lspci -s $bdf -x ' grep "00: 86 80" ' awk '{print "0x"$5$4$3$2}')
case $dev in
0x10d38086)
echo "$1: is a \"82574L Gigabit Network Connection\""
;;
0x10f68086)
echo "$1: is a \"82574L Gigabit Network Connection\""
;;
0x150c8086)
echo "$1: is a \"82583V Gigabit Network Connection\""
;;
*)
echo "No appropriate hardware found for this fixup"
exit 1
;;
esac
echo "This fixup is applicable to your hardware"
var=$(ethtool -e $1 ' grep 0x0010 ' awk '{print $16}')
new=$(echo ${var:0:1}`echo ${var:1} ' tr '014589bc' '2367abef'`)
if [ ${var:0:1}${var:1} == $new ]; then
echo "Your eeprom is up to date, no changes were made"
exit 2
fi
echo "executing command: ethtool -E $1 magic $dev offset 0x1e value 0x$new"
ethtool -E $1 magic $dev offset 0x1e value 0x$new
echo "Change made. You *MUST* reboot your machine before changes take effect!"
仔细看代码,发现与之前尝试失败的82573的脚本有个不同
之前的:
new=$(echo ${var:0:1}`echo ${var:1} ' tr '02468ace' '13579bdf'`)
现在的:
new=$(echo ${var:0:1}`echo ${var:1} ' tr '014589bc' '2367abef'`)
原来的那份文件是把最右边的那个bit从0改成1,而这个文件是把右边第二个的那个bit从0改成1,看来这是82573和82574的区别,于是继续尝试
root@OpenWrt:~# ethtool -e eth1
Offset Values
------ ------
0x0000: 00 e8 4c 68 7d c4 ff ff ff ff 50 00 ff ff ff ff
0x0010: ff ff ff ff 6b 02 40 6c 62 14 d3 10 ff ff d8 83
0x0020: 00 00 01 20 74 7e ff ff 00 00 c8 00 00 00 04 27
0x0030: c9 6c 50 21 3e 07 0b 45 84 2d 40 00 00 f0 06 07
0x0040: 00 60 80 00 04 0f ff 7f 01 4d ec 92 5c fc 83 f0
0x0050: 20 00 83 00 a0 00 1f 7d 61 19 83 01 50 00 ff ff
0x0060: 00 01 00 40 1c 12 07 40 ff ff ff ff ff ff ff ff
0x0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff 88 df
0x0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0110: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0120: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0210: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0220: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0230: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0240: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0250: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0260: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0270: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0310: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0320: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0330: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0340: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0350: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0360: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0370: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
root@OpenWrt:~# ethtool -e eth1 ' grep 0x0010 ' awk '{print "0x"$13$12$15$14}'
0x10d3ffff
root@OpenWrt:~# ethtool -e eth1 ' grep 0x0010 ' awk '{print $16}'
d8
root@OpenWrt:~# echo 8 ' tr '014589bc' '2367abef'
a
root@OpenWrt:~# ethtool -E eth1 magic 0x10d38086 offset 0x1e value 0xda length 1
root@OpenWrt:~# ethtool -e eth1
Offset Values
------ ------
0x0000: 00 e8 4c 68 7d c4 ff ff ff ff 50 00 ff ff ff ff
0x0010: ff ff ff ff 6b 02 40 6c 62 14 d3 10 ff ff da 83
0x0020: 00 00 01 20 74 7e ff ff 00 00 c8 00 00 00 04 27
0x0030: c9 6c 50 21 3e 07 0b 45 84 2d 40 00 00 f0 06 07
0x0040: 00 60 80 00 04 0f ff 7f 01 4d ec 92 5c fc 83 f0
0x0050: 20 00 83 00 a0 00 1f 7d 61 19 83 01 50 00 ff ff
0x0060: 00 01 00 40 1c 12 07 40 ff ff ff ff ff ff ff ff
0x0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff 87 df
0x0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0110: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0120: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0210: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0220: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0230: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0240: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0250: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0260: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0270: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x02f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0310: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0320: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0330: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0340: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0350: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0360: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0370: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x03f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
使用了19小时,暂时没有出现问题,RX的errors也一直是0
root@OpenWrt:~# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:E8:4C:68:7D:C4
inet6 addr: fe80::2e8:4cff:fe68:7dc4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:68415745 errors:0 dropped:14056 overruns:0 frame:0
TX packets:139180940 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23126153714 (21.5 GiB) TX bytes:155759343593 (145.0 GiB)
Interrupt:18 Memory:fd4c0000-fd4e0000