环境信息
- 操作系统:Ubuntu 24.04.2 LTS(系统代号 noble)
- 内核版本:6.17.0-40-generic(HWE 硬件启用内核)
- 系统架构:x86_64(amd64)
- 网卡硬件:华硕主板板载 Realtek RTL8111H Gigabit Ethernet Controller [10ec:8168]
- 运行环境:全程无法联网,仅支持 U 盘离线安装 deb 软件包
故障现象
- 网口物理灯亮,
lspci识别网卡硬件,系统无有线网口;ip a看不到物理网卡。 - 离线安装
r8168-dkms持续 DKMS 编译报错。 - 修复驱动文件后,手动加载驱动临时恢复网络,重启故障复现。
- 环境:Ubuntu 24.04,内核
6.17.0-40-generic,全程离线。
根因分析
- 核心故障:缺失
linux-modules-extra-6.17.0-40-generic,内核目录不存在r8169.ko原生驱动文件。 - 次要干扰:
r8168-dkms 8.052版本老旧,不兼容 6.17 内核,编译失败。 - 重启复现原因:驱动补齐后未配置开机自动加载
r8169模块。 - 排除项:无 r8169 黑名单配置,BIOS 已关闭 Secure Boot。
分阶段排查、操作命令记录
阶段 1:初步故障区分(定位硬件 / 驱动层级)
- 查看全部网络设备
1ip a
现象:仅存在 lo 回环网卡,无 enpxx 有线网卡。
- 查看 PCI 硬件列表,确认网卡硬件是否被系统识别
1lspci -nn
现象:成功找到 Realtek RTL8111H 网卡,确认硬件无损坏。
- 尝试加载原生 r8169 驱动,获取关键报错
1sudo modprobe r8169
现象:Module r8169 not found,证明驱动文件不存在,并非驱动被屏蔽。
- 校验内核目录驱动文件
1ls /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek/
现象:目录不存在r8169.ko驱动模块。
- 核查本机已安装内核扩展包
1dpkg -l | grep linux-modules-extra
现象:缺少对应内核版本的linux-modules-extra包,完成根因锁定。
阶段 2:踩坑尝试(离线安装第三方驱动方案)
1sudo dpkg -i r8168-dkms_8.052.01_all.deb
现象:DKMS 编译返回错误代码 2,旧版源码无法适配 6.17 内核,方案失效。
阶段 3:正式修复,补齐原生驱动与固件
- 离线安装内核扩展包、网卡固件包
1bash
2sudo dpkg -i linux-modules-extra-6.17.0-40-generic_*.deb linux-firmware_*.deb
- 卸载编译失败、无效的 dkms 驱动包
1sudo dpkg -r r8168-dkms
- 手动加载 r8169 驱动,验证网络能否恢复
1sudo modprobe r8169
2ip a
现象:出现有线网卡,网络临时恢复。
阶段 4:解决重启失效问题
- 创建开机自动加载驱动配置
1echo "r8169" | sudo tee /etc/modules-load.d/r8169.conf
- 更新所有内核启动镜像,固化驱动加载配置
1bash
2sudo update-initramfs -u -k all
- 重启验证
1sudo reboot
现象:开机自动识别网卡,无需手动执行 modprobe,故障彻底解决。
关键排查区分命令(故障鉴别用)
- 全局检索是否存在驱动黑名单屏蔽
1grep -r "r8169" /etc/modprobe.d/ /usr/lib/modprobe.d/
本次执行结果:无任何屏蔽配置,排除黑名单干扰。
- 查看内核启动参数是否存在模块屏蔽
1cat /proc/cmdline
经验总结
modprobe 模块名提示not found= 文件缺失;执行无反馈、设备不工作 = 大概率黑名单屏蔽,两条命令可区分两类故障。- Ubuntu HWE 高版本内核 r8169 驱动存放于
linux-modules-extra,不在基础内核包。 - 补齐驱动文件后,必须配置自动加载模块 + 更新 initramfs,否则重启失效。
- 离线环境优先系统原生驱动,第三方 DKMS 驱动存在严格内核版本兼容限制。