选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2026-05-15
  • 更新:2026-05-22


以下是让 AI 帮忙安装 AI总结的内容,按照这个步骤就能安装网卡驱动。

另外参考 https://neucrack.com/p/582

Linux Wi-Fi 驱动排查与安装指南

这份文档不是某一台机器的操作记录,而是一套更正规的 Linux Wi-Fi 排查和安装流程。

目标是回答下面几个问题:

  • 现在这台电脑为什么没有 Wi‑Fi。
  • 缺的是内核驱动,还是固件,还是只是网络服务没起来。
  • 固件文件名是怎么确定的。
  • 什么时候只需要补固件,什么时候必须装驱动、装 DKMS、或者升级内核。
  • 像 Intel AX/BE 系列这种新网卡,在老系统上应该按什么逻辑处理。

本文默认是在本机直接操作,不讨论 SSH、代理、远程传文件这些问题。

1. 先理解原理

Linux 下 Wi‑Fi 正常工作,一般要经过这几层:

  1. 硬件先被总线识别到。
  2. 内核里要有对应驱动模块。
  3. 驱动模块加载后,要能找到匹配的固件文件。
  4. 固件加载成功后,内核才会创建设备接口,比如 wlan0wlp*wlo*
  5. NetworkManager、wpa_supplicant 之类用户态服务再去扫描和连接热点。

所以“没有 Wi‑Fi”并不一定是“没装驱动”,常见情况有四类:

  • 硬件都没识别到。
  • 识别到了,但内核没有驱动支持。
  • 驱动有了,但缺固件。
  • 驱动和固件都好了,只是接口被屏蔽、没启动或网络服务没起来。

驱动和固件的区别

这两个最容易混淆。

驱动:

  • 是内核模块,比如 iwlwifirtw88mt76brcmfmac
  • 负责让内核知道怎么和网卡通信。
  • 通常来自 Linux 内核本身,或者来自 DKMS/backport 这类额外模块包。

固件:

  • 是驱动加载后再喂给网卡的一段二进制文件。
  • 一般放在 /lib/firmware/ 下面。
  • 对 Intel 来说常见是 iwlwifi-*.ucode*.pnvm 这类文件。
  • 固件不是“替代驱动”,而是“驱动运行时依赖的数据文件”。

所以:

  • 内核没有对应驱动时,只补固件没有用。
  • 驱动有了但缺固件时,只补固件通常就够。

2. 正规排查顺序

建议永远按这个顺序来,不要一上来就盲目下载一堆东西。

第一步:先保证临时联网能力

如果本机当前没有网络,先准备一个临时联网手段:

  • 有线网。
  • 手机 USB 共享网络。
  • 另一块可用 USB 网卡。

这一步只是为了后续安装内核包、固件包或 DKMS 包。

第二步:确认系统版本和内核版本

  1. uname -r
  2. cat /etc/os-release

这一步非常重要,因为很多问题其实是“网卡太新,系统太老”。

例如:

  • Intel BE200 在 Ubuntu 20.04 这类较老系统上,很可能同时缺“驱动支持”和“新固件”。
  • Intel AX201/AX211/BE200 这类新卡,经常要求更高版本的内核和 linux-firmware

第三步:确认硬件型号

PCIe 网卡看:

  1. lspci -nnk | grep -A3 -Ei "network|wireless|wifi"

USB 网卡看:

  1. lsusb

你要拿到的信息是:

  • 厂商和型号,比如 Intel BE200、AX200、Realtek 8852BE、MT7921。
  • PCI/USB ID,比如 8086:272b0bda:b852 之类。
  • Kernel driver in useKernel modules 是什么。

如果怀疑驱动模块根本不存在,可以再查两步:

  1. modinfo iwlwifi 2>/dev/null | head
  2. modinfo rtw88 2>/dev/null | head

或者直接尝试:

  1. sudo modprobe iwlwifi

如果 modinfo 查不到,或者 modprobe 明确提示模块不存在,这就更像是“当前内核没有这个驱动”,而不是单纯缺固件。

例如 Intel 常见会看到:

  1. Kernel modules: iwlwifi

如果这里完全看不到无线网卡,先不要谈驱动安装,应该优先检查:

  • BIOS/UEFI 里无线设备是否被关闭。
  • 硬件是否损坏或没接好。
  • M.2 网卡是否被系统屏蔽。

