TrueClays · Technical note

EDID override workaround — NVIDIA / Linux

A host-side software fix that restores full resolution support on an HDMI input whose stored EDID fails checksum validation. Tested on our production configuration over several days with a 100% success rate.

Background

On the affected unit, the HDMI2 input returns an EDID whose base block (Block 0) checksum is invalid — 0xFC where the data requires 0xFD. A strict EDID parser, including the NVIDIA Linux driver, rejects the block and discards every mode it advertises, falling back to generic low-resolution timings (typically 1024×768). None of the projector's real modes (4K60, 1080p240) are then offered.

This workaround supplies the driver with a known-good EDID from a file, so it never depends on the checksum of the EDID read from the projector. It does not modify the projector and is fully reversible. It is a mitigation on our side, not a substitute for correcting the stored EDID at source.

What you need

A valid 256-byte EDID for the same projector, captured from an input that reads correctly (in our case HDMI1). This becomes the file the driver loads.

Our validated file is optoma.bin — 256 bytes, both block checksums valid (Block 0 0xFD, Block 1 0x15), manufacturer OTM, product 21841. Any capture used here must pass edid-decode with no checksum warnings before being deployed.

Step 1 — Capture a known-good EDID

With the projector on an input that reads correctly, capture and verify:

# capture
sudo get-edid > /etc/X11/optoma.bin

# verify — must report 256 bytes and no checksum warnings
wc -c /etc/X11/optoma.bin
edid-decode /etc/X11/optoma.bin

If you already hold a verified file, copy it into place instead: sudo cp optoma.bin /etc/X11/optoma.bin

Step 2 — Confirm the connector name

The override is keyed to the driver's name for the output. Confirm it before writing the config:

xrandr --query | grep -i connected

On the open driver this is normally HDMI-0. On some driver versions it is DFP-0. Use whatever this command reports in the config below.

Step 3 — Apply the driver override

Create /etc/X11/xorg.conf.d/10-edid-override.conf with the following. Replace HDMI-0 with the name from Step 2 if different.

Section "Device"
    Identifier  "nvidia"
    Driver      "nvidia"
    Option "CustomEDID" "HDMI-0:/etc/X11/optoma.bin"
EndSection
Keep it minimal

Use only the CustomEDID line. Do not add forced ModeLines, metamodes, or mode-validation overrides — on this hardware they made behaviour worse, not better. Let the driver select the mode from the supplied EDID as it normally would.

Step 4 — Reboot and verify

Reboot fully (not just a display-manager restart), so the fix is exercised through the boot sequence. Then confirm the real modes are present:

xrandr

Expected result

CheckPass condition
Available modes3840×2160 and 1920×1080 @240Hz are listed for the output
Active resolutionThe intended mode is selected — no 1024×768 fallback
Re-probe stabilityRunning xrandr with no arguments does not drop the signal

Why it works

The projector's video path is unaffected by the defect — the failure is purely that the driver rejects a checksum-invalid EDID and therefore has no valid mode list. EDID (read by the source over the DDC channel) and the video signal itself are independent. Supplying a valid EDID from a file gives the driver the correct mode list directly, so the corrupt read is never consulted and the fallback never triggers.

Reverting

Delete the config file and reboot:

sudo rm /etc/X11/xorg.conf.d/10-edid-override.conf

Removes the override cleanly · no other system state is changed · projector untouched throughout

TrueClays — internal technical note, shared with Optoma for reference. Environment: Ubuntu 24.04 LTS, NVIDIA RTX 5060 Ti (open driver), X11. Workaround only; root cause is the invalid Block 0 checksum in the HDMI2 stored EDID.
EDID Fix | TrueClays