告别千兆瓶颈: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 speedenp3s0是示例接口名,请替换成你机器上的实际名称。确认之后,剩下的问题只有一个:让官方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 rebootArch 系对应的是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才算名副其实。
收尾行动清单
- 先
lspci -k确认驱动归属,再决定是否动手; - 主力机一律走 DKMS 路线,脚本只作应急备选;
- 装完必查
lsmod,r8169 不拉黑等于白装; - 调优参数逐个验证,别一次全上,出了问题不好定位。
想深入了解实现细节,驱动源码在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),仅供参考
