GL-MT6000 CSI 实验日志:10 月跑了什么、失败了什么

作者 Wu Jun · 更新于 2026-10-31 · Wi-Fi CSI, 实验日志, GL-MT6000, MT7986, OpenWrt · 约 9 分钟

这份日志记录 Router CSI Lab 在 2026 年 10 月的真实实验过程:如何建立可回退镜像、第一次拿到 CSI、 怎样验收 10 分钟抓包、遇到哪些性能故障,以及最后怎样把数据整理成可公开、可校验的数据集。 它不是“成功学教程”,而是一份可以对照复现的工程记录。所有数字均来自项目内实测, 采集数据、脚本和 DOI 已公开 [1] [2] [3]。

实验目标与设备

目标很明确:在消费级路由器上拿到稳定、可长期运行的 Wi-Fi CSI,并验证它是否能支撑后续的感知实验。

GL-MT6000 正面实拍(本项目一手照片)

日志中实际使用的零售版 GL-MT6000。照片只能证明硬件来源;CSI 结论仍必须由下方引用的原始抓包、 解析器与命令验证。

先把“回退”做出来

刷机成功不等于实验可维护。构建阶段同时准备了三条证据链:

  1. 以社区 CSI OpenWrt 分支和当前 mt76 上游为代码来源 [4] [5];
  2. 对最终镜像做解包预检,确认 mt7915e 含 CSI 符号,镜像内有 daemon、初始化脚本和 LuCI;
  3. 单独保存 GL.iNet 官方回退固件并重新计算哈希,而不是只记下载 URL [6]。

刷机时不保留原厂配置,避免把 LAN、WAN、无线接口和防火墙配置跨系统带入。预检项目、镜像结构与 回退步骤见 GL-MT6000 刷机前校验。

时间线

日期 发生了什么
2026-10-10 完成第一次 10 分钟连续采集:57,293 条记录、600 秒、平均 95.5 条/秒、无大于 5 秒的空档
2026-10-11 整理采集/分析脚本,站点与首批复现教程上线
2026-10-13 对发送端 MAC 做脱敏(57,293 处 → 0),重新分片并生成 manifest 与 SHA-256
2026-10-17 数据集发布到 Zenodo,获得 DOI 10.5281/zenodo.23434789
2026-10-29 完成站点结构与内容整改(作者信息、数据集页、工具页、实验日志)
2026-10-31 将已脱敏的 15 秒真机来源短片、双语字幕和文字稿接入本页素材说明

第一次看到 CSI,不等于采集已经合格

首次端到端测试只跑 60 秒,目标是确认“设备、驱动、固件、抓包主机”四层确实连通,而不是立刻做感知算法。 当次得到 2,777 条 CSI 链记录,全部是 256 子载波、完整 I/Q,说明 MT7986 新固件与 mt76 CSI 路径已经在 真实路由器上跑通。

随后才进行 600 秒连续采集。验收结果如下:

指标 实测值 为什么必须记录
外层链记录 57,293 它是一次抓包的总行数,不是独立时间采样数
抓包时长 599.924 秒 用真实时间戳计算,不用文件名或预期时长代替
平均链记录率 95.5 条/秒 8 条链可能属于同一测量,不能直接当 95.5Hz
完整测量组 7,609 按 chain_info bit15 闭合
链数组成 6,714 个八链组、895 个四链组、1 个单链组 真实抓包并不总是整齐的 8 链
独立测量率 约 12.68 组/秒 感知算法真正可用的时间采样率量级
过滤后分析组 7,583 组 / 约 12.64 组/秒 再剔除 25 个零值占比异常组
子载波完整性 57,289 条 256 子载波 + 4 条 64 子载波 异常格式必须显式计数
最大时间空档 2.373 秒 长空档会影响频谱、呼吸和多普勒结论
超过 5 秒的空档 0 这是本次 10 分钟采集的稳定性验收线
RSSI / SNR 均值 -31.3 dB / 53.29 dB 只能描述该次链路条件,不能外推到其他房间

这也是项目后来专门做抓包质量审计和 长空档频谱敏感性分析的原因:热图看起来正常,不代表采样轴和链分组正确。

故障注入:daemon 死掉后能不能自己回来

长稳测试不能只看“没有崩”,还要主动制造故障。2026-10-11 的手动演练终止了 CSI daemon:

watchdog 还会检查 daemon 进程、CSI 接口和 debugfs 使能状态。没有客户端时帧数为 0 不能被误判为故障, 因为 CSI 只有在关联客户端和有效流量存在时才会产生测量。

实拍素材来源与隐私审查

