Recently I started using my old DELL U2412M monitor on a system with integrated Intel graphics. As the motherboard exposes HDMI output only, and my monitor has DVI-D, I used some cheap passive DVI-D to HDMI adapter signal adapter. Unfortunately in this setup the card was not able to receive EDID info. Combine that with early KMS enabled on Fedora, all I could get is a blank screen with a timing error warning.

It is possible to set custom EDID on Fedora following these steps:

  1. Get a valid EDID file

    This is a file I found online (U2412M.bin), and quickly checked it with a parse-edid tool. It is also possible to extract valid EDID from another system, where EDID is correctly recognized.

  2. Move the file to /usr/lib/firmware/edid

  3. Edit grub config file

    Edit /etc/defaults/grub and add this option to GRUB_CMDLINE_LINUX:

    drm_kms_helper.edid_firmware=HDMI-A-1:edid/U2412M.bin

    I also set video=HDMI-A-1:D option to force output to be connected even if I disconnect the cable.

    Regenerate the grub config file with grub2-mkconfig > /boot/grub2/grub.cfg

  4. Rebuild initramfs

    KMS is set early, from initramfs so we need to include our EDID file in the generated initrd.

    I’ve added install_items+=" /usr/lib/firmware/edid/U2412M.bin " to /etc/dracut.conf.d/99-local.conf and used dracut -f to rebuild the active initrd.

    Check with lsinitrd that the EDID file is included.

  5. Reboot

Solved, and no need for these HDMI dummy plug - EDID emulator!

References: