将 WiFiBroadcast (WFB) 引入 macOS:用户空间无线电栈

WiFiBroadcast (WFB) 通常属于基于 Linux 的系统,需要特定的内核级监控模式和数据包注入功能,以实现用于无人机和边缘设备的远距离、低延迟无线电链接。对于 macOS 用户来说,这一直是一个障碍,必须额外准备一台 Linux 机器仅用于与边缘硬件通信,显得过于繁琐。

这时出现了 wfb-link,一个用 Rust 编写的用户空间无线电栈,使 macOS 能够使用 RTL8812AU USB 适配器建立类似 WFB 的链接。通过绕过标准的 macOS 网络栈直接与硬件通信,wfb-link 为 macOS 与 WFB-NG 生态系统之间搭建了桥梁。

技术挑战:绕过 macOS 监控模式

macOS 并未公开 WFB 系统传统上依赖的监控模式或数据包注入通道。在标准的 WFB 配置中,操作系统内核负责无线硬件以注入原始 802.11 帧。由于 Apple 的网络栈限制,这种传统方法在 macOS 上不可行。

为了解决此问题,wfb-link 采用了用户空间的方案。项目不依赖内核网络驱动,而是实现了原生 macOS 用户空间的 RTL8812AU 初始化。它直接将 ALFA AWUS036ACH USB 适配器视为外设,初始化芯片并通过 bulk OUT 提交原始 802.11 WFB 帧,通过 bulk IN 接收这些帧。

该架构使项目能够将 USB 适配器视为原始数据管道,而非网络接口,从而有效绕过操作系统对数据包注入的限制。

核心特性与实现

wfb-link 使用 Rust 实现,以保证内存安全和性能,提供了若干关键组件,使无线电链接能够正常工作:

  • Direct Radio Path:原生 macOS 用户空间的 RTL8812AU 芯片初始化。
  • WFB Datagram TX/RX:能够直接发送和接收 WFB 数据报。
  • WFB-NG Integration:它将这些原始帧桥接到 WFB-NG 的分发/聚合 UDP 协议,使其能够与现有的 WFB-NG 工具集成。
  • Network Bridging:为需要基于 IP 的无线电链接的用户提供了 macOS utun 桥接助手。
  • Diagnostics and Control:该栈包含 RF 诊断、遥测、LED 心跳以及 TDD(时分双工)空中时间控制,以管理无线电的行为。

AI 辅助开发

wfb-link 项目最有趣的方面之一是其开发过程。作者是一名软件工程师,而非硬件或嵌入式系统工程师,利用大型语言模型(LLM)加速开发周期。通过结合 Codex GPT 5.5 和 Claude Opus 4.7,作者在约两周内从空白起步完成了首个 alpha 版本。

这展示了一个日益增长的趋势:AI 可以弥合开发者的高级软件工程技能与专业低层硬件交互之间的鸿沟,显著缩短搭建新无线电栈所需的时间。

当前状态与未来路线图

目前,wfb-link 已以 alpha 版本提供,包含 arm64 macOS 二进制文件。它主要在两端使用 ALFA AWUS036ACH 适配器进行测试(远端使用运行 Bookworm 的 Raspberry Pi 5)。

由于 libusb 在较新版本的 macOS 上表现不可靠,项目改为使用 IOUSBHost 进行通信。

虽然目前唯一的关注点是 macOS,作者已表达将项目跨平台化的目标。下一个重要里程碑是尝试通过 USB-OTG 实现 Android 支持,这有望将 WFB 链接的可用性扩展到移动设备。

技术方案概述

特性 传统 WFB wfb-link(macOS)
驱动层级 Kernel-mode (Monitor Mode) Userspace (USB Bulk Transfer)
操作系统要求 Linux macOS (via IOUSBHost)
产品 RTL8812AU / Others ALFA AWUS036ACH
通信 Raw 802.11 Frames Bulk IN/OUT via USB
集成 WFB-NG WFB-NG UDP Protocols

Sources