RTL8125 2.5G网卡驱动安装不再踩坑: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
新买回一块 RTL8125 2.5G 网卡,插上主机却发现ip link里根本看不到接口,或者明明插的是 2.5G 交换机,协商速率却卡在 1000Mb/s——这不是硬件坏了,而是驱动没到位。realtek-r8125-dkms 这个项目把 Realtek 官方 r8125 驱动封装成 DKMS 模块,让 RTL8125 驱动安装变成一条命令的事,而且内核升级后驱动会自动重编译,再也不用每次升级都手工折腾。
一、先搞清楚:网卡"跑不满",到底卡在哪一环
先把故事讲完整。上周有位朋友买了一块 PCIe 接口的 RTL8125 2.5G 网卡,装进 Debian 主机后执行ip link show,结果只有一个 lo 和一个板载千兆口,新网卡连影子都没有;换一台机器试,接口出现了,但ethtool里显示Speed: 1000Mb/s。
这两个现象,根因其实是同一个:驱动不对路。
- 内核里自带的
r8169是一个通用驱动,主要面向老款千兆芯片。它虽然能"勉强驱动" RTL8125,但能力有限,经常只协商到 1G,甚至干脆不识别。 - Realtek 官方另有专用驱动
r8125,才是为 2.5G 芯片优化过的正主。麻烦在于,Linux 加载模块时r8169往往抢先一步占了网卡,r8125就算装好也没机会上场。
打个比方:r8169像一位只懂老业务的老员工,占了工位却干不了新活;你要做的是把新来的专家r8125请进来,并让老员工暂时休假(屏蔽 r8169)。而本项目 realtek-r8125-dkms,就是帮你把这个过程自动化、并且内核升级后自动重来的"人事管家"。
二、开工之前:一张 10 分钟核对清单
本节给你一张清单,逐项打勾后再动手,能避开 90% 的中途卡壳。
必须项(缺一不可):
- 网卡型号确认:执行
lspci | grep -i ethernet,回显里要能看到Realtek ... RTL8125或RTL8126字样。如果看到的是RTL8156(USB 网卡),本项目不适用,别往下走了。 - Debian / Ubuntu 系系统:本教程基于
apt生态;其他发行版请对照dkms-install.sh脚本里的逻辑手动执行。 - dkms 工具:
sudo apt install dkms - 内核头文件:
sudo apt install linux-headers-$(uname -r),编译内核模块全靠它 - 编译工具链:
sudo apt install build-essential - git 客户端:
sudo apt install git,用于克隆仓库
可选项(非必需):
- ethtool:查看网卡协商速率,验证环节要用
- iperf3:实测真实带宽,数据比感觉更可靠
一句话提醒:头文件版本必须和当前内核严格一致。
uname -r输出什么,linux-headers-后面就接什么,手滑装错版本,后面dkms build必报错。
三、三条路怎么选:一张决策表帮你定
本项目提供了三种装法,它们互不干扰,但绝大多数人只需要选一条。先看表,再动手:
| 路线 | 适合谁 | 难度 | 内核升级后 | 长期维护成本 |
|---|---|---|---|---|
DKMS 安装(dkms-install.sh) | 想一劳永逸的普通用户、生产环境 | 低 | 驱动自动重编译,无需操心 | 极低,强烈推荐 |
| autorun.sh 一键脚本 | 应急救火、当下就要有网 | 最低 | 失效,需重新执行脚本 | 高,每次升级都要重跑 |
手动编译(src/下 make) | 开发者、要自定义编译参数 | 中 | 失效,需手动重编 | 高,依赖关系自己维护 |
我的建议很直接:不是十万火急,就选 DKMS 这条稳路。下面第四节就是它的完整实操;autorun.sh 和手动编译适合什么样的人,第四节结尾会补两句,让你心里有数。
四、DKMS 安装实操:五步走完"装驱动 + 防冲突"全程
本节是全文核心。按顺序执行,每步都有"成功标志",方便你随时自检。
第 1 步:把源码克隆到本地
git clone https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms cd realtek-r8125-dkms成功标志:ls能看到autorun.sh、dkms-install.sh、dkms.conf和src/源码目录。如果克隆因网络波动失败,重试几次即可。
第 2 步:确认内核头文件真的就绪
uname -r ls /usr/lib/modules/$(uname -r)/build成功标志:第一条输出一个版本号(如6.8.0-45-generic),第二条不报 "No such file"。如果报错,回到清单把linux-headers-$(uname -r)装上再继续。
第 3 步:运行 DKMS 安装脚本(核心一步)
sudo chmod +x dkms-install.sh sudo ./dkms-install.sh脚本内部其实只干了三件事,你可以对照输出确认进度:
- 把当前目录复制到
/usr/src/r8125-9.018.00; - 依次执行
dkms add→dkms build,后者会调用 make 编译内核模块,期间会滚动大量编译日志,属正常现象,等待即可,不要因为刷屏就以为卡死了; - 执行
dkms install,把r8125.ko安装进内核模块目录。
成功标志:最后一行输出Finished running dkms install steps.,且全程没有Error。别急,装完还不算完——接下来这一步最关键。
第 4 步:屏蔽冲突驱动 r8169(最关键的一步)
就像前面说的,r8169会抢先加载,把你的新驱动挤掉。这一步就是给它下"停职令":
sudo tee /etc/modprobe.d/blacklist-r8169.conf > /dev/null <<EOT # 屏蔽 r8169,强制使用 r8125 专用驱动 blacklist r8169 EOT sudo update-initramfs -u成功标志:update-initramfs -u刷新并显示update-initramfs: Generating /boot/initrd.img-<版本号>,无报错。
第 5 步:重启,让一切生效
sudo reboot重启后先别急着开心,走一遍第五节验证,确认驱动真的在干活。
应急路线补一句:如果现在没网、急着救急,可以不走 DKMS,直接
sudo ./autorun.sh。它会自动卸载旧驱动、编译、备份并替换 r8169、更新 initramfs,最后输出Completed.。但记住它是"一次性膏药"——只对当前内核生效,下次升级内核必须重跑。手动编译(cd src && make -j$(nproc) && sudo make install && sudo modprobe r8125)同理,适合需要自定义编译参数的人,普通用户不必碰。
五、装完不算完:逐项勾选这张验证清单
驱动装上 ≠ 驱动在干活。以下五条全部打勾,才算真正完成:
lspci -k | grep -A2 -i ethernet里显示的驱动是r8125,而不是r8169lsmod | grep r8125有输出,且lsmod | grep r8169无输出dkms status显示r8125/9.018.00状态为installed(能看到当前内核版本号)ip link show能看到新网卡接口(通常是enpXxx),且ethtool <接口名> | grep Speed回显2500Mb/s- 实测带宽:服务端
iperf3 -s,客户端iperf3 -c <服务器IP> -t 30 -P 4,结果接近 2.3Gbps 以上(对比千兆环境的 940Mbps 基线,提升一目了然)
失败现象参考:如果lsmod里只有 r8169、没有 r8125,说明黑名单没生效或没更新 initramfs,回到第四节第 4 步复查;如果速率仍显示 1000Mb/s,先别怪驱动,检查对端设备和网线(详见下表)。
六、翻车现场速查表:现象、原因、解法一列清
| 现象 | 原因 | 解决办法 |
|---|---|---|
dkms build报No rule to make target之类错误 | 内核头文件未装或版本不匹配 | sudo apt install linux-headers-$(uname -r)后重试 |
| 重启后只有 r8169、没有 r8125 | 黑名单未生效 / initramfs 未更新 | 检查/etc/modprobe.d/blacklist-r8169.conf内容,重跑sudo update-initramfs -u再重启 |
| 加载后速率仍显示 1000Mb/s | 对端设备只支持千兆,或网线规格不足 | 确认对端也是 2.5G 设备,网线至少 Cat5e |
modprobe r8125报Operation not permitted | 内核模块签名校验失败 / Secure Boot 未关 | 进 BIOS 关闭 Secure Boot,或为模块签名 |
| autorun.sh 编译报错但屏幕信息太少 | 日志被追加写入了文件 | 执行tail -50 log.txt查看具体报错行 |
七、进阶玩家的两条延伸路线
驱动装好只是及格线,想再进一步,有两条路可选。
路线一:性能调优。追求满速可以加大接收缓冲区,并开启中断合并,降低高负载下的 CPU 占用:
sudo sysctl -w net.core.rmem_max=26214400 sudo ethtool -C <接口名> rx-usecs 30 tx-usecs 30路线二:自己打 Debian 包。想体验"驱动像普通软件一样可升级可卸载"的管理方式,可以在项目目录里自己构建.deb:
sudo apt install devscripts debmake debhelper build-essential dkms dh-dkms dpkg-buildpackage -b -rfakeroot -us -uc sudo dpkg -i realtek-r8125-dkms*.deb之后驱动就归dpkg管了,升级、卸载都干干净净,适合重度 Linux 用户。
八、收尾:三句话记住今天的内容
DKMS 方式最省心,内核升级自动重编译,装一次管一年;装完必须屏蔽 r8169,否则驱动被抢占等于白装;最后用 ethtool 和 iperf3 实测速率,让数据替驱动说话。
下一步行动很简单:对照第二节清单核一遍环境,然后从第四节第 1 步开始执行,大约 5 分钟,你的 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),仅供参考