11

Is it possible to create or extract the Extended Display Identification Data (EDID) for/from a monitor. I have some issues with my monitor with the VGA and HDMI cables and I would like to test if by adding the EDID to the Nvidia Settings it could help in solve this issues.

With the VGA cable I get a black out error and with the HDMI I get some EDID errors (bad EDID). So how can I create the EDID or extract it from the monitor by detecting its capabilities.

Luis Alvarado
  • 217,203

3 Answers3

19

Got it. Was wrongly searching in the apt search box for ESID instead of EDID. Found the read-edid app which comes with 2 programs, get-edid which is the one I need to extract the data from the Monitor and then parse-edid which reads the binary output from get-edid (In the same pipeline) and parses it in a human readable format. After this I can include it in the Nvidia Settings and test out the outcome but at least I can extract the EDID from the Monitor.

The how to use it is also here: http://manpages.ubuntu.com/manpages/oneiric/man1/get-edid.1.html

but basically is what I just did:

get-edid > filename then parse-edid < filename or just do get-edid | parse-edid

Also the nvidia-settings includes a "Adquire EDID" button that saves into binary or text format.

I will leave this here although this question might not come out a lot, it will help anybody that is looking for something related to extracting the EDID.

Luis Alvarado
  • 217,203
1

I had issues getting the edid using read-edid, however it is also possible to get the data directly from sysfs: cat /sys/class/drm/card0-HDMI-A-1/edid > edid.bin

Pelle
  • 373
0

In 2025, the most up-to-date and maintained EDID decoder seems to be edid-decode from LinuxTV's / Video4Linux's v4l-utils. It is available e.g. in the original Ubuntu 24 (noble) package repository: sudo apt install edid-decode.

Be aware that this answer discusses edid-decode, not decode-edid from the i2c-tools package (notice flipped words).

Prerequisites

Find available EDID sources:

for edid_file in /sys/class/drm/*/edid; do
  status_file="${edid_file%/edid}/status"
  if [ -f "$status_file" ] && grep -qx "connected" "$status_file"; then
    echo "connected: $edid_file"
  fi
done

E.g. on my system, this snippet returns the following output:

connected: /sys/class/drm/card0-DP-3/edid
connected: /sys/class/drm/card0-eDP-1/edid
  • /sys/class/drm/card0-DP-3/edid is for my external monitor
  • /sys/class/drm/card0-eDP-1/edid is for my laptop's built-in screen

Option 1: using edid-decode from the command line:

Run edid-decode on any of the connected EDID files identified in the prerequisites step:

edid-decode /sys/class/drm/card0-DP-3/edid

This will output an extensive interpretation of the EDID data, including e.g. (if present) CTA-861 Extension Block data.

Option 2: use online edid-decode webtool

  • Get a hexdump of the (binary) EDID content from any of the connected EDID files identified in the prerequisites step:

    # requires `xxd` command, available via `sudo apt install xxd`
    
    

    manual copy-paste strategy: show hexdump

    xxd -p /sys/class/drm/card0-DP-3/edid

    automatic copy-paste strategy: show hexdump and copy to clipboard

    xxd -p /sys/class/drm/card0-DP-3/edid | tee /dev/tty | wl-copy

    This will provide output similar to the following:

    00ffffffffffff004c2d3d72000000002a1f0104a54627783a64a5a4544d
    9a260f505425cf00714f81c0810081809500a9c0b300d1c008e80030f270
    5a80b0588a00501d7400001e565e00a0a0a0295030203500501d7400001a
    000000fd00184b0f510f000a202020202020000000fc0053414d53554e47
    0a2020202020017a02031df04761605f101f04132c090707150750570700
    67540083010000023a801871382d40582c4500501d7400001e0000000000
    000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000043
    
  • Visit https://hverkuil.home.xs4all.nl/edid-decode/edid-decode.html , paste the hexdump into the lext textarea, and click the Process button. The interpretion of the provided data will be shown on the right side.

Abdull
  • 734