结论(已定位)
病根在 5G 的 11ac/VHT 通路:AX210 固件在跑 VHT 时 assert 崩溃(Device error - SW reset),一崩就把"关联 + DHCP"这个几秒的握手窗口打断,于是在用户侧表现为"5G 连上就断网"。把 5G 限制到 11n(disable_11ac=1)后,关联成功且不再崩溃;进而用四层探针实测(裸 IP / 域名 IPv4 / ping 网关 / ping 公网),5G 与 2.4G 逐项一致,彻底恢复。
实测证据(A/B 对照,同一次开机内、每轮都先重载驱动并核对参数真的生效):
[A: enable_ini=0] 参数经核对已生效;但设备未就绪,5G 没关联上 → 0 崩溃无意义(无效样本)
[B: disable_11ac=1] 参数已生效 → nmcli rc=0 关联成功 → 40s 内 SW reset 新增 0 次 → 拿到 IP 192.168.1.120/24
历史对照(同一 5G 尝试,基线参数): 40s 内崩溃 3 次 + DHCP 超时(rc=4「IP 配置无法保留」)
连通性(A/B 同探针,各两次采样):
2.4G 基线 404 / 200 / 网关 0.81ms / 公网 16.7ms
5G(disable_11ac=1) 404 / 200 / 网关 1.75→1.36ms / 公网 16.6→16.7ms ← 与基线一致
已否证的候选:
d3cold=0(社区同型号修法):基线参数下 5G 载荷中仍崩(新增 3 次)→ 不适用
症状
- 连 5G(cathome5G)能连上,但不久就断网;2.4G(cathome)正常。
- 在线上时 ping 延迟异常(实测 500~1500ms)。
排除项(有证据)
| 嫌疑 | 结论与证据 |
|---|---|
| AP / 路由器 | 排除:5G 已稳定使用多年,多设备正常 |
| 网卡硬件 | 排除:同一台机器的 Win10 连 5G 正常(同一块 AX210) |
| 管制域 / 信道 / 安全方式 | 排除:regdom=CN 已生效;ch48=5240MHz 非 DFS;两频段同为 WPA2 |
| profile 配置 | 排除:无 BSSID 绑定、无手动 IP、band=auto、cloned-mac=permanent |
| 密码 | 排除:由 KWallet 正常提供,已走到 DHCP 阶段 |
| 固件太旧 | 排除:实际加载 ty-a0-gf-a0-89(磁盘上最新),linux-firmware 20260916 |
| D3cold 深度省电态 | 已否证:社区(bazzite #5867,同卡 0x8086:0x2725、同固件 89、同 ini trigger 4)的 udev d3cold_allowed=0 修法,在本机 5G 载荷下仍崩 → 其真实场景是挂起/唤醒 D3hot→D0 失败,与「使用中密集 assert」不同 |
已采用的修法
boot.kernelParams = [ "cfg80211.ieee80211_regdom=CN" ];
boot.extraModprobeConfig = "options iwlwifi power_save=0 bt_coex_active=0 disable_11ax=1 disable_11ac=1";
改完 modprobe 类参数必须重载驱动(不必重启;需 root):
sudo bash -c 'nmcli radio wifi off; modprobe -r iwlmvm iwlwifi; modprobe iwlwifi; nmcli radio wifi on'
for p in power_save bt_coex_active disable_11ax disable_11ac; do echo "$p=$(cat /sys/module/iwlwifi/parameters/$p)"; done
代价:5G 退回 11n 速率(失去 11ac/80MHz)。
诊断命令
# 崩溃计数与现场(关键指标)
journalctl -b -k | grep -c "SW reset"
journalctl -b -k | grep -iE "iwlwifi.*(Device error|SW reset|ini trigger|restart completed)" | tail -20
# 当前连的是 2.4G 还是 5G(FREQ 2412~2484=2.4G,5xxx=5G)
nmcli -t -f ACTIVE,SSID,FREQ,RATE dev wifi | grep "^yes"
# DHCP 是否拿到地址 / 失败原因
nmcli con up <5G的UUID>; ip -4 -br addr show wlp3s0
社区排查与裁决
方法:拿报错原文 + 型号 + 内核/固件版本去搜,再在自己的复现条件下对齐变量验证。
| 社区线索 | 相似度 | 裁决 |
|---|---|---|
bazzite #5867 + 博客《Fixing Intel AX200/AX210 random driver crashes》(D3cold + udev d3cold_allowed=0) | 同卡 ID / 同固件 89 / 同 ini trigger 4 | 否证:5G 载荷下仍崩 |
bugzilla 205109/205061(AX200 SYSASSERT 103C on heavy traffic in 802.11ac;驱动 A-MSDU/fraglist 修复) | 同型:只在 5GHz 11ac 崩,2.4G 无事 | 方向可信(11ac/VHT 通路);旧修复已在树内 |
| bugzilla 213381(AX210 固件崩) | 标题对口 | CLOSED/OBSOLETE,无可用修复 |
| omarchy #13030(AX210 冷启动死掉,Intel IOMMU) | 同卡 | 不适用:该贴自述 AMD 主机不复现,本机为 AMD |
可用渠道:GitHub API、kernel bugzilla CSV 导出、Arch BBS/Wiki 均可达;自建 SearXNG 与 Reddit 在本机 403,换渠道即可。
后续可选(未做)
- 想把 11ac 赚回来:试"保留 11ac 但强制 40MHz 带宽",若仍崩则维持现版。
- 若将来升级内核/固件后想恢复默认:删掉
disable_11ac=1重载即可(可逆)。 - 其它对照手段:换内核版本(7.2.8 vs 6.18.54)只数 5G 载荷下的崩溃频率,可判断是否为驱动回归。
- 若想恢复 11ac:试「保留 11ac 但强制 40MHz 带宽」,或逐项撤掉 power_save/bt_coex/disable_11ax——每次只动一个变量并复测 5G 载荷。