开箱照片和视频只作为设备来源证据,不作为测量结果。它们可以证明这里确实使用了一台零售版设备, 也能帮助读者辨认接口;但它们不能证明子载波数量、采样率、丢包率或感知准确率。

原始素材包含精确位置元数据、私人桌面、手部、普通家庭物品,以及一张设备铭牌近照。铭牌画面同时出现 二维码、MAC、序列号和默认 Wi-Fi 信息,因此整张排除;只模糊一个字段或在二维码周围做很窄的裁切, 仍然不足以消除设备身份风险。

原始素材 处理决定 公开派生文件
8 分 50 秒竖屏开箱视频 原片不公开;只使用两段经过裁切、静音的短画面 15 秒 H.264 短片,480 × 480,无音轨、无 GPS/EXIF
背部接口近照 旋转并裁掉铭牌、杂物区域 复现教程中的 gl-mt6000-rear-ports.jpg
设备铭牌近照 高风险:二维码、MAC、序列号、默认 Wi-Fi 不公开
3 分 45 秒横屏细节视频 信息密度低,且出现私人桌面 不公开
手持接线照片 桌面杂乱,接口信息与现有图片重复 不使用
15 秒无声短片:零售包装、主机、四根天线和线缆。它只证明设备来源,不证明 CSI 采集或算法结果。
短片文字稿

0:00–0:03 打开外箱,露出 GL.iNet Flint 2 零售包装。0:03–0:07 展示包装正面与 GL-MT6000 型号标识。 0:07–0:12 取出主机,展开四根可调天线。0:12–0:15 查看盒内线缆。

公开的安全版图片经过重新编码,避免相机型号与位置元数据随文件进入站点。 短片只放在本页的素材来源说明中,不放进核心复现教程,也不自动播放:它无法证明 CSI 结果,却会增加与技术步骤无关的媒体负担。 播放器首先只加载海报和媒体元数据,视频正文由读者点击后加载;中英双语字幕与完整文字稿同时提供。 原始文件始终留在 Git 版本库之外。

这项审查本身也是证据链的一部分,而不是装饰。读者可以把公开照片与硬件表对照,再用公开校验值和解析器 核验抓包。下面保留失败实验同样是这个原则:可信的实验日志既要写成功,也要写没有走通的路径。

“WAN 只有 100 兆”其实找错了链路

刷机后最初怀疑 WAN 从千兆降到百兆。实际读取结果:

这条排查链说明:“测速慢”至少要先拆成 WAN 协商、路由转发、LAN 链路、无线 PHY、客户端省电和空口占用六层。 完整命令、字节对账与实验矩阵见 CSI 上线后 Wi-Fi 变慢。

两个真实踩到的坑

坑 1:固件 ATF 让速率回不来

现象:客户端空闲一段时间后,下行被钉在 MCS0,持续下载也恢复不了;其他客户端看起来正常。

定位:先用“路由器本机下载、LAN 下载、AP 发送字节对客户端接收字节”排除宽带和重传风暴,再检查 mt76 debugfs。相同客户端、相同信道下做了前后对照:

vow_atf 空闲后 6 次下载(Mbps) 观察
1(固件默认) 9.5 / 7.3 / 9.5 / 7.4 / 9.6 / 7.2 连续 36 秒满载也不恢复
0 7.8 / 8.8 / 20 / 146 / 387 / 393 约 15–20 秒逐步爬回
0 + 重新关联 369 / 374 / 376 / 390 / 409 / 397 6/6 直接恢复到约 400Mbps

结论:这是固件层的速率恢复问题,不是信号差,也不是客户端故障。修复需要开机脚本 + watchdog 持久化, 因为 debugfs 在驱动重载后会复位。

坑 2:80MHz BSS 里的 40MHz 客户端

现象:某个只协商 40MHz 的客户端在 80MHz BSS 中周期性塌陷;其他 80MHz 客户端正常。

定位:把射频切到 HE40 后,同一客户端连续 6 次下载为 384 / 375 / 328 / 416 / 411 / 419Mbps,塌陷消失;切回 HE80 后又出现 7–10Mbps。

结论:这是“40MHz 老客户端 + 80MHz BSS”的触发组合,而不是某个 SSID 单独损坏。可以把射频切到客户端 原生宽度,或把老客户端隔离到独立射频。由于没有继续读取固件内部速率控制状态,本文不把结论进一步 归因到具体寄存器。

被实验排除的假设

