# rtw89-steam-frame dkms DKMS wrapper for the patched Realtek rtw89 driver used by the **Valve Steam Frame** wireless adapter (`28de:2432`, RTL8852CU). It builds the *in-tree* rtw89 source for whatever kernel you run (fetched from `gregkh/linux`), applies the **steam-frame patches** (pulled at register time via git from [Davenport-Physics/rtw89-steam-frame](https://github.com/Davenport-Physics/rtw89-steam-frame)), and auto-rebuilds on every kernel upgrade through the Arch DKMS pacman hooks. ## Why The Frame advertises a 6 GHz **VLP** power class and the stock driver honors it, capping the dongle at 7/4 dBm (1TX/2TX) — roughly 10 dB below what the Windows driver uses. That deficit caused MAC-layer retry storms and bursty micro-stutters in VR streaming (see [SteamVR-for-Linux#965](https://github.com/ValveSoftware/SteamVR-for-Linux/issues/965)). `reg6_pwr_override=1` switches the adapter to the **LPI** table (12/11 dBm at 160 MHz), which on this system removed the missed-frame stalls even at ~1.8x the previous load. `disable_2ghz=Y` additionally disables the useless 2.4 GHz band (and the scan-offload USB resets associated with it). ## Install / re-register ./register.sh # As root This clones upstream, stages `/usr/src/rtw89-steam-frame-0.1`, and runs `dkms add/build/install` for the current kernel. After that, the Arch pacman hooks (`/usr/share/libalpm/hooks/70-dkms-*`) rebuild it automatically on every kernel update. Optional env overrides: `RTW89_UPSTREAM`, `RTW89_UPSTREAM_REF`, `RTW89_KVER`. ## Preconditions - `linux-headers` installed and kept in sync with `linux`. - Network access at (re)build time — the kernel's rtw89 source and the patches are both fetched over HTTPS. ## Files | file | purpose | |---------------|---------| | `dkms.conf` | DKMS metadata (module list, install location) | | `build.sh` | DKMS build step: fetch rtw89 for `$kernelver`, patch, build, verify | | `register.sh` | pull upstream patches via git, stage, `dkms add/build/install` | ## Module parameters Add this to `modprobe.d`, e.g. `/etc/modprobe.d/rtw89-steam-frame.conf`: `options rtw89_core reg6_pwr_override=1 disable_2ghz=Y` You might also want to disable advanced power management if not done so already (also supported by in-kernel driver): `options rtw89_core disable_ps_mode=Y`