首页
/ 海信HS530R RK3399设备在OpenWrt系统中的千兆网卡优化实践

海信HS530R RK3399设备在OpenWrt系统中的千兆网卡优化实践

2025-07-03 00:34:51作者:胡易黎Nicole

问题背景

在海信HS530R RK3399设备上运行OpenWrt系统时,用户发现千兆网卡存在性能问题。具体表现为:

  • 正向传输(发送数据)时速度可达800Mbps以上
  • 反向传输(接收数据)时速度几乎为零
  • 当强制将网卡降速至100Mbps时,反向传输可正常工作

技术分析

这个问题与Rockchip RK3399平台的网络硬件特性有关。通过查阅相关资料发现,RK3399平台的网络性能问题是一个已知现象,主要与TCP/UDP卸载(offloading)功能有关。在Linux内核6.x版本中,这个问题可能仍未完全解决。

解决方案探索

用户尝试了多种方法来解决这个问题:

  1. 关闭卸载功能:使用ethtool -K eth0 tx off rx off命令关闭TCP/UDP卸载功能,但未能解决问题。

  2. 限制网卡速度:使用ethtool -s eth0 advertise 0xf将网卡限制在100Mbps,此时反向传输可以正常工作,但这不是理想的解决方案。

  3. 修改设备树参数:最终有效的解决方案是修改设备树(DTS)中的TX延迟参数。具体修改是将tx_delay从默认的0x28调整为0x1f。

具体修改方法

在设备树文件中,找到千兆网卡相关配置部分,修改以下参数:

snps,reset-gpio = <0x1d 0x0f 0x01>;
snps,reset-active-low;
snps,reset-delays-us = <0x00 0x2710 0xc350>;
tx_delay = <0x1f>;  /* 原值为0x28 */
rx_delay = <0x11>;

这个修改调整了网卡发送数据的时序参数,使其能够稳定工作在千兆模式下。

性能验证

修改后,使用iperf3工具测试网络性能:

正向传输测试

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  82.8 MBytes   689 Mbits/sec
[  5]   1.01-2.00   sec  80.2 MBytes   678 Mbits/sec

反向传输测试

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   109 MBytes   908 Mbits/sec
[  5]   1.00-2.01   sec   110 MBytes   920 Mbits/sec

测试结果显示,修改后正反向传输都能达到接近千兆的理论速度,问题得到完美解决。

总结

对于基于RK3399平台的设备,特别是海信HS530R,在OpenWrt系统中遇到千兆网卡性能问题时,调整设备树中的TX延迟参数是一个有效的解决方案。这个案例也提醒我们,在嵌入式Linux系统中,硬件时序参数的微调往往能解决看似复杂的性能问题。

这个解决方案已经被合并到项目的主线代码中,未来用户可以直接使用修复后的版本,无需手动修改设备树文件。

登录后查看全文
热门项目推荐
相关项目推荐