ubuntu-20.04.6LTS下安装RealtekRTL8125网卡驱动
由于在项目需要linux系统,且结合性能与实际需求,打算在电脑安装双系统。安装完成后测试系统,发现系统没有网络信息,后来进一步分析是因为自己电脑的主板与系统可能不兼容,系统不能正常识别有线网卡。因此,需要手动下载并安装有线网卡驱动(注意在安装依赖库时,由于电脑没有网络,这里尝试用手机的USB网络共享联网)。
查询电脑的硬件信息
可以查询电脑的网卡信息:
lspci | grep net
lspci -k
卸载原来不兼容的网卡驱动(注意是自己的路径):
sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek/r xxxx.ko #,查找并删除注意是自己的原来的驱动型号,删除驱动文件
sudo rmmod rxxx #卸载驱动模块
或者 sudo modprobe -r rxxxx
检测是否卸载成功:
lsmod | grep r xxxx
官网下载驱动
我电脑主板的有线网卡型号为Realtek PCIe 2.5G RTL8125 。因此在瑞昱官网(https://www.realtek.com/Download/Index?cate_id=194&menu_id=368)查询该型号的驱动:
选择PCle的网络接口控制器:Realtek PCIe FE / GbE / 2.5GbE / Gaming Family Controller Software Quick Download Linkhttps://www.realtek.com/Download/List?cate_id=584
进去后能看到该Network Interface Controllers支持的网卡型号:
注意有不同的系统版本,这里我们选择linux版本,点击download图标,进入下载界面,继续点下载文件,输入验证码,自动下载:
下载完成后会得到一个r8125-9.014.01.tar.bz2文件,这里注意文件后缀,避免版本下载错误。将其拷贝到U盘。方便挂载到我们的linux系统,进行后续离线安装。
在要安装有线网卡驱动的linux系统中,打开命令行进行解压到src目录下:
sudo tar xvf r8125-9.014.01.tar.bz2 -C /usr/src
cd /usr/src/r8125-9.014.01 #进入该目录
编译安装的配置文件
用vim或系统只带的编辑工具创建dkms.conf 配置文件并保存,这个配置文件用来在安装或更新 Realtek R8125 网卡驱动时,让 DKMS 自动构建、安装和卸载驱动模块的。通过这个配置,驱动在系统更新时能够自动重新编译并安装到内核中,确保即使内核版本更新,网卡驱动仍然可以正确加载,具体如下:
PACKAGE_NAME=r8125
PACKAGE_VERSION=9.014.01
# 模块编译后的安装路径
DEST_MODULE_LOCATION=/updates/dkms
# 构建的模块名称
BUILT_MODULE_NAME=r8125
# 源代码位置
BUILT_MODULE_LOCATION=src/
# 编译命令
MAKE="'make' -C src/ all"
# 清理命令
CLEAN="'make' -C src/ clean"
# 自动安装编译后的模块
AUTOINSTALL="yes"
编译依赖环境准备
在编译驱动文件前,确保系统提前安装需要安装 GNU 编译器(gcc
)、Make 工具和内核头文件(Kernel Headers)来编译源代码。
# 安装编译环境
sudo apt update
sudo apt -f install
sudo apt install -y --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms
执行编译
将 r8125
驱动模块添加到 DKMS 系统中、编译并安装驱动模块、更新内核模块依赖、以及加载新驱动模块到内核的完整过程,可以直接执行sudo bash ./autorun.sh命令,或者用分步执行。
sudo dkms add -m r8125 -v 9.014.01 #将 r8125 驱动模块添加到 DKMS 系统中。
sudo dkms build -m r8125 -v 9.014.01 #构建 r8125 模块的内核模块文件。
sudo dkms install -m r8125 -v 9.014.01 #安装 r8125 驱动模块。
sudo depmod -a # 更新内核模块依赖关系并生成模块依赖文件,确保新安装的模块及其依赖关系被正确识别。
sudo modprobe r8125 #加载 r8125 驱动模块到内核。使r8125 驱动模块生效,系统识别并使用该网卡驱动。
在实际编译中,可能会出现各种常规的小问题,不用慌,针对报错解决问题。
例如:
这个报错就是没有binutils的依赖项。需要自己下载源码编译安装。依赖项安装完成后,重新执行编译。
直到编译完成再重启电脑,查看安装是否成功:

lsmod | grep r8125 #检查模块是否加载成功
ip a #查看网络接口状态