2.5G 网卡在 Linux 上只跑千兆?RTL8125 驱动安装完整指南:5 步搞定 DKMS 部署
【免费下载链接】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
realtek-r8125-dkms 项目把 Realtek 官方 r8125 驱动封装成 DKMS 模块,让 RTL8125 2.5G 网卡在 Linux 上稳定满速运行,且内核升级后驱动自动重新编译。这篇文章先讲清"为什么认不出",再带你用 5 步完成 RTL8125 驱动安装、屏蔽冲突驱动,并用实测数据验证结果。
一个每天都在发生的尴尬场景
上周帮朋友装新机,一块全新的 2.5G 网卡插进主板,系统装好后测速,iperf3跑出来只有 940Mbps——和原来那块千兆网卡一模一样。朋友的第一反应是退货,第二反应是怀疑买到假卡。其实两个都不对:网卡本身没毛病,毛病出在 Linux 根本没为它加载正确的驱动。
还有一种更隐蔽的情况:某天例行升级内核,重启之后网络接口直接消失,ip link里空空如也。原因也很简单——旧驱动是手动编译后塞进旧内核的,内核一换,驱动就跟着旧内核一起"退休"了。
这两种尴尬,正是 realtek-r8125-dkms 这个项目存在的意义:让 2.5G 网卡驱动在 Linux 上装一次、长期有效。
内核为什么认不出 RTL8125:驱动冲突的真相
先说清楚一个反直觉的事实:Linux 不是"没有驱动",而是"用错了驱动"。
内核自带的 r8169 是一款覆盖多款 Realtek 网卡的通用驱动。它像一把万能钥匙,什么抽屉都能捅两下,但遇到 RTL8125 这种 2.5G 新秀,只算开了一半的门——接口勉强能通,2.5G 速率却发挥不出来,甚至在某些内核版本下干脆认不出设备。
而 r8125 才是 Realtek 官方针对这批网卡放出的专用驱动,功能和性能都齐整。问题在于:系统加载驱动时遵循"通用优先",r8169 总是抢先占位,专用驱动来了也只能在门外干等。这就是"明明装好了却看不到效果"的根源。
装好驱动 ≠ 驱动生效。先让 r8169 让位,再让 r8125 上位,顺序错了,前面全白做。
至于 DKMS 是什么,可以这样理解:手动编译驱动像一次性装修,每搬一次家(升级内核)就得全部重来;DKMS 则是请了一位常驻管家,每次搬家都自动按新户型重新布置家具,你什么都不用管。
RTL8125 驱动安装最小路径:5 步从零到能用
全程约 5 分钟,不需要理解任何底层细节,跟着命令走就行。
第一步:确认网卡身份并补齐编译环境
lspci | grep -i ethernet sudo apt install dkms linux-headers-$(uname -r) build-essential git第一行确认回显里是Realtek ... RTL8125(或 RTL8126);第二行把驱动编译需要的工具一次装齐。注意:如果你的网卡是 USB 形态的 RTL8156,这个项目帮不了你,它是为 PCI 接口设计的。
第二步:把项目源码拉到本地
git clone https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms cd realtek-r8125-dkms克隆完成后,目录里应该能看到dkms-install.sh、autorun.sh、dkms.conf和src/源码目录。
第三步:一条命令完成登记、编译、安装
sudo ./dkms-install.sh这个脚本会依次做三件事:把源码复制到/usr/src/r8125-9.018.00→ 调用dkms add和dkms build编译内核模块 → 用dkms install把r8125.ko放进模块目录。编译期间会滚动大量日志,属正常现象,等待即可。看到Finished running dkms install steps.且没有Error字样,就算过了。
第四步:给冲突驱动下"禁行令"
sudo tee /etc/modprobe.d/blacklist-r8169.conf > /dev/null <<EOT blacklist r8169 EOT sudo update-initramfs -u第一段告诉内核别再自动加载 r8169,第二段刷新启动镜像让配置真正生效。输出里出现Generating /boot/initrd.img-<版本号>且无报错即可。
第五步:重启并验收
sudo reboot # 重启后依次执行 lsmod | grep -E 'r8125|r8169' dkms status ip link show ethtool <接口名> | grep Speed预期结果:lsmod只出现 r8125 相关行、r8169 彻底消失;dkms status显示r8125/9.018.00 ... installed;ip link出现enp开头的新接口;ethtool回显2500Mb/s。到这里,驱动安装就算真正成功了。
DKMS、脚本还是手动编译:按你的身份选路线
最小路径不是唯一路径。项目里其实准备了三条不同的路,对应三种人:
| 你的情况 | 推荐路线 | 一句话理由 |
|---|---|---|
| 长期使用、会持续升级内核 | dkms-install.sh或 Debian 包 | 驱动跟随内核自动重编译,装一次管很久 |
| 当下就要联网、不想理解概念 | autorun.sh | 一条命令跑完卸载、编译、替换、加载 |
| 开发者、需要调试或改编译参数 | src/下手动make | 可自定义编译选项,出问题好定位 |
| Ubuntu 深度用户 | 自己构建.deb包 | 像普通软件一样可升级、可卸载 |
🚀 进阶提示:追求满速的用户可以顺手加大内核接收缓冲区(sysctl -w net.core.rmem_max=26214400),再用ethtool -C开启中断合并,高负载下 CPU 占用会明显下降。
r8125 驱动安装踩坑实录与自查清单
下面是这套流程里最高频的 5 个坑,每条都按"现象→原因→解法"讲清楚,对号入座即可。
坑一:一切就绪,lsmod里却只有 r8169
- 现象:
dkms status明明显示 installed,重启后 r8125 不见踪影 - 原因:黑名单没生效,或 initramfs 没刷新
- 解法:检查
/etc/modprobe.d/blacklist-r8169.conf内容,重跑update-initramfs -u再重启
坑二:dkms build阶段报No rule to make target
- 原因:内核头文件缺失,或版本与当前内核不匹配
- 解法:执行
sudo apt install linux-headers-$(uname -r)后重跑脚本
坑三:驱动加载成功,速率却卡在 1000Mb/s
- 原因:链路对端只有千兆,或网线不达标
- 解法:确认对端是 2.5G 设备,网线至少 Cat5e,再用
ethtool查看协商结果
坑四:modprobe r8125报Operation not permitted
- 原因:Secure Boot 拦截了未签名的内核模块
- 解法:进 BIOS 关闭 Secure Boot,或为模块补签名
坑五:USB 网卡插上还是没反应
- 原因:RTL8156 这类 USB 网卡用的是 r8152 模块,和本项目的 r8125 不是一回事
- 解法:先确认网卡是 PCI 形态的 RTL8125/8126,再动手
最后用这条清单收尾,逐项打勾才算装完:✅lspci -k显示驱动为 r8125;✅lsmod有 r8125 无 r8169;✅dkms status显示 installed;✅ethtool回显 2500Mb/s;✅iperf3多线程实测稳定在 2.3Gbps 以上。
记住这一句,然后动手
这一路走下来,最值得记住的一句话是:网卡没坏,是驱动没上位——把 r8125 交给 DKMS,系统会在每次内核更新后替你自动重编一次,从此再不用为网卡折腾。
想深入了解,可以从这些位置开始:
- 驱动主体与编译入口:
src/(r8125_n.c、Makefile、r8125_ptp.c等) - 厂商官方说明:
REALTEK_README.txt - DKMS 登记配置:
dkms.conf - 安装脚本:
dkms-install.sh(推荐路线)、autorun.sh(应急路线) - Debian 打包工程:
debian/(control、rules、changelog)
现在就打开终端,把第二步的git clone跑起来。十分钟后,那块 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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考