假设 对照实验 结果
CSI 抓包本身拖慢无线 关闭 CSI 的 2.4GHz 仍复现 排除为唯一原因
AQL 导致 关闭 aql_enable 后仍塌陷 排除
U-APSD 导致 短期一度正常,后续 VHT80 复现 不是根治项
HE 与老网卡不兼容 改成 VHT80 仍塌陷 排除协议名本身
上行也受限 Mac 上行约 188Mbps,AP 接收速率正常 问题主要在下行
所有客户端都受影响 80MHz 手机持续稳定 与 40MHz 特定客户端相关

数据是怎么变成数据集的

  1. 原始抓包先做 MAC 脱敏:只改写 payload 里的发送端 MAC,时间戳、RSSI 与 I/Q 不动;
  2. 按 8 MiB 切成 8 个分片,生成每片与整包的 SHA-256;
  3. 写 REASSEMBLE.md,确保下载者能合并并校验;
  4. 打包分析图与元数据,发布到 Zenodo,采用 CC BY 4.0。

整包 SHA-256 为 527466ceb8b5f835e55ff348f02808736b947db39e7baac1f34e375de146a440。 解析与复现步骤见数据集解析实战。

这批数据能证明什么,不能证明什么

可以支持:

不能单独支持:

公开抓包已完成 MAC 去标识,但仍保留外层绝对时间戳、活动节律和 session 内关联,因此它是伪匿名数据, 不是“无法重新识别的匿名数据”。

最小复现顺序

# 1. 确认分析主机能看到 UDP,不要先跑长任务
tcpdump -ni any udp port 8888

# 2. 先抓 10 秒,检查文件非空和分析摘要
router-csi-toolkit/scripts/csi_capture_session.sh 10

# 3. 10 秒合格后才抓 10 分钟
router-csi-toolkit/scripts/csi_capture_session.sh 600

验收时必须同时保存命令、固件版本、接口、信道、带宽、链记录率、独立测量组率、4/8 链组成和最大空档。 只保存一张“漂亮热图”不足以证明数据可复现。

得到的教训

接下来

参考与数据来源

本文的每条外部结论都标注来源与证据等级(分级标准);标注 E 级的是本项目可复现的实测数据。

  1. E 级 · 本项目实测 本项目 10 分钟实测抓包(57,293 条 / 600.0 s,SHA-256 00373f83…95e2)
    Router CSI Lab · 2026
    okwujun.pw/zh/datasets/ · 核实: 分片重组逐字节校验通过(2026-10-11) · 本地原始母片 SHA-256 为 00373f83…95e2;公开下载的是去标识派生文件,SHA-256 为 527466ce…a440,两者不可混用。
  2. E 级 · 本项目实测 Router CSI Toolkit — 采集/分析/守护脚本(MIT,公开仓库)
    Router CSI Lab · 2026
    github.com/jjjwu/router-csi-toolkit · 核实: GitHub API 于 2026-11-02 核实公开仓库、抓包质量预检、成功 CI 与 v0.1.3 Release;归档 SHA-256 为 59f144c0…adea7 · 公开版含无第三方依赖的抓包质量预检;网页端检查器使用同一容器定义和边界口径。
  3. E 级 · 本项目实测 Router CSI Lab — GL-MT6000 (MT7986) Wi-Fi CSI dataset, 10 s sample + 10 min capture
    Router CSI Lab · 2026
    doi:10.5281/zenodo.23434789 · 核实: CC BY 4.0;SHA-256 已发布;Zenodo DOI 10.5281/zenodo.23434789 · 数据集已获 Zenodo DOI(10.5281/zenodo.23434789),可直接引用。
  4. D 级 · 预印本/百科 ossiemarks/openwrt — feature/csi-mt7915 CSI stack
    ossiemarks
    github.com/ossiemarks/openwrt/commit/aed26e5f95963cd725d9ff097c713af8c24afd35 · 核实: Public commit page fetched 2026-10-29; community project, not peer-reviewed. · 本项目构建所用的社区 OpenWrt CSI 分支。其存在不证明 MT7986 能出帧,后者必须由本项目实机数据验证。
  5. C 级 · 官方资料 openwrt/mt76 — mac80211 driver for MediaTek Wi-Fi chipsets
    OpenWrt project / MediaTek
    github.com/openwrt/mt76 · 核实: GitHub API 2026-10-11 (stars 890, last push 2026-10-08) · 本项目使用的开源 mt76 驱动上游;CSI 能力的补丁正是在这一代码库之上编排。
  6. C 级 · 官方资料 GL.iNet download center — GL-MT6000 firmware
    GL.iNet
    dl.gl-inet.com/router/mt6000/stable · 核实: Official download page fetched 2026-10-29; used only to establish the vendor rollback source, not to claim a checksum without a downloaded file. · GL-MT6000 官方固件下载入口。回退镜像的实际哈希必须对下载文件重新计算。