👁 650

Intel BE200 是 Intel 旗下首款 WiFi 7 (802.11be) M.2 网卡,Linux 下用
iwlwifi-mld驱动。这卡有个坑:5G 频段连有密码的 AP 死活连不上,NetworkManager 不停弹”需要密钥”,密码输多少遍都没用。不止 BE200——笔记本上的 AX210 也一样中招。我在多个 Linux 发行版上都踩到了——Arch、Fedora、Ubuntu 全一样。2.4G 有密码能连,5G 无密码(open)也能连,唯独 5G + WPA 密码不行。换过好几个路由器都一样,说明不是 AP 端的问题。
现象
| 场景 | 能否连接 |
|---|---|
| 2.4G + WPA2 密码 | ✅ 正常 |
| 5G + open(无密码) | ✅ 正常 |
| 5G + WPA2 密码 | ❌ 超时,NM 报”需要密钥” |
关键特征:
- 密码绝对没错——同一密码 2.4G 能连,手机/其他设备 5G 也能连
- 5G 无密码能连——说明射频和 5G 频段本身没问题
- 换路由器也一样——不是某个 AP 的兼容性问题
- NM 反复弹”需要密钥”——密码完全正确,输多少遍都没用
- AX210 也一样——不止 BE200,Intel WiFi 6E/7 系列都受影响
- 路由器没有 WiFi 7 模式——跟 AP 支持无关,是驱动端主动塞 EHT IE
根因
BE200 的 iwlmld 驱动在 5G 频段发出的 association request 帧,与 AP 不兼容。
完整链路:
BE200 → 5G auth (认证) → ✅ 成功(射频和链路层通信正常)
→ association request → ❌ AP 无响应
→ 重试 3 次 → 超时
→ NetworkManager 把 association 超时当成密码错误
→ 弹窗"需要密钥"
为什么 5G 无密码能连、2.4G 有密码也能连:
- 5G 无密码(open):走 open auth,关联流程不同,不需要 4-way handshake 阶段的交互
- 2.4G 有密码:2.4G 频段没有
no IR限制,association 帧格式也兼容 - 5G 有密码(WPA-PSK):association 后还需要 4-way handshake,BE200 的 association request 里带的 IE(可能是 EHT/WiFi 7 相关的)让 AP 固件无法处理,直接不回复
简单说:驱动主动在 association request 里塞了 WiFi 7 (EHT) IE,AP 看不懂,装没看见。
注意:我的路由器根本没有 WiFi 7 模式——是驱动端单方面宣告自己支持 WiFi 7,不管 AP 支不支持都往 association 帧里塞 EHT IE。AP 收到看不懂的 IE 就直接忽略这个关联请求,不回复。所以这不是”路由器不支持 WiFi 7″的问题,是驱动太积极的问题。
解决方案(按优先级)
方案 1:更新内核
新版内核的 iwlmld 驱动可能修复了 5G association 兼容性。
sudo dnf update kernel
# Ubuntu
sudo apt update && sudo apt install linux-generic
# Arch
sudo pacman -Syu linux
我当前内核 6.19.10,7.1.3 有更新可用。先试这个,成本最低。
方案 2:禁用 WiFi 7 (802.11be)
如果更新内核还不行,加载驱动时禁用 WiFi 7,让 BE200 退回 WiFi 6 模式工作:
# 临时测试
sudo modprobe -r iwlmld
sudo modprobe iwlmld disable_11be=1
# 永久生效
echo "options iwlmld disable_11be=1" | sudo tee /etc/modprobe.d/iwlmld.conf
禁用 WiFi 7 后,association request 里不再带 EHT IE,AP 就能正常处理了。代价是失去 WiFi 7 特性(MLO、320MHz 等),但 WiFi 6 (802.11ax) 仍然可用,5G 也能连了。
方案 3:路由器端调整
如果不想动客户端,可以试路由器端:
- 5G 加密改为纯 WPA2-AES——WPA1/2 混合模式 + TKIP 可能跟 BE200 不兼容
- 5G 带宽降一档——从 HT160 改 HT80 或 HT40 试试
- 关闭 802.11be / WiFi 7——如果路由器有这个选项
这个方案治标不治本,换一个路由器又得改一遍。
已做的准备
在排查过程中已经确认的环境:
# GRUB 已加 regdom
# /etc/default/grub:
GRUB_CMDLINE_LINUX="... ieee80211_regdom=CN"
# iwlwifi-mld 固件已更新到最新
ls /lib/firmware/iwlwifi-mld-*
# iwlwifi-mld-b0-fm-c0-89.ucode (20260622)
# 当前内核
uname -r
# 6.19.10
排查过程备忘
如果以上方案都不行,可以手动抓包确认:
# 1. 看当前连接状态
nmcli device wifi list
iw dev wlan0 link
# 2. 开启调试日志
echo 0x1 | sudo tee /sys/module/iwlmld/parameters/debug 2>/dev/null || true
sudo dmesg | grep -iE 'iwl|assoc|auth|be200' | tail -30
# 3. 手动连接看详细日志
sudo iw wlan0 scan | grep -E 'SSID|signal|capability'
nmcli device wifi connect "你的SSID" password "你的密码" --ask
# 4. 看 wpa_supplicant 日志
sudo journalctl -u NetworkManager --since "5 min ago" | grep -iE 'assoc|auth|timeout|key'
典型日志特征:
wlan0: association request to AP timed out
wlan0: deauthenticating from AP by local choice (reason=3)
nm-device-wifi: Activation: (wifi) association took too long
nm-device-wifi: Activation: (wifi) asking for new secrets
“asking for new secrets” 就是 NM 把 association 超时误判为密码错误的铁证。
总结
| 说明 | |
|---|---|
| 问题 | BE200 5G + WPA 密码连不上 |
| 根因 | iwlmld 驱动 5G association 帧带 WiFi 7 IE,AP 不兼容 |
| 误报 | NM 把 association 超时当密码错误 |
| 首选方案 | 更新内核(新驱动可能已修) |
| 保底方案 | disable_11be=1 禁 WiFi 7 |
| 影响范围 | 所有 Linux 发行版 + 所有 5G 有密码 AP |
这不是你密码错了,是驱动跟 AP 说的话 AP 听不懂。
—— godsun.pro · 密码没错,是网卡嘴瓢了
💖 打赏支持
如果这篇文章帮到了你,欢迎打赏支持
微信扫一扫,赞赏支持
发表回复