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 설정에서는 OS 커널이 라디오 하드웨어를 제어해 순수 802.11 프레임을 주입합니다. Apple의 네트워킹 스택이 제한적이기 때문에, 전통적인 접근 방식은 macOS에서 불가능합니다.
이를 해결하기 위해 wfb-link는 사용자 공간 방식을 채택했습니다. 커널의 네트워크 드라이버에 의존하는 대신, 프로젝트는 네이티브 macOS 사용자 공간 RTL8812AU 초기화를 구현합니다. ALFA AWUS036ACH USB 어댑터와 주변 장치처럼 직접 통신하여 칩을 초기화하고, bulk OUT을 통해 순수 802.11 WFB 프레임을 전송하고 bulk IN을 통해 수신합니다.
이 아키텍처를 통해 프로젝트는 USB 어댑터를 네트워크 인터페이스가 아닌 순수 데이터 파이프로 취급할 수 있어, 패킷 주입에 대한 OS 제한을 효과적으로 우회합니다.
핵심 기능 및 구현
메모리 안전성과 성능을 위해 Rust로 구현된 wfb-link는 라디오 링크를 실현하기 위한 여러 핵심 구성 요소를 제공합니다:
- Direct Radio Path: RTL8812AU 칩셋에 대한 네이티브 macOS 사용자 공간 초기화.
- WFB Datagram TX/RX: WFB 데이터그램을 직접 전송하고 수신하는 기능.
- WFB-NG Integration: 이러한 순수 프레임을 WFB-NG의 distributor/aggregator UDP 프로토콜과 연결하여 기존 WFB-NG 도구와 통합할 수 있게 합니다.
- Network Bridging: 라디오를 통한 IP 기반 링크가 필요한 사용자를 위해 macOS
utun브리지 헬퍼가 포함됩니다. - Diagnostics and Control: 스택에는 RF 진단, 텔레메트리, LED 하트비트, 그리고 TDD (Time Division Duplexing) airtime 제어가 포함되어 라디오 동작을 관리합니다.
AI 지원 개발
wfb-link 프로젝트에서 가장 흥미로운 측면 중 하나는 개발 과정입니다. 하드웨어나 임베디드 시스템 엔지니어가 아닌 소프트웨어 엔지니어인 저자는 대형 언어 모델(LLM)을 활용해 개발 주기를 가속화했습니다. Codex GPT 5.5와 Claude Opus 4.7을 조합해 사용함으로써, 저자는 빈 상태에서 첫 번째 알파 릴리스까지 약 2주 만에 도달할 수 있었습니다.
이는 AI가 개발자의 고수준 소프트웨어 엔지니어링 역량과 특수한 저수준 하드웨어 상호작용 사이의 격차를 메우는 데 활용될 수 있는 성장 추세를 보여주며, 새로운 라디오 스택을 구축하는 데 필요한 시간을 크게 단축합니다.
현재 상태 및 향후 로드맵
현재 wfb-link는 arm64 macOS 바이너리를 포함한 알파 릴리스 형태로 제공됩니다. 양쪽 모두 ALFA AWUS036ACH 어댑터를 주로 사용해 테스트했으며(원격 측은 Bookworm을 실행하는 Raspberry Pi 5와 연결),
libusb가 최신 macOS 버전에서 신뢰성이 떨어지는 것으로 확인되어, 프로젝트는 통신에 IOUSBHost를 활용합니다.
현재는 macOS에만 집중하고 있지만, 저자는 프로젝트를 크로스 플랫폼으로 확장하는 목표를 밝히고 있습니다. 다음 주요 마일스톤은 USB-OTG를 통한 Android 지원 시도로, 이를 통해 모바일 디바이스에서도 WFB 링크를 활용할 수 있게 될 잠재력이 있습니다.
기술 접근 방식 요약
| 기능 | 전통적인 WFB | wfb-link (macOS) |
|---|---|---|
| 드라이버 레벨 | 커널 모드 (모니터 모드) | 사용자 공간 (USB Bulk Transfer) |
| OS 요구사항 | Linux | macOS (IOUSBHost 사용) |
| ** 제품** | RTL8812AU / 기타 | ALFA AWUS036ACH |
| 통신 | 순수 802.11 프레임 | USB를 통한 Bulk IN/OUT |
| 통합 | WFB-NG | WFB-NG UDP 프로토콜 |