CodeMaster 2025-12-26 13:35 采纳率: 99.1%
浏览 3
已采纳

Ubuntu 20.04.6 安装后无法识别网卡驱动

Ubuntu 20.04.6 安装后无法识别网卡驱动的常见问题是:系统未能正确加载 Realtek 或 Intel 新型网卡(如RTL8125、I219-V)的内核模块,导致有线/无线网络接口缺失。此问题多出现在较新硬件或定制组装机上,因标准内核未内置相应驱动。用户执行 `ip a` 或 `lshw -c network` 命令时会发现网卡状态为“UNCLAIMED”。解决方法包括使用 USB 共享网络或离线方式安装 `r8169`、`r8168-dkms` 或 `linux-firmware` 更新包,并确保启用正确的内核模块。该问题凸显了Ubuntu长期支持版本在发布时对最新硬件支持的滞后性。
  • 写回答

1条回答 默认 最新

  • 祁圆圆 2025-12-26 13:35
    关注

    Ubuntu 20.04.6 网卡驱动识别问题深度解析与实战解决方案

    1. 问题现象与初步诊断

    在部署 Ubuntu 20.04.6 LTS 版本时,部分用户在新硬件平台(如搭载 Realtek RTL8125、Intel I219-V 等网卡的主板)上遭遇网络接口无法识别的问题。执行以下命令可快速确认:

    
    ip a
    lshw -c network | grep "UNCLAIMED"
    

    若输出中出现“UNCLAIMED”状态,表明内核未能加载对应的驱动模块。此时系统虽检测到硬件存在,但缺乏可用驱动支持,导致 eth0 或 enpXsY 接口缺失。

    2. 根本原因分析

    Ubuntu 20.04.6 发布于 2023 年初,基于 Linux 内核 5.4.x 长期支持版本。而新型网卡如 RTL8125(2.5Gbps)或 I219-V(集成于 Intel 12/13代平台)的完整支持需依赖较新的内核模块或固件包。具体成因如下:

    • Realtek RTL8125 需要 r8169 驱动的更新版本(≥6.2),但 Ubuntu 20.04 默认 r8169 模块版本过旧。
    • Intel I219-V 可能受制于 linux-firmware 包未包含最新 PHY 固件。
    • 部分 OEM 主板使用定制 MAC 地址策略或 ACPI 设置,干扰驱动绑定。
    • DKMS(Dynamic Kernel Module Support)机制未启用第三方驱动编译流程。

    3. 解决路径全景图

    graph TD A[系统启动无网络] --> B{是否识别硬件?} B -->|否| C[检查BIOS/UEFI设置] B -->|是, UNCLAIMED| D[确定网卡型号] D --> E[Realtek? Intel?] E -->|Realtek RTL8125| F[升级 r8169 或安装 r8168-dkms] E -->|Intel I219-V| G[更新 linux-firmware] F --> H[构建 DKMS 模块] G --> H H --> I[重新加载内核模块] I --> J[验证 ip a / dmesg]

    4. 实战解决方案分步指南

    1. 获取网卡详细信息:使用离线手段(如另一台电脑查询 PCI ID)或 Live USB 进入系统运行:
      
      lspci -nn | grep -i ethernet
      # 示例输出: 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125]
      
    2. 准备离线依赖包:通过手机热点共享网络至另一设备,下载以下 DEB 包:
      组件推荐版本下载源
      r8168-dkms8.051.00-1https://www.realtek.com
      dkms2.8.1-5ubuntu1http://archive.ubuntu.com
      linux-headers-generic5.4.0.156同上
      linux-firmware1.187.20官方仓库
    3. 安装 DKMS 支持框架
      
      sudo dpkg -i dkms_*.deb linux-headers-*.deb
      
    4. 部署 Realtek r8168 驱动:注意 r8168 会自动取代冲突的 r8169 模块。
      
      sudo dpkg -i r8168-dkms_8.051.00-1_amd64.deb
      sudo depmod -a
      sudo modprobe r8168
      
    5. 更新 Intel 固件方案
      
      sudo dpkg -i linux-firmware_1.187.20_all.deb
      sudo systemctl restart systemd-networkd
      
    6. 禁用老旧 r8169 模块(可选)
      
      echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
      

    5. 验证与调试技巧

    完成安装后,应执行多维度验证:

    
    # 查看模块加载情况
    lsmod | grep -E "(r816|i21)"
    # 检查硬件声明状态
    lshw -c network | grep -A 5 "Ethernet"
    # 监控内核日志
    dmesg | grep -i "eth\|r816\|i219"
    # 启用接口并测试连通性
    sudo ip link set enp3s0 up
    sudo dhclient enp3s0
    ping -c 4 8.8.8.8
    

    若仍失败,可通过 ethtool -i enp3s0 查看驱动版本,或使用 journalctl -u NetworkManager 分析服务层异常。

    6. 长期维护建议与架构启示

    该问题反映出 LTS 发行版与硬件演进之间的“时间窗口错配”。对于企业级部署,建议采取以下策略:

    • 建立定制化 ISO 镜像,预集成 r8168-dkms 与最新 linux-firmware
    • 采用 Ubuntu HWE(Hardware Enablement)堆栈,自动升级至 5.15+ 内核。
    • 在 PXE 环境中嵌入驱动注入脚本,实现自动化修复。
    • 监控 kernel.org 与 Realtek 官方发布周期,提前测试驱动兼容性。
    • 对关键节点启用 systemd-networkd 替代 NetworkManager,减少抽象层故障点。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 12月27日
  • 创建了问题 12月26日