Small notes: Debian 13 + RDNA4 + Index
Short list of pitfalls from setting up a Debian 13 machine for VR and gaming. The VR-specific findings have their own posts: SteamVR judder and Monado and mutter’s stale GPUs.
The machine
| OS | Debian 13 (trixie) |
| Kernel | 7.1.8 (trixie-backports) |
| GPU | AMD Radeon AI PRO R9700 (Navi 48, RDNA4, gfx1201, DCN 4.0.1) |
| Mesa | 26.1.6 (trixie-backports, RADV GFX1201) |
| Firmware | firmware-amd-graphics 20260810 (trixie-backports) |
| CPU | AMD Ryzen 9 5950X |
| Desktop | GNOME 48 / mutter 48.7, Wayland (exposes wp_drm_lease_device_v1) |
| VR | Valve Index, 2 base stations 2.0, Index controllers |
| Runtime | SteamVR 2.17.10, Proton Experimental |
| Virtual displays | evdi 1.15.1 (repackaged, see below) |
Pitfalls
- Use trixie-backports for RDNA4. Take the kernel, Mesa and
firmware-amd-graphicsfrom backports. - No
display-manager.service. gdm was installed but had never been enabled, sodisplay-manager.servicedid not exist. - Never keep
.linkbackups under/etc/systemd/network. The initramfs hook/usr/share/initramfs-tools/hooks/udevcopies*.linkfiles from/etc/systemd/networkrecursively, and puts them all in one directory in the initramfs. Backups in a subfolder therefore become active at boot. This happened to us: after installing the new kernel, a NIC got the wrong name at boot. Keep backups somewhere else. - evdi 1.15.1 is needed for kernel 7.1. Debian’s evdi 1.14.8 does not
build against 7.1: API errors about
drm_driver.date,struct_mutexandfb_debug_enter. We repackaged 1.15.1. - Proton for all games. In Steam’s
config.vdf, aCompatToolMappingentry for app id"0"sets the default compatibility tool. - Installing a Steam game without a screen. With Steam closed, put an
appmanifest_<appid>.acfwith"StateFlags" "1026"in the library’ssteamapps/directory. At its next start, Steam downloads the game. - The Index camera is a plain UVC device. It is a side-by-side stereo camera: 1920×960 total, 960×960 per eye. It offers MJPEG or YUYV at 15–54 fps. It can be read with V4L2 while SteamVR is running, as long as SteamVR itself is not streaming from it.
setcapdoes not survive updates.CAP_SYS_NICEon SteamVR’svrcompositor-launcheris lost at every SteamVR update, and the same goes formonado-serviceafter everycmake --install.- Index audio goes through DisplayPort. The sink only exists while
the headset is on. Use
wpctl set-defaultonce, and WirePlumber remembers it (details in the SteamVR/Monado post).