Initial commit: rtw89-steam-frame DKMS wrapper
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.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<!-- 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`
|
||||
Reference in New Issue
Block a user