news 2026/5/6 18:40:45

告别驱动消失!Ubuntu 20.04/22.04下为Realtek RTL8125 2.5G网卡配置永久驱动(DKMS详解)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
告别驱动消失!Ubuntu 20.04/22.04下为Realtek RTL8125 2.5G网卡配置永久驱动(DKMS详解)

Ubuntu系统下Realtek RTL8125 2.5G网卡驱动永久配置指南

每次内核更新后都要重新编译网卡驱动?重启系统后驱动莫名其妙消失?如果你正在使用Ubuntu 20.04或22.04 LTS版本,并且主板搭载了Realtek RTL8125-CG 2.5G以太网卡,这篇文章将彻底解决你的烦恼。我们将深入探讨如何利用DKMS(Dynamic Kernel Module Support)工具实现驱动的自动重建和持久化安装,让你告别反复手动编译的繁琐操作。

1. 理解问题的根源

在开始技术操作之前,有必要先了解为什么Realtek RTL8125这类较新的2.5G网卡在Ubuntu系统中会遇到驱动问题。Linux内核对新硬件的支持往往存在一定的滞后性,特别是像Realtek这样的第三方厂商提供的专有驱动。

当你通过简单的./autorun.sh脚本安装驱动后,虽然能暂时解决问题,但这种安装方式存在两个致命缺陷:

  1. 驱动不会随内核更新自动重建:每次系统内核升级后,原有的驱动模块与新内核不兼容,导致网卡无法使用
  2. 缺乏版本管理:手动安装的驱动难以追踪和更新,系统维护变得复杂

这就是为什么我们需要DKMS——一个专门为解决这类问题而设计的框架。DKMS会在内核更新时自动重新编译和安装内核模块,确保驱动始终与当前运行的内核保持兼容。

2. 准备工作与环境检查

在开始DKMS配置前,我们需要确保系统环境准备就绪。以下是必要的准备工作:

2.1 确认网卡型号

首先,确认你的网卡确实是Realtek RTL8125 2.5G型号:

lspci -nn | grep -i ethernet

输出应该包含类似这样的信息:

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)

关键是要看到10ec:8125这个设备ID,这明确标识了RTL8125网卡。

2.2 安装必要的构建工具

DKMS需要编译环境支持,安装以下软件包:

sudo apt update sudo apt install -y build-essential dkms linux-headers-$(uname -r)

重要提示linux-headers-$(uname -r)会安装与当前运行内核匹配的头文件,这是成功编译驱动的关键。

2.3 下载正确的驱动版本

访问Realtek官方网站获取最新驱动: https://www.realtek.com/zh-tw/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software

选择适合你内核版本的驱动包。对于Ubuntu 20.04/22.04,通常选择标有"for kernel up to 5.x"的版本即可。

3. DKMS驱动的完整配置流程

现在进入核心部分——通过DKMS实现驱动的永久安装。我们将分步骤详细解释每个操作的意义和注意事项。

3.1 解压驱动到正确位置

将下载的驱动包解压到DKMS的标准源目录:

sudo tar xvf r8125-9.004.01.tar.bz2 -C /usr/src/

注意:版本号(9.004.01)可能因下载的驱动版本不同而变化,请根据实际情况调整命令。

3.2 创建DKMS配置文件

在驱动目录中创建dkms.conf文件,这是整个过程中最关键的一步:

sudo nano /usr/src/r8125-9.004.01/dkms.conf

文件内容如下:

PACKAGE_NAME="Realtek_r8125" PACKAGE_VERSION="9.004.01" DEST_MODULE_LOCATION="/updates/dkms" BUILT_MODULE_NAME[0]="r8125" BUILT_MODULE_LOCATION[0]="src/" MAKE[0]="'make' -C src/ all" CLEAN[0]="'make' -C src/ clean" AUTOINSTALL="yes"

让我们解析这个配置文件的关键部分:

配置项说明
PACKAGE_NAMEDKMS识别的模块名称
PACKAGE_VERSION驱动版本号,必须与目录名一致
DEST_MODULE_LOCATION编译后模块的安装位置
BUILT_MODULE_NAME实际生成的内核模块名称
BUILT_MODULE_LOCATION源代码中模块的构建位置
AUTOINSTALL设为"yes"让DKMS在新内核上自动安装

3.3 注册并构建DKMS模块

现在我们可以将驱动添加到DKMS系统并开始构建:

sudo dkms add -m r8125 -v 9.004.01 sudo dkms build -m r8125 -v 9.004.01 -k $(uname -r) sudo dkms install -m r8125 -v 9.004.01 -k $(uname -r)

提示:-k $(uname -r)参数明确指定为当前内核构建,可以省略,但显式声明更安全。

3.4 加载新驱动并验证

最后,加载新编译的模块并验证是否正常工作:

sudo modprobe r8125

检查驱动是否加载成功:

dmesg | grep r8125

你应该能看到类似这样的输出,表明驱动已正常加载:

[ 12.345678] r8125: loading out-of-tree module taints kernel. [ 12.345679] r8125: module verification failed: signature and/or required key missing - tainting kernel [ 12.345987] r8125 0000:03:00.0 eth0: RTL8125B, 00:11:22:33:44:55, IRQ 123

