Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
13 KiB
Red Bear OS Wi-Fi Implementation Plan
Purpose
This document defines the current Wi-Fi state in Red Bear OS and lays out the recommended path for integrating Wi-Fi drivers and a usable wireless control plane.
The goal is not to imply that Wi-Fi already exists in-tree. The goal is to describe what the repo
currently proves, what linux-kpi can and cannot realistically provide, and how Red Bear can grow
from no Wi-Fi support to one experimental, validated Wi-Fi path that fits the existing Redox /
Red Bear architecture.
Validation States
- builds — code exists in-tree and is expected to compile
- boots — image or service path reaches a usable runtime state
- reports — runtime surfaces can honestly report current wireless state
- validated — behavior has been exercised with real evidence for the claimed scope
- experimental — available for bring-up, but not support-promised
- missing — no in-tree implementation path is currently present
This repo should not treat planned wireless scope as equivalent to implemented support.
Current Repo State
Summary
Wi-Fi is currently missing in Red Bear OS.
There is no in-tree Wi-Fi driver, no wireless daemon, no cfg80211/mac80211/nl80211-compatible surface, no supplicant path, and no profile that can honestly claim Wi-Fi support.
What the repo does have is a meaningful set of prerequisites:
- userspace drivers and schemes as the standard architectural model
redox-driver-sysfor PCI/MMIO/IRQ/DMA primitiveslinux-kpias a limited low-level C-driver compatibility layerfirmware-loaderfor blob-backed devices- a working native wired network path through
network.*,smolnetd,dhcpd, andnetcfg - profile/package-group discipline, including the reserved
net-wifi-experimentalslice
Current Status Matrix
| Area | State | Notes |
|---|---|---|
| Wi-Fi controller support | missing | No PCIe/USB/SDIO Wi-Fi driver recipes in-tree |
| Linux wireless stack compatibility | missing | No cfg80211/mac80211/nl80211/wiphy support in linux-kpi |
| Firmware loading | partial prerequisite exists | firmware-loader can serve firmware blobs generically |
| Wireless control plane | missing | No scan/auth/association/link-state daemon or CLI |
| Post-association IP path | present | Native smolnetd / netcfg / dhcpd / redbear-netctl path exists |
| Desktop Wi-Fi API | missing | No NetworkManager-like or D-Bus Wi-Fi surface |
| Runtime diagnostics | partial prerequisite exists | redbear-info model exists, but no Wi-Fi integration exists |
Evidence Already In Tree
Direct negative evidence
HARDWARE.mdsays Wi-Fi and Bluetooth are not supported yetlocal/docs/AMD-FIRST-INTEGRATION.mdmarksWi-Fi/BTas missing
Positive driver-side prerequisites
docs/04-LINUX-DRIVER-COMPAT.mddocumentsredox-driver-sys,linux-kpi, andfirmware-loaderlocal/recipes/drivers/redox-driver-sys/provides userspace PCI/MMIO/IRQ/DMA primitiveslocal/recipes/drivers/linux-kpi/provides a limited Linux-style compatibility subsetlocal/recipes/system/firmware-loader/providesscheme:firmware
Positive network/control-plane prerequisites
local/docs/NETWORKING-RTL8125-NETCTL.mddocuments the native wired path:pcid-spawner→ NIC daemon →network.*→smolnetd→dhcpd/netcfgrecipes/core/base/source/netstack/src/scheme/netcfg/mod.rsshows route/address/resolver state is already exposed through a native control schemelocal/recipes/system/redbear-netctl/source/src/main.rsshows Red Bear already uses a native network profile tool, even though it is currently wired-onlydocs/07-RED-BEAR-OS-IMPLEMENTATION-PLAN.mdreservesnet-wifi-experimentalas a package-group slot for future wireless work
Feasibility Constraints
1. Wi-Fi is not just a driver
Wi-Fi in Red Bear cannot be treated as a single hardware daemon.
At minimum, a working Wi-Fi path needs:
- hardware transport and firmware bring-up
- scan/discovery
- authentication and association state
- link-state and disconnect handling
- credential storage
- post-association handoff into the native IP stack
- later desktop/user-facing integration if the repo wants it
This makes Wi-Fi more like a complete subsystem than a simple wired NIC driver.
2. linux-kpi is feasible only below the wireless control-plane boundary
Current linux-kpi is suitable for low-level driver-enablement work such as:
- PCI / IRQ / DMA / MMIO access
- firmware request glue
- workqueue-style helper logic
- C-driver compatibility for narrow hardware bring-up
Current linux-kpi is not a complete Wi-Fi architecture because the repo has no in-tree:
- cfg80211
- mac80211
- nl80211
- wiphy model
- supplicant/control-plane compatibility layer
So linux-kpi is feasible only as a partial low-level aid, not as the primary Red Bear Wi-Fi
stack.
3. The current Red Bear control plane is Ethernet-specific
The current native network stack is useful, but not yet Wi-Fi-ready.
redbear-netctl only supports:
Connection=ethernetInterface=eth0- DHCP/static address, route, and DNS control
netcfg is similarly hard-wired around the current eth0 interface model.
That means Red Bear can reuse its native IP plumbing after association, but not as the radio control plane itself.
4. FullMAC is a better first target than SoftMAC
The first Wi-Fi target should minimize the amount of 802.11 MAC and Linux wireless subsystem logic that Red Bear has to recreate.
That makes FullMAC hardware the best first target class.
Red Bear should explicitly avoid starting with SoftMAC/mac80211-style Linux drivers such as:
- Intel
iwlwifi - Realtek
rtw88/rtw89 - MediaTek
mt76 - other drivers that fundamentally assume cfg80211/mac80211 semantics
Recommended Architecture
The best Red Bear Wi-Fi architecture is:
- native Red Bear wireless control plane
- one experimental FullMAC driver family first
- reuse
redox-driver-sys+firmware-loaderdirectly - use
linux-kpionly where it reduces low-level glue cost - reuse the existing native IP path only after association
This is a hybrid architecture, but it is native-first, not Linux-stack-first.
Subsystem boundary
The Wi-Fi subsystem should be split into these pieces:
- one device transport / driver daemon for the chosen chipset family
- one firmware loading path via
firmware-loader - one Wi-Fi control daemon for scan/auth/association/link state
- one user-facing control tool (
wifictlor equivalent) - one post-association handoff into
smolnetd/netcfg/dhcpd - one later desktop shim only if KDE/user-facing workflows require it
redbear-netctl should not become the supplicant. It can remain the post-association IP
profile tool, or be generalized later, but it should not own scan/auth/association itself.
Hardware Strategy
First decision gate
Before implementation begins, Red Bear must choose one first Wi-Fi family from actual target machines or bring-up hardware.
The preferred target order is:
- PCIe FullMAC — if a real Red Bear target machine in the hardware matrix has one
- USB FullMAC — if PCIe FullMAC hardware is not available, use this as the first prototype path
What not to choose for phase 1
Do not start with:
- Intel laptop Wi-Fi via
iwlwifi - mac80211/cfg80211-dependent Linux drivers
- any phase-1 scope that requires recreating a Linux wireless stack first
Security Scope Freeze
Phase-1 supported security
- open networks
- WPA2-PSK
Explicitly out of initial scope
- WPA3
- 802.1X / enterprise Wi-Fi
- AP mode
- roaming
- monitor mode
- suspend/resume guarantees
- multi-BSS support
- sophisticated regulatory-domain handling
This scope freeze is required to keep the first milestone honest and achievable.
Comprehensive Full Plan
Phase W0 — Scope Freeze and Package-Group Definition
Goal: Define the first Wi-Fi milestone precisely before implementation starts.
What to do:
- choose one target FullMAC family from actual hardware
- freeze security scope to open + WPA2-PSK
- define
net-wifi-experimentalas the package-group slice for first Wi-Fi support - document unsupported wireless features explicitly
Exit criteria:
- one hardware family is selected
- support language and non-goals are written down
Phase W1 — Driver Substrate Fit
Goal: Prove the chosen Wi-Fi family can fit Red Bear’s existing driver primitives.
What to do:
- map the chosen device family onto
redox-driver-sys - verify firmware naming and fetch path through
firmware-loader - decide whether any narrow
linux-kpiglue is useful for that family - keep
linux-kpibelow the wireless control-plane boundary
Exit criteria:
- one chosen device can be discovered, initialized, and paired with its firmware-loading path
Phase W2 — Native Wireless Control Plane
Goal: Add a Red Bear-native wireless daemon and control interface.
What to do:
- implement a Wi-Fi daemon that owns:
- scan state
- auth/association state
- link state
- disconnect/retry behavior
- credential ownership
- add a user-facing
wifictl-style control surface
What not to do:
- do not push supplicant logic into
redbear-netctl - do not model Wi-Fi as “just another Ethernet profile” at this phase
Exit criteria:
- the daemon can report scan results and current link state honestly
Phase W3 — Network Stack Refactor for Post-Association Handoff
Goal: Make the native IP stack accept Wi-Fi as a first-class post-association interface.
What to do:
- generalize current
eth0/ Ethernet assumptions where needed - allow the native stack to consume a post-association Wi-Fi interface state
- keep route/address/DNS handling in native
netcfg/smolnetdplumbing after association
Exit criteria:
- a connected Wi-Fi link can be handed off to the existing IP path without pretending it is merely a raw Ethernet control-plane object
Phase W4 — First Association Milestone
Goal: Achieve one real Wi-Fi connection under the frozen phase-1 scope.
What to do:
- scan for one real SSID
- join one test network
- complete open or WPA2-PSK association
- hand off to DHCP or static IP configuration
Exit criteria:
- one chosen device family reaches usable network connectivity on a real network
Phase W5 — Runtime Reporting and Recovery
Goal: Make Wi-Fi support diagnosable and honest.
What to do:
- extend
redbear-infowith Wi-Fi-specific runtime reporting - add reconnect and failure-state reporting
- keep all support labels experimental
Exit criteria:
- users can see whether hardware is present, firmware is loaded, scans succeed, and association has succeeded or failed
Phase W6 — Desktop Compatibility (Later)
Goal: Add desktop-oriented control only after native Wi-Fi works.
What to do:
- if KDE or desktop workflows require it, add a small compatibility shim over the native Wi-Fi service
- keep that shim above the native control plane, not in place of it
Exit criteria:
- desktop Wi-Fi workflows become possible without changing the native subsystem boundaries
Phase W7 — Broader Hardware and linux-kpi Reassessment
Goal: Reassess whether Red Bear wants to widen Wi‑Fi support after one FullMAC path works.
What to do:
- only after one FullMAC family is validated, decide whether a wider SoftMAC / deeper
linux-kpipath is worth the cost - do not assume this is automatically justified
Exit criteria:
- Red Bear either keeps the narrow native-first architecture, or consciously chooses a larger Linux wireless-compat effort with full awareness of the cost
Validation Gates
Wi-Fi should not be described as supported until these gates are passed in order:
- hardware is detected
- firmware loads successfully
- the driver/daemon initializes and reports link state
- scan sees a real SSID
- association succeeds for one supported network type
- DHCP or static IP handoff succeeds through the native network stack
- reconnect works after disconnect or reboot
redbear-infoand profile docs report supported and unsupported states honestly
Until then, support language should remain under net-wifi-experimental only.
Support-Language Guidance
Until the validation gates above are passed, Red Bear should use language such as:
- “Wi-Fi is not supported yet”
- “Wi-Fi remains experimental and hardware-specific”
- “The current wireless path is an experimental FullMAC-first bring-up”
Avoid language such as:
- “Linux Wi‑Fi drivers are supported”
- “wireless support works”
- “Wi-Fi is generally available”
unless profile-scoped validation evidence exists.
Summary
The best Red Bear Wi-Fi path is native-first:
- native wireless control plane
- one experimental FullMAC family first
firmware-loader+redox-driver-sysunderneath- optional narrow
linux-kpiglue only where useful - native
smolnetd/netcfg/redbear-netctlreused only after association
linux-kpi is therefore feasible only in a narrow sense. It is useful as a low-level helper
for driver bring-up, but it is not currently a viable full Wi‑Fi architecture for Red Bear OS.
That is the most realistic way to integrate Wi‑Fi into Red Bear while keeping the design aligned with the repo’s current userspace-driver and profile-based architecture.