第四步:看接口有没有出来

  1. ip -br link
  2. nmcli dev status

如果驱动和固件正常,通常会出现:

  • wlan0
  • wlp2s0
  • wlo1

这类无线接口。

如果 lspci 看到了网卡,但这里没有无线接口,就继续往下查内核日志。

第五步:确认是不是被屏蔽

  1. rfkill list all

如果看到:

  • Soft blocked: yes
  • Hard blocked: yes

说明未必是驱动问题,也可能是:

  • 飞行模式。
  • BIOS 禁用了无线。
  • 机身无线开关关闭。

第六步:看内核日志,这是最关键的一步

  1. sudo dmesg | grep -Ei "wifi|wlan|iwlwifi|rtl|rtw|ath|brcm|mt76|firmware" | tail -n 200

你要重点看下面几类信息。

情况 A:缺固件

典型日志类似:

  1. Direct firmware load for iwlwifi-bz-b0-hr-b0-100.ucode failed with error -2
  2. no suitable firmware found

这说明:

  • 驱动已经开始工作了。
  • 驱动明确告诉你它要找哪个固件文件。
  • 这时优先补固件,而不是重新找驱动。

情况 B:驱动模块不存在或不支持这张卡

典型表现是:

  • lspci 看到设备。
  • Kernel driver in use 没有对应驱动。
  • modprobe 某驱动 失败。
  • dmesg 没有进入正常初始化流程。

这通常说明是内核版本太老,或者需要额外 DKMS/backport 模块。

情况 C:驱动和固件都正常,但设备还是起不来

例如:

  • 接口已经出现。
  • rfkill 也没屏蔽。
  • 但是扫不到热点或无法连接。

这时已经不是“驱动安装”问题,应该转去查:

  • 天线。
  • 路由器兼容性。
  • 区域码。
  • NetworkManagerwpa_supplicant

3. 固件文件名是怎么来的

这个问题需要单独说明。

最正规的来源有三个,优先级如下。

来源 1:dmesg 直接报错

这是最准确的来源。

比如日志写:

  1. Direct firmware load for iwlwifi-bz-b0-hr-b0-100.ucode failed

那就说明当前驱动正在找这个文件。

如果还伴随:

  1. Direct firmware load for iwlwifi-bz-b0-hr-b0.pnvm failed

那就说明除了 ucode 还需要 pnvm

来源 2:modinfo 查看驱动声明的固件依赖

  1. modinfo iwlwifi | grep '^firmware:'

这一步能看到驱动支持的一批固件名,但通常比较多。

作用是:

  • 帮你确认驱动家族在找什么命名模式。
  • 辅助判断是不是确实缺 iwlwifi 这组固件。

但真正“当前这张卡到底缺哪一个”,还是以 dmesg 为准。

来源 3:上游固件仓库和发行版固件包

Linux 固件通常来自:

  • 发行版的 linux-firmware 包。
  • 上游 linux-firmware 仓库。

Intel 的固件一般在上游仓库的 intel/iwlwifi/ 目录里。

所以完整逻辑是:

  1. 先从 dmesg 确认缺哪个文件名。
  2. 再去发行版固件包或上游仓库里找这个文件。
  3. 找到了就安装到 /lib/firmware/

而不是一开始就盲目复制整目录。

4. 到底要不要安装“驱动”

这个判断要严格区分,不然很容易装错。

只需要补固件的情况

满足下面特征时,通常只补固件:

  • 网卡已经被识别到。
  • 对应驱动模块已经存在,比如 iwlwifi
  • dmesg 明确报某个固件文件缺失。

这种情况常见于:

  • 你装了较新的内核。
  • 但系统里的 linux-firmware 包比较旧。

必须补驱动、DKMS 或升级内核的情况

满足下面特征时,通常不只是补固件:

  • 网卡型号太新。
  • 当前内核没有这个设备 ID 的支持。
  • Kernel driver in use 为空,或者驱动根本加载不了。
  • 老系统的内核版本明显过低。

这种情况更正规、优先级更高的解决方案是:

  1. 升级到更新的发行版。
  2. 或安装更高版本内核/HWE 内核。
  3. 仍不够时,再考虑 DKMS/backport。

DKMS/backport 不应当是第一选择,而应当是“系统不方便升级,但确实需要新网卡支持”时的补救方案。

