最近折腾小米 AX9000,想用 OpenWrt 实现一个无线中继:一路 5 GHz
连接校园网,另一路 5 GHz 发射自己的
Wi-Fi,手机和电脑统一接到路由器后面。
过程中遇到一个很容易误判的问题:上级校园网已经连上,自己发出的低频
5 GHz Wi-Fi 也能搜到,但设备就是无法连接。
排查资料后,发现 OpenWrt Wiki 记录过 AX9000 低频 5 GHz 的 BDF
问题,症状与这次经历吻合。按照对应方法替换 board-2.bin
并重启后,低频 5 GHz Wi-Fi 恢复正常连接,修复方案已经实测可行。
本文整理这次的排查过程,以及生成
generic-ax9000.tar.gz、备份、替换和恢复 BDF
的完整步骤。这个方法解决了我这台设备的问题;其他设备遇到类似症状时,仍应先检查配置和日志,确认是否属于同一类故障。
想实现的网络结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 校园网 CUP-Secure │ │ 无线回程 ▼ AX9000 高频 5 GHz:STA / Client │ wwan(上级分配地址) │ OpenWrt 路由 / NAT │ lan(自己的局域网) │ AX9000 低频 5 GHz:AP │ ▼ 手机 / 电脑
|
这里采用的是无线 WAN 加 NAT:上行 STA 对应 wwan,加入
wan 防火墙区域;下行 AP 绑定
lan,由路由器给终端分配地址。它的配置思路可参考 OpenWrt
无线客户端文档。
检查时要确认 lan → wan 转发和 WAN 区域的 IPv4
masquerading 已启用,LAN 网段也不能与上级网络重叠。
AX9000 有两路主要的独立 5 GHz 射频,可以分别承担回程和下行
AP。识别时看芯片、频率与可用信道,不要直接套用别人的
radio0、radio1 编号。设备无线硬件信息见 OpenWrt AX9000
设备页。
先弄清楚:到底是哪一步连不上
手机提示“无法加入网络”和“已连接但不能上网”,排查方向不同。
| 现象 |
优先检查 |
| 搜不到 SSID |
Radio 是否启用、AP 是否启动、信道及 DFS 等待状态 |
| 搜得到,但加入失败 |
关联、密钥协商、客户端兼容性、hostapd 和驱动日志 |
| 已连接,一直获取 IP |
AP 绑定的网络、LAN DHCP、地址池 |
| 已获得 LAN IP,但无法上网 |
上行认证、默认路由、DNS、转发与 NAT |
这次的问题偏向第二种。因此,不能一直围绕 DHCP
和校园网出口打转,也不能反过来仅凭一个症状就认定驱动坏了。
用简单配置缩小范围
先把低频 5 GHz AP 调整为便于复现的配置:
| 选项 |
测试值 |
| 模式 |
Access Point |
| 网络 |
lan |
| 国家/地区 |
实际使用地区,在中国大陆填写 CN |
| 信道 |
36,前提是当前地区与设备允许 |
| 带宽 |
HE80 |
| 加密 |
WPA2-PSK / CCMP(AES) |
| 密码 |
已知正确的测试密码,至少 8 位 |
| 802.11r |
关闭 |
| WPA3 混合模式 |
暂时关闭 |
让手机忘记原来的网络后重连,再换一台设备测试。先不引入
HE160、快速漫游等变量;必要时停用上行 STA,单独测试这个 AP。
这些操作只能帮助缩小范围,不能完全排除配置、驱动或硬件的其他问题。
同时观察日志
在路由器 SSH 中执行:
然后在手机上发起连接,观察这一时刻的日志。也可以筛选无线相关信息:
1 2 3 4
| logread | grep -Ei 'hostapd|wpa|ath11k|firmware' dmesg | grep -Ei 'ath11k|firmware|board' wifi status iw dev
|
重点看 AP
是否成功启动、客户端在哪一步失败,以及有无固件加载错误。没有出现
board 报错,也不能单独证明 BDF 没问题。
为什么会查到 board-2.bin
OpenWrt
AX9000 Wiki 的 Potential issues / Limitations
记录过一个历史问题:低频 5 GHz 的 QCN9024 使用特定 BDF
时可能无法连接,给出的 workaround 是更换下面这个文件:
1
| /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin
|
注意两个细节:
- 文档中的问题说明标注的是 2022-12-17 时的
BDF,不能据此断言所有新版本 OpenWrt 都有同样的问题。
- Radio
显示的芯片名称与固件目录名称不一定完全一致。这里应核对实际路径,而不是自行把
QCN9074 改成 QCN9024。
BDF 是 Board Data
File,与板级无线硬件配置有关。本文的替换对象仅为这个文件,不涉及修改
ART、Factory 等设备校准分区。
这次替换 BDF
后恢复连接的结果,与文档描述的修复方向一致。下面记录具体操作;复现时先记录当前版本并备份原文件。
替换前:记录环境并备份
用网线连接 AX9000 的 LAN 口进行操作。
修改无线文件并重启后,无线管理连接可能不可用,恢复时需要有线入口。
在路由器 SSH 中先查看系统和文件信息:
1 2 3
| ubus call system board ls -l /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin readlink -f /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin
|
如果路径不存在,就先核对当前固件的目录布局,不要凭空创建同名文件继续操作。如果它是符号链接,也要记录实际目标,明确覆盖会影响哪个文件。
下面的备份命令每次创建独立目录,避免再次操作时覆盖最初的备份。在同一个
SSH 会话中执行:
1 2 3 4 5 6 7 8 9 10 11 12
| bdf_file='/lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin' bdf_backup=$(mktemp -d /root/bdf-backup.XXXXXX)
if [ -n "$bdf_backup" ] && [ -s "$bdf_file" ]; then cp -L "$bdf_file" "$bdf_backup/board-2.bin.original" && cp /etc/config/wireless "$bdf_backup/wireless.original" && ubus call system board > "$bdf_backup/system-board.json" && sha256sum "$bdf_file" "$bdf_backup/board-2.bin.original" && printf '备份目录:%s\n' "$bdf_backup" else echo '备份条件不满足,请停止操作并检查路径。' fi
|
确认没有报错、两份文件哈希一致,并记下输出的备份目录。再把目录下载到电脑保存;仅保存在路由器上,不能保证重刷后还在。
生成修正版 BDF
下面是本次使用的 generic-ax9000.tar.gz 生成命令,在
Linux 终端中完整执行即可。命令通过 Base64 解码还原压缩包;使用前可对照
设备
Wiki 中的说明。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305
| base64 -d >generic-ax9000.tar.gz <<EOF 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 R3M8hUVcDYuZW27gAt5kNmslaUxPk9tkJvFWJvN31O76FlX8Lu7G1chjIZzRR0hPF7krDdJJ0oaK +0stLkpyOKft5aw9GWCeq80nzyLXhGghxsp9KE2abkedXhF3koPP6tfaE8sZszmlOeclm36LfSTd b/AU11VTGcqc+CIaMm8f0m/1NHNjKKaROyJQU86Rdr/RvehoXuWopiRRbyVD9jBTtLNsJTmXl3D2 nKtIa+h+kls9zk1vrcdI+tWcY5axNcejWKRF5IAO1xfQkuqhiOzgav2Cma2x1pWzWlrrkJfDmQG+ Zr6erwu4Yk6QCpoybzfWbO4MrQzX5k4SXQM9a3JKba6Bo/IN9f4srWPCuVYzybuky8ewAku0lEmD Q+SUWVKVhFlOisr3GmNKIyN5ow531p9QSN/SqnKNOfkrLNUVZg1jKBT5MYJcfpXk0EUbcD3XZWxX YdyHkRsbSWHpgWjGYmO0YNxtY+tq4AE8SH5tzjw9zHIUjlI9DdDdZiSZM5+pxvX8k8mKXlxDn7Pt 9flzZzl7lTkSb8t9f4Hf+82BS0ndhCSxnCjTOKnb8JcxE2L/4zX+FQH3KKi5dWSn4ntS8T2p+P47 +O87/sX7ffPtP7AqWb3fj/7j76fLfuvv//+2589aRd9uaUk7O8nfUqTwxil9eu81Vy7vNfHX/6+W I4f3mi+f91q4sPeaNm3C7ydXS+r5Se6W1POT3C2p58c333zzzTfffPPNN998880333zzzTfffPPN N998880333zzzTfffPPNN998880333zzzTfffPPNN9/+G5bOpEv3p96f6s+93zff/hN7MuusW/7+ 4JNZU97y9wef9H9/MFlb0s5O8rcLF27v+KdOfXuff7stqecnuVtSz09yt6SeH9/+2pb+T+rn9L5+ 9u2/aL5+/t+2pJ2d5G9Xr97e8Q/+Pxt/VUvq+UnultTzk9wtqefHt7+2ZfiT+jmDr599+y+ar5// ty1pZyf5W0zM7R3/TJlu7/NvtyX1/CR3S+r5Se6W1PPzv2a5UChDUrfBN998880333zzzTfffPPN N998880333zzzTffEts/AXbcR7sACAIA EOF
|
生成后,先在电脑上查看压缩包目录:
1
| tar -tzf generic-ax9000.tar.gz
|
在临时目录中提取所需的
board-2.bin,确认它来自预期路径。这里只上传单个目标文件,避免将整个压缩包直接解到路由器根目录。
上传并替换
以下电脑端命令假定 board-2.bin 已放在当前目录,路由器
LAN 地址为 192.168.1.1;按实际地址修改。
1
| scp board-2.bin root@192.168.1.1:/tmp/board-2.bin
|
如果提示缺少 SFTP 服务端,可使用支持传统 SCP 模式的客户端重试:
1
| scp -O board-2.bin root@192.168.1.1:/tmp/board-2.bin
|
在电脑上计算文件哈希;macOS 使用:
1
| shasum -a 256 board-2.bin
|
Linux 可使用 sha256sum board-2.bin。然后在路由器 SSH
中检查:
1 2
| ls -lh /tmp/board-2.bin sha256sum /tmp/board-2.bin
|
两端哈希应一致。哈希比对只能检查传输是否一致,不能证明文件来源可信或适配正确。
确认原文件已备份、目标文件非空且型号匹配后,在路由器上执行:
1 2 3 4 5 6 7 8 9 10
| if [ -s /tmp/board-2.bin ]; then cp /tmp/board-2.bin /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin && chmod 644 /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin && sync && echo '替换完成,请核对哈希后重启。' else echo '新文件不存在或为空,未执行替换。' fi
sha256sum /tmp/board-2.bin /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin
|
确认命令成功、哈希相同后重启:
实测结果与重启后的检查
本次替换 board-2.bin
并重启后,原先能搜到但无法加入的低频 5 GHz Wi-Fi
已能正常连接,确认这一修复方法在我的 AX9000 上可行。
| 项目 |
实测结果 |
| 替换前 |
低频 5 GHz SSID 可见,但终端无法连接 |
| 修复操作 |
替换对应的 board-2.bin 并重启路由器 |
| 替换后 |
终端能够正常连接低频 5 GHz Wi-Fi |
保持替换前的测试配置,用同样的终端重试,按顺序检查:
- 低频 5 GHz AP 是否启动并广播 SSID。
- 手机和电脑是否能完成关联与密钥协商。
- 终端是否获得 LAN 地址,并能访问路由器。
- 上行 STA 是否正常,终端是否能访问外网。
- 使用一段时间后,有无掉线或新的
ath11k 错误。
只有在其他条件基本不变时,更换 BDF
后连接恢复,才能更有把握地把问题指向原文件。仅仅重启后暂时恢复,还不足以排除启动时序等因素。
该 workaround 的设备文档限定低频 Radio 使用
36、40、44、48、52、56、60、64
信道;具体还要服从实际地区限制。先用允许的信道 36 和 HE80
验证,再单独测试更大的带宽。参见 AX9000
Wiki。
出问题时恢复
如果替换后 Radio 无法启动、SSID 消失或连接更不稳定,通过有线 LAN
登录路由器,将下面的目录替换为前面记录的真实备份目录:
1 2 3 4 5 6 7 8 9 10
| bdf_restore='/root/bdf-backup.XXXXXX/board-2.bin.original'
if [ -s "$bdf_restore" ]; then cp "$bdf_restore" /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin && chmod 644 /lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin && sync && echo '原文件已恢复,请核对后重启。' else echo '找不到备份,请先填写真实路径。' fi
|
确认恢复成功后执行 reboot。这一步只恢复
BDF,不会自动还原手动调整过的无线配置。
系统升级后也应重新核对该文件与设备文档,不要默认手动修改会保留,更不要直接把旧
workaround 重新覆盖到新固件上。
这次顺带踩到的两个坑
替换 wpad
前,要先准备好网络和软件包
排查校园网认证时,我还遇到过卸载原来的 wpad
后,路由器失去上网能力的问题。如果无线 STA
是唯一上行,这时再在线安装替代包就会陷入循环。
后续操作应先准备有线管理连接、临时有线上网方式,或者下载好匹配当前固件的软件包及依赖。替换时确认已安装的包、软件源和版本;不要混用不同发行版的
wpad、hostapd-common,也不要盲目照抄一条卸载命令。
企业 Wi-Fi
的认证安全是另一件事
对话里使用的是校园网 PEAP / MSCHAPv2 认证场景。即使暂时能通过“不验证
CA”的配置接入,也应该向学校确认可信 CA
和认证服务器名称,再补全校验。
wpa_supplicant
的配置说明明确指出,不校验服务器证书是不安全的。它与下行 AP 的 BDF
连接故障是两个独立问题,修复其中一个不会自动解决另一个。参见 wpa_supplicant
配置说明。
这次排查最值得记住的是:SSID
能广播,只说明无线工作流程的一部分正常。先区分关联、密钥协商、DHCP
和外网访问,再决定查配置还是查固件,才能少走弯路。