openwifi:把 Wi-Fi 芯片「开源」
openwifi 是一份可上板运行的开源 IEEE 802.11 实现:FPGA 里是基带,旁边配 Linux 驱动和软件。开源主线支持 802.11a/g/n(Wi-Fi 4 的一部分),系统里就是一张普通网卡 sdr0。hostapd、wpa_supplicant、iw 可以按商用 Wi-Fi 芯片那样用。
传统焊死在芯片里的 PHY 和 低 MAC,被拆成可编程的 FPGA 和软件——能看见、能改、能测。
- 项目页:https://openwifi.tech
- 驱动 / 软件:github.com/open-sdr/openwifi
- FPGA:github.com/open-sdr/openwifi-hw
- 预编译 bitstream:openwifi-hw-img
一、项目起源与目标
Wi-Fi 标准 1997 年就有了,开源基带却一直缺。蜂窝侧早有 srsRAN、OpenAirInterface;802.11 这边只能仿真、抠商用芯片,或买昂贵参考设计。低 MAC 时序、真实 CSI,闭源芯片通常不给你旋钮。
openwifi 约 2017 年在欧盟 Horizon 2020 ORCA 项目里起步。2019 年底上 GitHub,2020 年 FOSDEM 由 Jiao Xianjun(焦现军) 公开演示,同年 IEEE VTC 发论文。后来 NLnet 资助了 802.11n、成熟度,以及和 OpenWrt 的对接。

| 商用 Wi-Fi 芯片 | openwifi | |
|---|---|---|
| 透明度 | PHY/MAC 是黑盒 | Verilog + 驱动可改 |
| 和 Linux | 厂商驱动裁过能力 | 接 mac80211,当普通 NIC 用 |
| CSI / IQ | 多数不给 | 信道响应、IQ 可拉到电脑 |
| 低 MAC | SIFS/DIFS/CW 动不了 | FPGA 里 CSMA,ACK 约 10 µs |
| 适合干什么 | 上网 | 协议、安全、无线感知实验 |
核心目标:提供一份开源 Wi-Fi 芯片,把空口从黑盒里解放出来。
二、技术架构与构成
开发板是 Zynq:ARM 上跑 Linux,FPGA 里做基带,射频走 AD9361。系统里看到的那张网卡,不是插上去的 USB 网卡,而是这套软硬件一起组装出来的。

为什么必须 FPGA + ARM
802.11 收到数据后,要在 SIFS 窗口里回 ACK,大约 10 微秒。商用芯片在硅里硬做;PC + USRP 把 IQ 拉到电脑再处理,慢一到两个数量级,信道早就让出去了。
所以:OFDM、CSMA/CA、ACK 进 FPGA;ARM 上跑 Linux,管关联、hostapd 这些可以慢一点的事。
分层
- 用户态:
hostapd/wpa_supplicant/iw,外加 sdrctl - 内核:cfg80211 + mac80211
- 驱动
sdr.c:实现 mac80211 那组 API - FPGA:xpu(低 MAC / CSMA)、openofdm 收发、tx/rx 接口
- 射频 AD9361:40 Msps IQ,FPGA 里再变成基带用的 20 Msps
三个仓库
| 仓库 | 内容 |
|---|---|
| openwifi | 驱动、sdrctl、镜像用法 |
| openwifi-hw | FPGA / Verilog |
| openwifi-hw-img | 各板预编译 bitstream,入门先用这个 |
基于 ADI 2021_r1 HDL 参考设计往上长。路径和常见嵌入式产品很像:Vivado、devicetree、内核模块。和特定版本的 Vivado、ADI 内核绑死,随便升级经常编不过。
三、支持哪些板子