4.1 驱动和固件应该去哪里找

这件事最好也按正规优先级来。

驱动来源的优先顺序

  1. 当前发行版自带内核。
  2. 发行版提供的更新内核或 HWE 内核。
  3. 发行版官方仓库提供的 DKMS/backport 包。
  4. 厂商或项目方明确维护的外部驱动。

对 Intel 来说,优先逻辑通常是:

  • 先看当前内核是否已经自带 iwlwifi
  • 不够新时先升级内核或系统。
  • 仍然不够时,再考虑 backport-iwlwifi-dkms

Intel 官方页面更适合用来确认支持情况、参考版本要求和阅读说明;真正安装时,优先还是走发行版的内核和包管理系统。

固件来源的优先顺序

  1. 发行版自己的 linux-firmware 包。
  2. 上游 linux-firmware 仓库中对应文件。

固件尽量不要从来历不明的博客附件、网盘或第三方压缩包里拿。

如果博客文章提供了思路,可以参考思路,但文件本身最好回到:

  • 发行版官方仓库。
  • 上游 linux-firmware 仓库。
  • 厂商官方说明页。

5. Intel 网卡的正规处理方式

Intel 是最典型的一类,因为它经常同时涉及 iwlwifi 驱动和 iwlwifi-*.ucode 固件。

情况 1:老内核 + 新 Intel 网卡

例如:

  • Ubuntu 20.04
  • 网卡是 BE200

这时高概率同时存在两个问题:

  • 内核里的 iwlwifi 太老,不认这张卡,或者支持不完整。
  • 固件包太旧,没有对应 iwlwifi-*.ucode

这时正确顺序是:

  1. 先确认内核是否已经支持该网卡。
  2. 如果内核不支持,优先升级内核或系统。
  3. 只有在不能升级系统时,才考虑 backport-iwlwifi-dkms 之类的兼容包。
  4. 驱动问题解决后,再补齐新固件。

情况 2:内核已经支持,但缺少新固件

这时常见表现是:

  • iwlwifi 已经开始初始化。
  • 日志里直接报 iwlwifi-xxx.ucode 缺失。

这种情况通常不需要额外装 DKMS,只要补对应固件文件。

6. 从头执行的一套标准流程

下面给出一套更标准的执行模板。

6.1 基础环境准备

  1. sudo apt update
  2. sudo apt upgrade -y
  3. sudo apt install -y build-essential pciutils usbutils rfkill network-manager linux-firmware

说明:

  • upgrade 要么不做,要做就完整做完,不要中途打断。
  • linux-firmware 是标准固件包,应该先保证系统自带的它是最新可用版本。

6.2 识别硬件和当前状态

  1. uname -r
  2. cat /etc/os-release
  3. lspci -nnk | grep -A3 -Ei "network|wireless|wifi"
  4. lsusb
  5. ip -br link
  6. nmcli dev status
  7. rfkill list all

6.3 看内核日志决定走哪条分支

  1. sudo dmesg | grep -Ei "wifi|wlan|iwlwifi|rtl|rtw|ath|brcm|mt76|firmware" | tail -n 200

然后分情况处理。

7. 分支处理

分支 A:设备没被识别到

先检查:

  • BIOS/UEFI 无线开关。
  • M.2 网卡接触。
  • USB 网卡是否损坏。

这时不要先折腾固件和 DKMS。

分支 B:设备识别到了,驱动也在,但缺固件

这时流程是:

  1. dmesg 记下缺失的固件文件名。
  2. 先确认系统仓库里的 linux-firmware 是否已经足够新。
  3. 如果系统包没有,再去上游 linux-firmware 仓库找对应文件。
  4. 把文件放进 /lib/firmware/
  5. 重载驱动或重启。

例如 Intel:

  1. sudo cp iwlwifi-xxx.ucode /lib/firmware/
  2. sudo cp iwlwifi-xxx.pnvm /lib/firmware/
  3. sudo modprobe -r iwlmvm iwlwifi || true
  4. sudo modprobe iwlwifi

然后验证:

  1. ip -br link
  2. nmcli dev status
  3. nmcli dev wifi list

分支 C:设备识别到了,但当前内核没有合适驱动

这时优先级是:

  1. 升级系统。
  2. 或安装更新的内核/HWE 内核。
  3. 最后才是安装 DKMS/backport。

