Simple udev rule to fix issue of blank EDID bug that makes the kernel see the HMD as a 640x480 monitor. http://fixvr.miguvt.com/
  • Shell 80.7%
  • TypeScript 19.3%
Find a file
MiguVT 0d706f3173
Rollback to 351ff53
Just rollback to 351ff53
2026-04-05 19:22:04 +02:00
.github/workflows web: remove cache; workflow: only deploy when there is changes in webpages 2026-03-05 15:03:45 +01:00
src Rollback to 351ff53 2026-04-05 19:22:04 +02:00
webpage fix: remove warning about automatic installation bug for Arch-based distros 2026-03-07 13:43:19 +01:00
.gitignore web: remove cache; workflow: only deploy when there is changes in webpages 2026-03-05 15:03:45 +01:00
LICENSE fix: update copyright notice in LICENSE file to include contact email 2026-03-04 19:55:45 +01:00
README.md fix: remove warning about automatic installation bug for Arch-based distros 2026-03-07 13:43:19 +01:00

FixVR

A tiny udev rule that fixes the Valve Index blank EDID bug on Linux, stops the kernel from seeing your HMD as a 640×480 monitor.

The Problem

On some kernels/driver versions the Valve Index HMD enumerates with a blank EDID, causing the display subsystem to fall back to 640×480. The headset works, but SteamVR and compositors cannot use the correct resolution or refresh rate.

The Fix

A udev rule sends a 64-byte HID reboot payload (\x16\x01 + zeroes) to the hidraw device node the first time the HMD is detected each boot. This forces the firmware to re-enumerate and expose the correct EDID.

A flag file in /tmp prevents the command from being sent more than once per session. Because /tmp is cleared on boot it always runs fresh on the next power-on.

Installation

Take a look into the docs for automatic installation scripts for Arch (AUR) and NixOS, or follow the manual instructions for any distro that is in the same page.

License

MIT