资讯详情

离线环境安装Realtek r8125网卡驱动:依赖包与完整步骤

📅 2026/10/27 11:30:40 | 华诺云谱 👁 阅读
离线环境安装Realtek r8125网卡驱动:依赖包与完整步骤
简介面向在 Ubuntu 环境下进行软件开发或 Realtek 网卡驱动部署的用户这份离线资源包整合了 gcc、make、build-essential 等基础编译工具及 r8125 千兆网卡驱动源码专门解决无网络环境下工具链缺失、驱动无法在线获取的痛点适合需要离线搭建编译环境或手动安装网卡驱动的初中级 Linux 使用者。压缩包共 42 个文件约 30.01MB以 23 个 deb 安装包为主体涵盖 gcc、g、make、libc 开发库等依赖另含 8 个 h 头文件、6 个 c 源文件、2 个 makefile 及 autorun.sh 脚本与 readme 说明构成 r8125 驱动的完整编译素材。目前已有 3769 人学习下载。读者可据此一次性补齐编译工具链按 Makefile 与脚本完成驱动编译安装并借助 readme 与源码理解依赖关系与排错思路省去逐一下载依赖的繁琐。1. 离线环境里把 Realtek 网卡驱动装起来一份能直接用的依赖包机房里有台 Ubuntu 机器网卡是 Realtek 的系统装完lspci能看到设备ip a却只有 lo插网线灯都不亮。这种场景下最要命的不是驱动本身而是机器没网——apt install build-essential拉不下来dkms装不上连gcc都没有编译r8125源码这条路直接堵死。手里这份离线安装包就是为这种局面准备的把gcc、make、build-essential以及r8125驱动源码和它依赖的头文件、dkms一起打包拷到目标机上按顺序装完网卡就能起来。适合谁做内网部署、机房上架、工控机交付的从业者尤其是那种「机器在眼前、网络在墙外」的现场。下面按我实际拆包复现的顺序讲参数和坑都落到具体命令上。2. 先看清包里有什么依赖关系与安装顺序2.1 为什么不能直接dpkg -i一把梭离线包最容易翻车的地方是把一堆.deb丢进一个目录然后dpkg -i *.deb。dpkg不解决依赖顺序它只检查当前系统里依赖是否已满足不满足就报dependency problems prevent configuration而且会把包留在unpacked状态后面再装别的包时状态更乱。正确的思路是先理清依赖树再按「底层库 → 编译工具链 → 内核头文件 → 驱动」的顺序装。build-essential是个元包它本身不含二进制只声明依赖gcc、g、make、libc6-dev、dpkg-dev。所以离线包里真正要落地的是这几个实体包build-essential的.deb只是最后用来「盖章」确认依赖齐了。r8125驱动编译还需要当前内核的linux-headers-$(uname -r)这个包必须和目标机内核版本严格对应拿错版本编译会报No such file or directory: /lib/modules/.../build。常见做法是先在能上网的同版本 Ubuntu 上把依赖拉全# 在联网的同版本机器上把依赖下载到本地目录不安装 apt-get install --download-only -y \ gcc g make libc6-dev dpkg-dev \ build-essential \ linux-headers-$(uname -r) \ dkms # 下载的 deb 默认落在 /var/cache/apt/archives/ ls /var/cache/apt/archives/*.deb--download-only只下载不安装适合做离线源。注意linux-headers-$(uname -r)里的uname -r必须是目标机的内核版本不是打包机的。两台机器内核小版本差一位头文件就对不上这是最常见的翻车点之一。2.2 依赖清单与版本对应表拆开包看核心文件大致是这几类装之前先对一遍类别典型包名作用缺失时的现象C 编译器gcc、gcc-ver编译驱动源码make报gcc: command not found构建工具make、dpkg-dev执行 Makefile、打包make: not found头文件libc6-dev标准库头文件报stdio.h: No such file内核头linux-headers-ver驱动编译所需内核接口报/lib/modules/.../build不存在驱动管理dkms内核升级后自动重编升级内核后网卡又没了驱动源码r8125-ver.tar.gzRealtek 2.5G 网卡驱动无r8125.ko可加载版本对应关系上gcc和内核头文件不要求同版本但内核头必须和uname -r完全一致dkms版本低一点通常没事但太老的dkms不认新版内核的MODULE_VERSION字段会在dkms add时报解析错误。我一般会先dpkg -l | grep -E gcc|make|dkms看目标机已有什么只补缺的避免重复安装把已有版本降级。2.3 按依赖顺序安装的具体命令把离线包拷到目标机某个目录比如/opt/offline先建本地源再装比逐个dpkg -i稳cd /opt/offline # 生成 Packages 索引让 apt 认识这个本地目录 dpkg-scanpackages . /dev/null | gzip -9c Packages.gz # 写入本地源注意 file:// 后面是绝对路径 echo deb [trustedyes] file:///opt/offline ./ \ | tee /etc/apt/sources.list.d/offline.list apt-get update # 此时 apt 会自动按依赖顺序解析比 dpkg 手工排序可靠 apt-get install -y build-essential dkms linux-headers-$(uname -r)dpkg-scanpackages来自dpkg-dev如果目标机连这个都没有就得先手工dpkg -i dpkg-dev*.deb再生成索引。[trustedyes]是因为本地包没有签名不加这行apt会拒绝。装完用dpkg -l build-essential确认状态是ii已安装且配置完成如果是iU说明依赖还没齐别急着往下走。3. 编译并加载 r8125从源码到网卡亮灯3.1 解包与 Makefile 关键参数r8125源码包解开后是个标准内核模块工程顶层Makefile会调用内核的kbuild体系。先解包tar -xzf r8125-*.tar.gz -C /usr/src/ cd /usr/src/r8125-*/ ls # 常见内容Makefile、src/、README、dkms.conf编译前确认内核构建目录存在这是kbuild的入口ls -d /lib/modules/$(uname -r)/build # 有输出说明头文件装好了报 No such file 就是 linux-headers 没装对版本然后直接make。r8125的 Makefile 支持几个常用变量现场调参时用得上# 标准编译产物在 src/ 下 make -C src/ # 指定内核目录交叉编译或头文件路径特殊时 make -C src/ KDIR/lib/modules/$(uname -r)/build # 打开调试输出排查收包异常时用 make -C src/ ENABLE_RSS_SUPPORTyKDIR指向内核构建树默认就是/lib/modules/$(uname -r)/build一般不用改ENABLE_RSS_SUPPORT是多队列收包支持服务器多核场景建议开桌面机无所谓。编译成功会在src/下生成r8125.ko用modinfo验一下modinfo src/r8125.ko | head -5 # 应能看到 filename、version、license 等字段3.2 加载模块与开机自启编译出来先手动加载验证别急着写进开机项# 先卸掉可能已存在的旧模块避免冲突 rmmod r8169 2/dev/null # 加载新模块 insmod src/r8125.ko # 看内核日志有没有报错 dmesg | tail -20 # 正常会看到 r8125: ... link up 之类的行r8169是内核自带的 Realtek 通用驱动很多发行版默认加载它会和r8125抢设备。现象是insmod成功但ip a里网卡名还是enp*且不亮dmesg里两个驱动都在 probe。解决就是先rmmod r8169再加载r8125并在/etc/modprobe.d/里加黑名单echo blacklist r8169 /etc/modprobe.d/blacklist-r8169.conf开机自启用dkms最省心源码包一般自带dkms.conf# 把源码放到 dkms 管理的目录结构下 cp -r /usr/src/r8125-*/ /usr/src/r8125-ver/ dkms add -m r8125 -v ver dkms build -m r8125 -v ver dkms install -m r8125 -v verver换成源码包实际版本号dkms.conf里PACKAGE_VERSION字段写的就是它。dkms install会自动处理depmod和模块依赖比手工insmod规范。装完dkms status应显示r8125, ver, kernel: installed。3.3 验证链路与速率协商网卡起来后别只看ip a有没有地址要确认链路速率协商对不对。r8125是 2.5G 网卡插到千兆交换机上会降速这是正常的但如果是 2.5G 口却只协商到 100M多半是网线或对端口问题# 看链路状态和协商速率 ethtool enp3s0 # Speed: 2500Mb/s 表示协商正常100Mb/s 要查线和水晶头 # 看驱动版本和固件 ethtool -i enp3s0 # driver: r8125 version: 9.xxx 说明加载的是新驱动ethtool -i里driver字段是判断驱动是否生效最直接的证据比看lspci -k更准。如果显示r8169说明黑名单没生效或模块加载顺序不对回去查lsmod | grep r81。4. 避坑与排查五个现场高频翻车点4.1 内核头文件版本对不上现象make报make: *** /lib/modules/5.15.0-xx-generic/build: No such file or directory。 原因离线包里带的linux-headers是打包机的内核版本和目标机uname -r差了一位小版本。 解决在目标机uname -r拿到准确版本回联网机用apt-get download linux-headers-准确版本单独补这个包别用「差不多」的版本凑。4.2dpkg -i后包卡在 unpacked 状态现象dpkg -l里build-essential显示iU再装别的包报dpkg: error processing package ... (--configure)。 原因依赖没满足就dpkg -i包解开了但配置阶段失败状态残留。 解决先apt-get install -f让 apt 尝试修复修不了就dpkg --remove --force-remove-reinstreq 包名清掉残留再走本地源apt-get install重装。别在iU状态上继续叠包。4.3 r8169 抢设备导致网卡不亮现象insmod r8125.ko返回 0但ip a里网卡没起来dmesg里r8169和r8125都在 probe 同一 PCI 地址。 原因内核自带r8169先加载并绑定了设备r8125拿不到。 解决rmmod r8169写/etc/modprobe.d/blacklist-r8169.conf加blacklist r8169再update-initramfs -u让黑名单进 initramfs重启后确认lsmod里没有r8169。4.4 dkms 在内核升级后重编失败现象系统升级内核重启后网卡又没了dkms status显示built但install失败。 原因新内核的头文件没装dkms自动重编时找不到build目录。 解决升级内核时同步装linux-headers-新版本或者把dkms的自动重编关掉改手工控制。离线环境建议后者避免半夜升级后失联。4.5 本地源apt update报 Release 文件缺失现象apt-get update报E: The repository file:///opt/offline ./ Release does not have a Release file。 原因只生成了Packages.gz没生成Release新版 apt 对本地源也要求 Release。 解决用apt-ftparchive生成 Release或者直接在源行加[trustedyes allow-insecureyes]。前者规范后者应急。5. 把离线包做成可复用资产校验与版本锁定现场装完一次不算完下次换台机器还得重来。我的习惯是把这次跑通的包整理成一个带校验和版本锁的目录下次直接拷过去用。先做完整性校验离线包在 U 盘里拷来拷去损坏是常事cd /opt/offline # 生成校验清单 sha256sum *.deb *.tar.gz SHA256SUMS # 到新机器上先校验任何一行 FAILED 就重新拷 sha256sum -c SHA256SUMSsha256sum -c会逐行比对输出OK或FAILED比肉眼对文件大小可靠。然后锁版本把这次验证过的包名和版本记进一个清单文件下次装之前先dpkg -l比对避免目标机已有更高版本被降级# 导出当前已装的关键包版本作为基线 dpkg-query -W -f${Package} ${Version}\n \ gcc make build-essential dkms \ linux-headers-$(uname -r) baseline.txtdpkg-query -W的-f参数控制输出格式${Package}和${Version}是占位符导出后就是「包名 版本」两列方便 diff。新机器上装完跑一遍同样的命令和baseline.txt对比版本一致才算复现成功。还有一个容易忽略的点r8125源码包里的dkms.conf有时PACKAGE_VERSION和实际驱动版本不一致dkms install会按dkms.conf的版本注册导致dkms status显示的版本和modinfo里的version对不上。我一般会打开dkms.conf核对一遍不一致就改dkms.conf里的版本号再dkms add别让两个版本号打架后面排查时会被这个坑绕进去。从那以后我每次做离线包都强制走一遍「联网机下载 → sha256 校验 → 目标机本地源安装 → dkms 注册 → ethtool 验证速率」这条链路少一步现场就多半小时。这份包的价值不在于文件多全而在于顺序和版本是锁死的照着走能复现。希望帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