对于 Intel 老系统兼容,backport-iwlwifi-dkms 可以作为方案,但它的定位是:

  • 给旧系统补较新的 Intel 无线驱动。
  • 不是所有机器都必须装。

安装前要确认:

  • 你的系统版本是否有对应构建包。
  • 当前内核头文件是否已安装。

常用准备:

  1. sudo apt install -y dkms linux-headers-$(uname -r)

装完对应 deb 后:

  1. sudo dpkg -i your-backport-iwlwifi-dkms.deb
  2. sudo apt --fix-broken install

之后再重启或重载模块。

8. 你的 BE200 经验,哪些是对的,哪些该规范化

你之前那份经验整体方向是对的,但可以整理得更正规一些。

对的地方

  • 先想办法临时联网。
  • apt update,保证基础环境完整。
  • 知道旧系统上 BE200 很可能需要额外驱动支持。
  • 知道 Intel 网卡还依赖 iwlwifi 固件。

不够正规的地方

1. 直接把 linux-firmware/intel/iwlwifi/* 整个复制进去

这能救急,但不是最规范的做法。

更正规的方式是:

  • 先从 dmesg 明确缺的是哪些文件。
  • 再补对应文件。

整目录复制的问题是:

  • 你并不知道真正需要的是哪几个文件。
  • 可能引入过多不相关文件。
  • 排障记录不够可解释。

不过如果是临时恢复机器,且明确就在 iwlwifi 家族里,这种做法可以作为应急方案,不算离谱,只是不够精确。

2. 没先明确“到底是缺驱动还是缺固件”

BE200 在老系统上最关键的问题,往往不是单纯缺固件,而是:

  • 内核驱动本身太老。
  • 即便固件齐了,旧驱动也可能认不全新设备。

所以更正规的是先判定:

  • 当前内核是否支持这张卡。
  • 如果不支持,优先升级内核或装 backport/DKMS。
  • 再处理固件。

3. backport-iwlwifi-dkms 是兼容手段,不是默认答案

它在旧系统上确实常用,但逻辑上应当放在:

  • “当前系统不方便升级”
  • “而网卡又太新”

这种场景下使用。

更标准的路线永远还是:

  • 新系统 + 新内核 + 新版 linux-firmware

9. 一个更推荐的 Intel/BE200 处理模板

如果今天你拿到一台旧系统机器,Wi‑Fi 网卡是 Intel BE200,可以按下面逻辑执行。

步骤 1:确认系统和内核是否过老

  1. uname -r
  2. cat /etc/os-release

如果是 Ubuntu 20.04、内核又比较老,那就先假设:

  • 可能缺驱动支持。
  • 也可能缺固件。

步骤 2:确认硬件已被识别

  1. lspci -nnk | grep -A3 -Ei "network|wireless|wifi"

步骤 3:确认当前有没有无线接口

  1. ip -br link
  2. nmcli dev status
  3. rfkill list all

步骤 4:看 dmesg

  1. sudo dmesg | grep -Ei "iwlwifi|firmware|wifi" | tail -n 200

步骤 5:做判断

如果看到明确缺固件文件:

  • 补固件。

如果根本没有正常进入 iwlwifi 初始化,或者设备太新不被当前内核识别:

  • 优先升级内核或系统。
  • 升不了再用 backport-iwlwifi-dkms

步骤 6:补固件后重载驱动或重启

  1. sudo modprobe -r iwlmvm iwlwifi || true
  2. sudo modprobe iwlwifi

步骤 7:最终验证

  1. ip -br link
  2. nmcli dev status
  3. nmcli dev wifi list

10. 最后总结成一句话

正规逻辑不是“没 Wi‑Fi 就去找驱动包”,而是:

  1. 先确认硬件有没有被识别。
  2. 再确认内核有没有驱动支持。
  3. 再确认驱动是不是缺固件。
  4. 固件文件名优先从 dmesg 来。
  5. 只有当内核太老不支持新网卡时,才需要 DKMS/backport 或升级内核。

对于 Intel AX/BE 系列尤其如此:

  • iwlwifi 是驱动。
  • iwlwifi-*.ucode / *.pnvm 是固件。
  • 新卡在老系统上,经常是“驱动支持 + 固件版本”两个问题同时存在。

按这个顺序排查,基本就不会走偏。

文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-g8elvl.jpg