DKMS package that fetches the in-tree rtw89 source for the target kernel, applies the steam-frame patches, and builds/installs the patched RTL8852CU modules for the Valve Steam Frame wireless adapter. - dkms.conf: module list + install locations - build.sh: fetch (gregkh/linux) + patch + build + verify - register.sh: clone upstream patches, stage into /usr/src, dkms add/build/install GPL-2.0-only.
59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
<!-- SPDX-License-Identifier: GPL-2.0-only -->
|
|
|
|
# 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`
|