4. 高级管理与故障排除

配置完成后,你可能还需要了解一些高级管理技巧和常见问题的解决方法。

4.1 DKMS常用管理命令

查看已安装的DKMS模块状态:

sudo dkms status

输出示例:

r8125, 9.004.01, 5.15.0-60-generic, x86_64: installed

卸载某个版本的DKMS模块:

sudo dkms remove -m r8125 -v 9.004.01 --all

4.2 内核更新后的验证

当系统内核更新后,DKMS会自动重新编译驱动。你可以通过以下命令验证:

sudo dkms autoinstall

这个命令会检查所有已注册的DKMS模块,确保它们都已为当前内核正确构建和安装。

4.3 常见问题及解决方案

问题1:DKMS构建失败,提示缺少头文件

解决:确保安装了对应内核版本的headers:

sudo apt install linux-headers-$(uname -r)

问题2:网卡仍然无法识别

解决:检查模块是否加载:

lsmod | grep r8125

如果没有输出,尝试手动加载:

sudo modprobe r8125

问题3:系统启动时驱动未自动加载

解决:将模块添加到启动加载列表:

echo "r8125" | sudo tee /etc/modules-load.d/r8125.conf

5. 网络接口的持久化配置

虽然驱动问题已经解决,但为了获得最佳的网络体验,我们还需要正确配置网络接口。

5.1 识别网络接口名称

首先确认你的以太网接口名称:

ip link show

通常以enp开头,如enp3s0

5.2 配置静态IP或DHCP

使用Netplan配置网络(Ubuntu 17.10及以后版本的默认网络配置工具):

sudo nano /etc/netplan/01-netcfg.yaml

示例配置(DHCP):

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: true

应用配置:

sudo netplan apply

5.3 禁用节能特性(可选)

Realtek网卡有时会因节能特性导致性能问题,可以通过ethtool调整:

sudo ethtool -s enp3s0 wol d sudo ethtool -K enp3s0 gso off tso off

要使这些设置永久生效,可以创建一个systemd服务或在启动脚本中添加这些命令。

6. 驱动更新与维护

保持驱动更新是确保系统稳定运行的重要环节。以下是维护建议:

  1. 定期检查Realtek官网:关注驱动更新,特别是遇到内核大版本升级时
  2. 备份DKMS配置:将/usr/src/r8125-*目录和/etc/modprobe.d/下的相关配置备份
  3. 内核降级选项:如果遇到兼容性问题,可以暂时使用旧内核启动:
    sudo apt install linux-image-5.15.0-60-generic linux-headers-5.15.0-60-generic sudo grub-set-default "Ubuntu, with Linux 5.15.0-60-generic" sudo update-grub

7. 性能优化与高级调优

对于追求极致网络性能的用户,还可以考虑以下优化措施:

7.1 中断合并调整

减少网络中断对系统性能的影响:

sudo ethtool -C enp3s0 rx-usecs 8 rx-frames 32 tx-usecs 8 tx-frames 32

7.2 接收端缩放(RSS)配置

启用多队列支持以利用多核CPU:

sudo ethtool -L enp3s0 combined 4

7.3 缓冲区大小调整

根据网络负载调整缓冲区大小:

sudo ethtool -G enp3s0 rx 4096 tx 4096

这些优化参数需要根据实际网络环境和硬件配置进行调整,建议在更改前记录原始值以便恢复。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 11:15:32

黑马若伊课程中导入表出错的解决方案

在学习黑马的ai若伊课程的时候,在导入表时会产生报错,如图:如果你遇到跟我一样的问题,可以检查是不是前端传入数据时出现问题。步骤如下:1.用VScode打开你的RuoYi-Vue\RuoYi-Vue3这个文件夹后,在左侧资源管…

作者头像 李华
网站建设 2026/4/10 11:15:31

零基础玩转实时口罩检测:基于DAMO-YOLO的快速部署与实战

零基础玩转实时口罩检测:基于DAMO-YOLO的快速部署与实战 1. 引言:为什么选择DAMO-YOLO进行口罩检测 在公共场所进行口罩佩戴检测是疫情防控的重要环节。传统的人工检查方式效率低下且容易遗漏,而基于深度学习的自动检测方案能够实现724小时…

作者头像 李华
网站建设 2026/4/10 11:13:54

避坑指南:Vue3+html2canvas+jspdf导出PDF时你可能遇到的5个问题

Vue3html2canvasjspdf实战:PDF导出高频问题解决方案全景指南 当你第一次尝试在Vue3项目中实现PDF导出功能时,是否遇到过这样的场景:精心设计的页面在PDF中变得模糊不清,复杂表格被无情截断,多页内容挤成一团&#xff1…

作者头像 李华
网站建设 2026/4/10 11:12:20

01- Java 介绍

我们的核心Java编程教程是为学生、初学者和专业人士设计的。Java是一种面向对象,基于类,并发,安全和通用的计算机编程语言。它是一种广泛使用的强大技术。 什么是Java Java是一种编程语言 和平台。Java是一种高级,健壮&#xff…

作者头像 李华