How to get monitor EDID in OSX?

Joel Barsotti picture Joel Barsotti · Jul 2, 2016 · Viewed 8k times · Source

I'm looking to pull the EDID information in OSX?

It looks like it's stored in the IORegistry. Is there a way to access it with the current monomac libraries? Can I do it with standard interop or do I need to write a custom shim?

It looks like the ioreg command line can also get to IODisplay EDID attribute, but there doesn't seem to be an easy way to get an abbreviated list of devices.

Answer

Edward Falk picture Edward Falk · Mar 12, 2020

Sadly, there's no out-of-the box solution.

First, what you want to do is download the "edid-decode" program. Unfortunately, it's not available via homebrew so you'll have to download it from https://git.linuxtv.org/edid-decode.git/ or https://github.com/timvideos/edid-decode. Luckily, it's just a single .c file, so you only need to type "make". (Don't do "make install" without editing the bindir and mandir in the Makefile). Put the resulting binary in your path.

Then execute ioreg -lw0 -r -c "IODisplayConnect" -d 2 | grep IODisplayEDID (kudos to @Steven) to get the EDID data in hex form for all of your monitors.

Select one of your outputs, copy the hex string to the clipboard, and then execute pbpaste | edid-decode