告别千兆瓶颈:RTL8125驱动安装全流程与2.5G跑满实战指南

告别千兆瓶颈:RTL8125驱动安装全流程与2.5G跑满实战指南

告别千兆瓶颈:RTL8125驱动安装全流程与2.5G跑满实战指南

【免费下载链接】realtek-r8125-dkmsA DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE.项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms

RTL8125驱动安装是2.5G网卡在Linux下真正发挥价值的唯一前提,而社区维护的 realtek-r8125-dkms 项目正是解决这件事的标准答案:它把Realtek官方驱动打包成DKMS模块,一次装好,后续内核怎么升级都无需人工干预。下面这套流程来自我多次装机踩坑后的整理,从"为什么是千兆"讲到"怎么跑满2.5G",每一步都能直接照做。

新网卡只跑千兆,问题多半出在"万能钥匙"上

刚把RTL8125插进PCIe槽位时,系统通常能认出设备,ip link里也有接口,但ethtool一查,链路速度停在1000Mb/s。多数人第一反应是网线或交换机不行,其实真正的根源在内核自带的 r8169 驱动——它是为老一代瑞昱千兆芯片写的,对2.5G芯片只是"能点亮、不优化"的兼容级支持,速率协商、硬件卸载、中断合并这些关键特性统统缺席,高负载下还容易丢包、延迟飙升。

先用两条命令确认症状,别急着动手:

# 查看网卡被哪个驱动接管,留意 "Kernel driver in use" 一栏 lspci -k | grep -A3 -i ethernet # 确认当前协商速率,Speed 显示 1000Mb/s 即中招 ethtool enp3s0 | grep -i speed

enp3s0是示例接口名,请替换成你机器上的实际名称。确认之后,剩下的问题只有一个:让官方r8125驱动取代r8169。

两条安装路线,按你的内核升级频率来选

Realtek官方只提供驱动源码,直接make && make install也能编译,但升级内核后几乎必然失效。真正值得考虑的是下面两条路。

路线A:一次性脚本,给当前内核应急。项目根目录的autorun.sh会完成编译、卸载旧驱动、装载新模块的全流程,还会把 r8169.ko 备份成.bak后缀防止误覆盖:

git clone https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms cd realtek-r8125-dkms sudo chmod +x autorun.sh sudo ./autorun.sh

脚本末尾会自动调用update-initramfs刷新引导镜像,省去手动操作。代价是只对当前内核生效,下次升级内核就得重跑一遍。

路线B:DKMS封装,给长期使用兜底。DKMS(Dynamic Kernel Module Support)的职责就是"内核一变,自动重新编译"。在仓库目录直接跑封装好的脚本,或干脆安装打包好的.deb

sudo ./dkms-install.sh # 或:sudo dpkg -i realtek-r8125-dkms*.deb # 依赖报错时执行:sudo apt install --fix-broken
维度一次性脚本DKMS
内核升级后驱动失效,需重跑自动重新编译
安装复杂度低(脚本化)
卸载方式手动清理dkms remove r8125/9.018.00 --all
适合场景临时环境、应急服务器、主力机

装完还是千兆?是r8169在跟你抢方向盘

这是全流程里最隐蔽的坑:DKMS明明显示安装成功,lsmod | grep r8125却查无此模块。原因是内核加载驱动时按名称和优先级匹配,r8169 抢先一步绑定了设备。先用命令验证:

lsmod | grep -E 'r8125|r8169'

只要看到 r8169 的身影,就在 modprobe 配置里把它拉黑,再重建引导镜像:

echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf sudo update-initramfs -u # Fedora/RHEL 请换成 sudo dracut --force sudo reboot

Arch 系对应的是sudo mkinitcpio -P。不同发行版只是重建工具不同,原理一致:让 r8169 根本不被加载,r8125 自然上位。这一步不做,前面的安装等于白费。

内核升级后网卡"消失",先翻日志再怪硬件

升级内核后突然没了网络,非DKMS方式安装的用户十有八九是驱动没跟上。先查日志,别急着怀疑硬件损坏:

dmesg | grep -i r8125

常见的报错是符号缺失或版本不匹配——旧模块与新版内核头文件对不上。DKMS用户此时只需确认模块状态,缺了就手动补一次编译:

dkms status r8125 sudo dkms autoinstall

还有一个容易被忽略的细节:如果/lib/firmware/rtl_nic/下的 rtl8125 firmware 文件与驱动版本不匹配,同样会导致加载失败,必要时清理掉相关文件再重装驱动。

跑满2.5G的最后一步:调优再验证

驱动就位只是起点,默认参数偏保守,吞吐和CPU占用都不理想。下面几项按顺序设置即可:

# 中断合并:减少CPU被打断频率,吞吐优先 sudo ethtool -C enp3s0 rx-usecs 30 tx-usecs 30 # 环形缓冲区加大,扛住突发流量 sudo ethtool -G enp3s0 rx 4096 tx 4096 # 给TCP接收栈更大内存余量 sudo sysctl -w net.core.rmem_max=26214400

追求极致延迟的,可在/etc/modprobe.d/r8125.conf写入options r8125 aspm=0 eee_enable=0,显式关掉节能相关的链路状态协商;反之想压低功耗,保留默认即可。调完用 iperf3 对打一次,数据不会骗人:

# 服务端机器执行:iperf3 -s iperf3 -c <对端IP> -P 4 -t 30

实测中,完成驱动替换与上述设置后,同一台机器的文件对拷速度能从110MB/s左右爬升到280MB/s上下,CPU占用和延迟同步下降,2.5G才算名副其实。

收尾行动清单

  1. lspci -k确认驱动归属,再决定是否动手;
  2. 主力机一律走 DKMS 路线,脚本只作应急备选;
  3. 装完必查lsmod,r8169 不拉黑等于白装;
  4. 调优参数逐个验证,别一次全上,出了问题不好定位。

想深入了解实现细节,驱动源码在src/目录,官方说明见REALTEK_README.txt,Debian打包脚本在debian/下,想自己产出.deb包可以照着研究。

【免费下载链接】realtek-r8125-dkmsA DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE.项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考