Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 識別不到網卡?Realtek/Intel/Broadcom 缺失驅動完整排查手冊

編輯:Linux 教學

現象確認

lspci -nn | grep -i -e net -e ethernet   # PCI 設備列表,確認硬件存在
ip link show                              # 內核是否創建網卡接口
dmesg -T | grep -i -e eth -e enp -e rtl -e igb -e bnx2  # 內核驅動探測日誌

若 lspci 看到設備但 ip link 無對應接口,基本確認為「驅動缺失」或「驅動未綁定」。

核心排查三步走

1. 確定晶片組與所需驅動模組

lspci -nnk | grep -A3 -i ethernet
# 輸出示例:
# 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 [10ec:8168]
#     Kernel driver in use: r8169
#     Kernel modules: r8169, r8168

記下 PCI ID (10ec:8168)、當前驅動、可用模組。常見映射:

廠商/晶片主線驅動廠商增強驅動適用場景
Realtek RTL8111/8168/8125/8126r8169r8168 (Realtek 官方)、r8125, r8126r8169 功耗管理/喚醒/2.5G/5G 協商常有 Bug,建議用廠商驅動
Intel I219/I225/I350/X550e1000e / igc / iceIntel 官方 e1000e/igc/ice (源碼同主線)主線通常足夠,新晶片需新內核
Broadcom BCM5719/5720/574xxbnxt_en / tg3Broadcom 官方同源需 firmware 文件 (linux-firmware 包)
Mellanox ConnectX-4/5/6mlx5_coreOFED 堆疊RDMA/RoCE 需用戶態庫

2. 安裝/切換驅動

方案 A:升級內核(最省事,適用於主線已支持新硬件)

# Ubuntu: 安裝 HWE 內核
sudo apt install linux-generic-hwe-22.04

# Fedora/RHEL: 更新至最新內核
sudo dnf update kernel

# Debian: backports 內核
sudo apt -t bookworm-backports install linux-image-amd64

方案 B:安裝廠商 DKMS 驅動(Realtek 典型)

# Ubuntu/Debian
sudo apt install dkms build-essential linux-headers-$(uname -r)
# 下載 Realtek 官方 r8168/r8125/r8126 源碼壓縮包
tar xf r8168-8.052.00.tar.bz2
cd r8168-8.052.00
sudo ./autorun.sh   # 自動編譯、安裝、註冊 DKMS、更新 initramfs

# 或使用第三方 PPA (Ubuntu)
sudo add-apt-repository ppa:kelebek333/kernel-ppa
sudo apt update && sudo apt install r8168-dkms

方案 C:手動編譯安裝 (通用)

make clean
make -j$(nproc)
sudo make install
sudo depmod -a
sudo modprobe r8168  # 或對應模組名
# 禁用舊驅動
echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
sudo update-initramfs -u

3. 驗證與持久化

ip link show dev enp3s0          # 接口出現
ethtool -i enp3s0                # driver: r8168, version: 8.052.00
nmcli device status              # NetworkManager 識別
systemctl restart NetworkManager # 重新載入
# 寫入 /etc/modules-load.d/ 確保開機自動加載
echo "r8168" | sudo tee /etc/modules-load.d/r8168.conf

進階場景:缺失 Firmware

部分網卡(尤其是 Broadcom、Mellanox、Intel 某些新晶片)需要二進制固件文件:

dmesg -T | grep -i firmware
# 輸出:Direct firmware load for bnxt/bnxt-1.10.0.fw failed with error -2
sudo apt install linux-firmware          # Debian/Ubuntu
sudo dnf install linux-firmware          # Fedora/RHEL
# 或從 linux-firmware.git 手動放入 /lib/firmware/

虛擬機特殊情況

  • VirtIO 網卡:需內核 virtio_net、virtio_pci,現代發行版默認包含。
  • VMware vmxnet3:需 vmxnet3 模組,安裝 open-vm-tools。
  • Hyper-V:需 hv_netvsc,安裝 linux-tools-virtual / hyperv-daemons。

總結檢查清單

  1. lspci -nn 確認硬件存在並獲取 PCI ID。
  2. lspci -nnk 查看當前驅動與可用模組。
  3. 優先升級內核(HWE/backports/最新穩定版)。
  4. 次選安裝廠商 DKMS 驅動(Realtek 必做)。
  5. 檢查 linux-firmware 包是否安裝。
  6. 禁用衝突舊驅動,更新 initramfs,驗證 ethtool -i。

按此流程,99% 「Linux 識別不到網卡」問題可在 10 分鐘內解決。

Copyright © Windows教程網 All Rights Reserved