网卡识别失败需按四层排查:先用lspci或lsusb确认硬件可见性,再查/sys/class/net/接口/driver绑定状态及ethtool驱动信息,接着分析dmesg中firmware缺失、probe失败或acpi错误,最后验证固件版本与secure boot策略影响。

网卡识别失败,十有八九是驱动没加载或根本没被内核认出来。别急着重装系统,按顺序查这四层,基本能准确定位问题出在哪。
先确认硬件是否被系统看见
驱动都没机会加载,前提是内核得先发现这块网卡。用最直接的方式验证:
-
PCIe 网卡:运行
lspci | grep -i ethernet或更精准的lspci -knn | grep -A3 -i net。如果完全没输出,说明 BIOS 可能禁用了网卡(找“LAN Controller”“Network Stack”这类选项),或者物理插槽接触不良、设备损坏。 -
USB 无线网卡:执行
lsusb | grep -i realtek\|atheros\|intel,看芯片型号是否出现。没结果就换 USB 口、换主机试,排除供电或端口兼容问题。 -
关键看字段:在
lspci -vv -s xx:xx.x输出里,留意Kernel driver in use:(当前用的驱动)和Kernel modules:(可用驱动列表)。前者为空、后者有名字,说明驱动没绑上;两者都空,大概率是固件缺失或 Secure Boot 拦截。
再查驱动有没有真正加载
硬件存在 ≠ 驱动就绪。光靠 lsmod 看模块名容易漏掉细节,更可靠的方法是:
- 进设备目录看真实绑定:
ls -l /sys/class/net/enp0s3/device/driver(把enp0s3换成你的接口名)。如果报 “No such file”,说明驱动压根没加载成功,不是名字对不对的问题。 - 用
ethtool -i enp0s3查driver和firmware-version字段。driver 显示r8169却连不上?很可能是 Realtek 新芯片该用r8168闭源驱动;firmware-version 是 “N/A” 或明显老旧,基本就是固件没到位。 - 别只信
ifconfig -a—— 它不告诉你驱动状态。用ip link show看接口是否带LOWER_UP标志,没有就说明链路层没通,根源还在驱动或固件。
紧盯 dmesg,它会说真话
所有驱动加载失败的线索,几乎都藏在 dmesg 里。启动后第一时间跑这句:
-
dmesg | grep -i "firmware\|failed\|error\|probe\|acpi",重点扫三类信息: -
固件缺失:如
firmware: failed to load brcm/bcm43228a1-apsta-132.fw或iwlwifi: no suitable firmware found!—— 直接对应缺哪个文件,去装linux-firmware包就行。 -
驱动 probe 失败:像
e1000e: probe of 0000:02:01.0 failed with error -2,错误码 -2 是 ENOENT(找不到文件),-110 是超时(PHY 通信断了),-16 是设备忙(常因 Secure Boot 拒绝签名)。 -
ACPI 干扰:戴尔/联想本子常见
ACPI: \_SB_.PCI0.RP01._OSC: OS supports [ExtendedConfig],这是 BIOS 缺陷导致 PCIe reset 异常,关掉 Secure Boot 或更新 BIOS 能解。
固件与安全策略是隐形关卡
很多“驱动安装了却无效”的情况,其实是固件或策略挡在前面:
-
固件版本要匹配:BCM943228 要
bcm43228a1-apsta-132.fw,Intel AX210 要iwlwifi-ty-a0-gfw-72.ucode。查/lib/firmware/下有没有对应文件,再用dpkg -s linux-firmware(Debian)或rpm -q linux-firmware(RHEL)确认包版本 ≥20220329。 -
Secure Boot 是沉默杀手:尤其在新主板上,它会拒绝加载未签名的开源驱动(如
brcmsmac、r8168)。临时关掉 Secure Boot 测试,若立刻正常,就得用mokutil手动签名或换支持签名的发行版内核。 - BIOS 设置别忽略:有些主板默认关闭 “Wireless LAN” 或设为 “UEFI Driver Only”,Linux 内核驱动就加载不了。进 BIOS 找 Network Stack、Onboard LAN 这类选项,设为 Enabled 或 Legacy。











