Nexmon CSI 上手指南:树莓派 80MHz / 256 子载波

2026-10-11 · 约 2 分钟

Nexmon CSI 由 SEEMOO Lab(TU Darmstadt,seemoo-lab/nexmon_csi)维护 [1],通过给 Broadcom 网卡打固件补丁来输出 CSI, 在树莓派 3B+/4/5 等设备上可以拿到 80MHz / 256 子载波,是学术界最常用的采集方案之一。

1. 支持情况(以官方列表为准)

平台 芯片 典型能力
树莓派 3B+ / 4 / 5(部分型号) BCM43455c0 5GHz 80MHz / 256 子载波
部分 Android 手机(Nexus 5 等) BCM4358 / BCM4339 20–80MHz
部分路由器(华硕等) BCM4366c0 80MHz

关键前提:必须能被 Nexmon 打补丁的固件版本 + 对应内核。型号、固件版本不匹配会直接失败, 动手前先去官方仓库核对支持矩阵。

2. 在树莓派上跑通的典型步骤

# 1) 准备:Raspberry Pi OS (32/64-bit) + 官方支持的 Pi 型号
# 2) 安装 Nexmon 补丁工具链(官方 install 脚本)
git clone https://github.com/seemoo-lab/nexmon.git
cd nexmon && source setup_env.sh && make

# 3) 构建并安装 CSI 固件(nexmon_csi)
cd patches/bcm43455c0/7_45_189 && make
cd ../../.. && make install  # 具体以官方 README 为准

# 4) 让网卡进入 CSI 采集模式(信道/带宽/子载波配置)
#    官方提供了 nexutil 工具与示例命令

采集侧常用 csiread / CSIKit 解析(本项目对比过两者的解析速度与生态)。

3. 输出与解析

Nexmon CSI 输出的是 每帧 CSI 的二进制结构(含 256 子载波 × 复数),字段与 Intel/Atheros 工具不同。 Python 生态里:

工具 特点
CSIKit [2] 多平台解析 + 可视化 + CSV/JSON 导出
csiread [3] Cython 实现,解析更快,带实时示例

4. 和路由器 CSI(本项目)怎么分工

场景 建议
采集高带宽实验数据、跑算法 Nexmon(树莓派)或路由器都可;Nexmon 更灵活(可换信道/带宽)
长期部署、全屋覆盖 路由器(本文项目:MT7986 + mt76 CSI,7×24 供电)
教学/复现论文 Nexmon 生态资料最多

共同点:CSI 都是接收端测量,必须有稳定流量;数据都要先清洗相位再上算法。

5. 相关资源

参考与数据来源

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

  1. C 级 · 官方资料 seemoo-lab/nexmon_csi — CSI extraction on various Broadcom Wi-Fi chips
    SEEMOO Lab, TU Darmstadt
    github.com/seemoo-lab/nexmon_csi · 核实: GitHub API 2026-10-11 (stars 475, last push 2026-09-30)
  2. C 级 · 官方资料 Gi-z/CSIKit — Python CSI parsing and visualisation
    G. Zhang
    github.com/Gi-z/CSIKit · 核实: GitHub API 2026-10-11 (stars 307, MIT, last push 2025-02-19) · 支持 Atheros / Intel / Nexmon / ESP32 / FeitCSI / PicoScenes 多种格式。
  3. C 级 · 官方资料 citysu/csiread — fast Cython CSI parser
    S. Zhu
    github.com/citysu/csiread · 核实: GitHub API 2026-10-11 (stars 142, MIT, last push 2024-10-12)

本页含联盟链接(rel="sponsored"),你通过链接购买不会增加成本,本站可获得少量佣金。