NVidia EDID Issues»

For some reason, my Viewsonic LCD TV has an invalid EDID block. This normally doesn’t cause any real significant issues, but when I added a HDMI switch, the nvidia kernel module was only detecting resolutions up to 640×480. It seems it should be possible to convince it to just use whatever resolution I tell it to, but the options to do that weren’t actually working.

In the XOrg error logs, I was seeing this error:


The EDID read for display device DFP-1 is invalid: the checksum for EDID version 1 is invalid.

After some digging, I found an option to turn off the EDID checksum detection, add this to the “Section Device” block in xorg.conf:


Option "IgnoreEDIDChecksum" "DFP"

Where the DFP is the name of the monitor with the invalid checksum. This should be visible in the XOrg logs.

Now I get some errors like this:


[   290.050] (WW) NVIDIA(GPU-0): Ignoring EDID checksum for display DFP-1. Note that an EDID
[   290.050] (WW) NVIDIA(GPU-0):     with a bad checksum could indicate a corrupt EDID. A
[   290.050] (WW) NVIDIA(GPU-0):     corrupt EDID may have mode timings beyond the capabilities
[   290.050] (WW) NVIDIA(GPU-0):     of your display, and could damage your hardware. Please
[   290.050] (WW) NVIDIA(GPU-0):     use with care.

[   290.057] (WW) NVIDIA(0): The EDID for ViewSonic N3235w (DFP-1) contradicts itself: mode
[   290.057] (WW) NVIDIA(0):     "720x480" is specified in the EDID; however, the EDID's
[   290.057] (WW) NVIDIA(0):     valid HorizSync range (30.000-82.000 kHz) would exclude
[   290.057] (WW) NVIDIA(0):     this mode's HorizSync (15.7 kHz); ignoring HorizSync check
[   290.057] (WW) NVIDIA(0):     for mode "720x480".

However, it actually determines the correct resolution to use, and doesn’t just assume I want 640×480.