主流是 Xilinx Zynq + AD9361。BOARD_NAME 既对应 FPGA 工程,也对应 BOOT 分区要拷的文件,混板 bitstream 对不上。以 GitHub README 实时表格为准。
不必买 Vivado 许可证(文档标 NO need)
ZedBoard / ZC702 + FMCOMMS2/3/4,ADRV9364-Z7020,MicroPhase antsdr / e310v2,HexSDR sdrpi,以及 Unofficial 的 NeptuneSDR、LibreSDR。入门多走 ZedBoard 或 antsdr / LibreSDR。
需要许可证(文档标 Need)
ZC706、ADRV9361-Z7035、ZCU102 + FMCOMMS。实验室大板。还有 rfsoc4x2 等,以 hw 仓库为准。
没有板子:比利时 w-iLab.t 可远程摸流程。列表上有板 ≠ 淘来的山寨 AD9361 一定能关联;adrv9361z7035 在 5 GHz 功率极低,要靠很近。
四、亮点、场景与发展
可当 AP、客户端、Ad-hoc、Monitor。同时能改 CCA、SIFS/DIFS/CW,能拉 CSI / IQ,能按 MAC 做时间片调度,能注入 802.11 帧。目标不是打赢 AX3000,而是能测、能发论文。
较好情况(开 AMPDU):iperf TCP 约 40~50 Mbps,UDP 约 50 Mbps;EVM −38 dB;MCS0 −92 dBm,MCS7 −73 dBm。频率文档写 70 MHz~6 GHz,也可改成 2 MHz 或 10 MHz(偏 802.11ah / 802.11p)。
CSI 可做室内定位、动作识别、自收发通感。同一套架构还被拿去改 DECT-2020 NR 包检测——那是衍生实验,不是主线功能。ax 走官网订阅。
| 场景 | 说明 |
|---|---|
| 协议研究 | 改 PHY/MAC、频谱和接入时序 |
| 网络与安全 | 协议测试、帧注入 / fuzz |
| 无线感知 | 实时 CSI:定位、动作、通感 |
| 嵌入式 / 驱动 | 对着真实空口看 mac80211 和 FPGA 怎么咬合 |
五、注意事项
1. 不是消费级,也不是刷机即用
要选板、烧镜像、对 BOARD_NAME。20 MHz、11a/g/n,吞吐约五十兆,别跟家用 AX 路由比网速。
2. 硬件和工具链绑得死
Zynq + AD9361,Vivado 2021.1(还要 Vitis,不是 Vitis HLS)。乱升级经常不能用。
3. 没有 802.11b
只有 OFDM。老终端、部分 fullMAC 网卡建连会别扭,客户端有时需要打过补丁的 wpa_supplicant。
4. 频谱合规是你的责任
能调到非 Wi-Fi 频段 ≠ 能合法发射。
5. 评估 IP 会中途停
Xilinx Viterbi 评估核大约两小时失效,演示前要知道。
6. 免费仓库不是 Wi-Fi 6/7
不要写成「开源 Wi-Fi 7 芯片」,也不是已经实现了 Wi-Fi 8。
六、优缺点对照
| 维度 | 较好的地方 | 不好的地方 |
|---|---|---|
| 自主权 | PHY/MAC 透明,CSI/IQ/时序能改 | 安全、频谱、运维自己扛 |
| 和 Linux | 真 mac80211 网卡,标准工具能用 | 没有 11b,客户端有时要打补丁 |
| 实时性 | FPGA 里 10 µs 级 ACK | 吞吐远不如商用 Wi-Fi 6 |
| 硬件 | Zynq+AD9361 家族多,有便宜板 | Vivado/内核绑死;山寨板风险 |
| 许可 | 研究可改 | AGPL;闭源商用要另谈 |
七、适合谁 / 不适合谁
适合
- 做 802.11 协议、无线安全、CSI 感知的研究生和工程师
- 写过 Linux wireless,想对着真实空口改 MAC 的人
- 手里有 ZedBoard / Pluto 系 / LibreSDR,愿意烧镜像的人
不太适合
- 想给家里换一台更快路由的人(请看 OpenWrt 那篇)
- 期望即插即用、Wi-Fi 6E / Mesh 全家桶的人
- 不能接受 FPGA 工具链、不愿管频谱法规的人
八、想动手可以从哪开始
- 打开 open-sdr/openwifi,对
BOARD_NAME - 烧预编译 SD 镜像(≥16 GB),按板子拷 BOOT 文件
- 电脑
192.168.10.1,SSHroot@192.168.10.122(密码openwifi,先改掉);./wgd.sh再./fosdem.sh,SSID 为 openwifi - 进阶看 CSI notes;改 FPGA 用 openwifi-hw,不要先升 Vivado
没有板子:先看 FOSDEM 录像和 w-iLab.t 教程。
九、总结
openwifi 不是给普通用户刷机的系统,而是把 Wi-Fi 协议摊开的研究平台。用 Zynq + AD9361,可以把 802.11a/g/n 做成 Linux 里一张能跑 hostapd 的网卡。代价是停在 Wi-Fi 4,工具链重,频谱法不能当儿戏。
说明:板表随上游更新;本文为技术科普。过空口须遵守无线电管理规定。授权以各仓库 LICENSE 及厂商条款为准。

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)