电脑信息
项目 详情
型号 Lenovo 小新 Pro 16c IAH10 (XiaoXinPro-16c-IAH10)
系统 Ubuntu 22.04.5 LTS (Jammy)
内核 6.12.95-061295-generic(自行升级的主线内核)
网卡 Intel Wi-Fi 6 AX201 160MHz (8086:7740)
声卡 Intel Arrow Lake Audio (8086:7728),Conexant SN6140 解码器
通用根因
两个问题本质相同:新内核的驱动需要新版固件,但 Ubuntu 22.04 的固件包太旧。
┌────────────────────────────────────────────────────┐
│ Ubuntu 22.04 LTS (2022.04 发布) │
│ ├── linux-firmware → 2022.03 版本 │
│ ├── firmware-sof-signed → 2.0 (2022 年) │
│ └── 内核 6.12 (2024.12) │
│ ├── iwlwifi 需要 API v90+ 固件 → 缺失! │
│ └── SOF 需要 Arrow Lake 固件 → 缺失! │
└────────────────────────────────────────────────────┘
一、WiFi 修复:Intel AX201 固件缺失 (bz-b0-hr-b0)
故障现象
系统只有有线网卡 (enx0a10d7dd5f41),完全没有 WiFi 接口
nmcli device status 看不到任何 wlan0 / wlp* 设备
ip link show 无无线网卡
rfkill list 显示 ideapad_wlan 未被软/硬屏蔽
排查过程
确认硬件存在
$ lspci -nn -s 00:14.3
00:14.3 Network controller [0280]: Intel Corporation Device [8086:7740]
设备存在,PCI ID 为 8086:7740。检查驱动状态
$ lsmod | grep iwlwifi
iwlwifi 647168 0 # ← 0 users,驱动没有绑定到设备
cfg80211 1413120 1 iwlwifi
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enx0a10d7dd5f41 ethernet 已连接 有线连接 1
lo loopback 未托管 –
没有任何 WiFi 设备
iwlwifi 模块已加载但未被任何设备使用 — 驱动识别了设备但固件加载失败后退出了。
- 查看内核日志(关键!)
$ cat /var/log/syslog | grep iwl
输出关键信息:
iwlwifi 0000:00:14.3: Detected Intel® Wi-Fi 6 AX201 160MHz
iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-bz-b0-hr-b0-93.ucode failed with error -2
iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-bz-b0-hr-b0-92.ucode failed with error -2
iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-bz-b0-hr-b0-91.ucode failed with error -2
iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-bz-b0-hr-b0-90.ucode failed with error -2
iwlwifi 0000:00:14.3: no suitable firmware found!
iwlwifi 0000:00:14.3: minimum version required: iwlwifi-bz-b0-hr-b0-90
iwlwifi 0000:00:14.3: maximum version supported: iwlwifi-bz-b0-hr-b0-93
iwlwifi 0000:00:14.3: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
驱动需要 bz-b0-hr-b0 固件 API 版本 v90-v93
内核按 93→92→91→90 顺序尝试加载,全部失败(error -2 = 文件不存在)
4. 确认本地固件缺失
$ ls /lib/firmware/iwlwifi-bz*
iwlwifi-bz-b0-fm-c0-92.ucode iwlwifi-bz-b0-fm-c0.pnvm
iwlwifi-bz-b0-fm-c0-94.ucode iwlwifi-bz-b0-gf-a0-92.ucode
iwlwifi-bz-b0-fm-c0-96.ucode iwlwifi-bz-b0-gf-a0-94.ucode
iwlwifi-bz-b0-gf-a0-96.ucode
iwlwifi-bz-b0-gf-a0.pnvm
系统只有 fm-c0(FM Radio)和 gf-a0(Gale Force)变体固件,缺少 hr-b0(Harrison Peak)变体。
$ apt-cache policy linux-firmware
已安装:20220329.git681281e4-0ubuntu3.42 # 2022 年 3 月版本,太旧
5. 尝试过的失败方案
方案 结果 原因
git clone linux-firmware.git ❌ 超时 kernel.org 在国内极慢,100s 仅下载 280KB,总量 >1GB
curl kernel.org /plain/ 端点 ❌ 404 git.kernel.org 的 cgit 不给二进制固件文件返回 200
curl GitHub 镜像 ❌ 无法访问 github.com 无响应
Symlink gf-a0→hr-b0 ❌ 超时 Failed to start RT ucode: -110 (ETIMEDOUT),RF 模块硬件不兼容
6. 成功方案
从 Debian testing 下载 firmware-iwlwifi 包(仅 23MB,Tsighua 镜像速度快):
下载
curl -L “https://mirrors.tuna.tsinghua.edu.cn/debian/pool/non-free-firmware/f/firmware-nonfree/firmware-iwlwifi_20260519-1_all.deb”
-o /tmp/firmware-iwlwifi.deb
提取
dpkg-deb -x /tmp/firmware-iwlwifi.deb /tmp/fw-extract/
安装正确变体 + 版本的固件
sudo cp /tmp/fw-extract/usr/lib/firmware/intel/iwlwifi/iwlwifi-bz-b0-hr-b0-93.ucode /lib/firmware/
sudo cp /tmp/fw-extract/usr/lib/firmware/intel/iwlwifi/iwlwifi-bz-b0-hr-b0.pnvm /lib/firmware/
重载驱动
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
修复验证
$ dmesg | grep iwl | tail -10
iwlwifi: loaded firmware version 93.26a2cb89.0 bz-b0-hr-b0-93.ucode op_mode iwlmvm
iwlwifi: Detected RF HR B3, rfid=0x10a100
iwlwifi: base HW address: f8:cf:52:bc:41:ed
wlp0s20f3: renamed from wlan0
iwlwifi: Registered PHC clock: iwlwifi-PTP, with index: 0
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enx0a10d7dd5f41 ethernet 已连接 有线连接 1
wlp0s20f3 wifi 已断开 – # ← WiFi 接口出现!
p2p-dev-wlp0s20f3 wifi-p2p 已断开 –
lo loopback 未托管 –
WiFi 根因分析
┌─────────────────────────────────────────────────────┐
│ Intel AX201 网卡有 3 种 RF 模块变体: │
│ │
│ FM (FM Radio) → iwlwifi-bz-b0-fm-c0-.ucode │
│ GF (Gale Force) → iwlwifi-bz-b0-gf-a0-.ucode │
│ HR (Harrison Peak) → iwlwifi-bz-b0-hr-b0-.ucode ← 这台机器 │
│ │
│ 不同 RF 变体固件互不兼容(硬件射频前端不同) │
└─────────────────────────────────────────────────────┘
层级 问题
直接原因 硬盘上没有 iwlwifi-bz-b0-hr-b0-.ucode 固件文件
为什么其它 AX201 机器没问题 大多数 AX201 使用 FM 或 GF 射频模块,Ubuntu 22.04 的 linux-firmware 包含这些变体,但没包含 HR 变体
根本原因 自行升级的 6.12 主线内核需要新版固件(API v90+),Ubuntu 22.04 官方 linux-firmware 包版本为 2022 年 3 月,太旧且缺 HR 变体
WiFi 固件命名规则解读
以 iwlwifi-bz-b0-hr-b0-93.ucode 为例:
字段 含义
iwlwifi Intel WiFi 固件前缀
bz 平台代号:Bz (Bazaar),对应 AX201/AX211 系列
b0 硅晶片步进版本 B0
hr RF 射频模块类型:HR = Harrison Peak
b0 RF 模块步进版本 B0
93 固件 API 版本号