How to eliminate EDID checksum errors?

11,102

Solution 1

From an answer at linuxforums:

Set the video settings for kernel boot options via grub:

sudo nano /etc/default/grub

Add this line, or change it to this, or add this to the current line (if you know what you're doing). You can adjust the mode_options, the most import magic is nomodeset and noedid, minimally you can try just adding the noedid:

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset video=uvesafb:mode_options=1024x768-16@60,mtrr=0,scroll=ywrap,noedid"

This turns off KMS mode switching in the kernel; Use the uvesafb frame buffer; Set it to a resolution of 1024x768, with a depth of 16 at 60 Hz sync rate (other options can be 1920x1080-16, or 1600x1200-32@50, depends on your hardware) ; disable the memory type range registers (mtrr) for the framebuffer; enable display panning in a wrap-around mode, using VESA protected mode; do not probe the display to check for edid data. When you switch over to it or connect it to a monitor, then it should be set to that mode (already).

sudo update-grub

To make the grub settings get written to your /boot. Reboot and check it's working, with noedid you won't necessarily get a working display if you plug a different monitor in, possibly it could break (eg if the frequency is set higher than the display can handle; though I think modern displays avoid this).

If it still doesn't work try:

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset text"

and uncomment (remove the #)

#GRUB_TERMINAL=console

Which makes everything work in text only mode. Update grub, reboot.

Solution 2

I found that the cause of my problem was different and the above solution did not work. However, I did find a solution.

In my case the monitor I was using was old enough that it did not support the later means the kms kernel uses to extract the edid. It was necessary to:

sudo apt install read-edid
sudo get-edid -c > /lib/firmware/classic_edid.bin

The key there is the -c which uses an older way to get the edid. Then edit /etc/default/grub so that

GRUB_CMDLINE_LINUX_DEFAULT="drm_kms_helper.edid_firmware=classic_edid.bin <whatever else was already there>"

sudo update-grub

reboot and ... spammy complaint gone.

Share:
11,102
Steve Valliere
Author by

Steve Valliere

Updated on September 18, 2022

Comments

  • Steve Valliere
    Steve Valliere over 1 year

    I'm getting errors like this:

    [   17.774473] [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 209
    

    During and shortly after booting my Ubuntu Server 16.04.3 system. I have absolutely NO X-Windows installed on the system, so please don't tell me to change /etc/X11/xorg.conf since that file DOES NOT EXIST. I'm frustrated because the only help I can find involves changing the X config file, which is obviously not the solution I need.

    I'm just using a plain OLD VGA monitor because this system is in a comm closet and no one looks at the screen. There is a DVI port on the video card, but it is not used. The monitor works just fine, so I'm hoping someone can please tell me how to get the system to shut up about this EDID Checksum -- otherwise it occasionally spits the message out while I'm working on system config, scanning, etc. at the local monitor.

    EDIT: Adding requested command output

    $ lspci -k | grep -EA3 'VGA|3D|Display'
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] R480 [Radeon X800 GTO]
        Subsystem: PC Partner Limited / Sapphire Technology R480 [Radeon X800 GTO]
        Kernel driver in use: radeon
        Kernel modules: radeon
    01:00.1 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] R480 [Radeon X800 GTO] (Secondary)
        Subsystem: PC Partner Limited / Sapphire Technology R480 [Radeon X800 GTO] (Secondary)
    04:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5754 Gigabit Ethernet PCI Express (rev 02)
        Subsystem: Dell Precision 390
    

    FWIW, the output is the same when run with sudo.