Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get monitor EDID in OSX?

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.

like image 281
Joel Barsotti Avatar asked Jul 02 '16 04:07

Joel Barsotti


People also ask

How do I find my monitor EDID?

From the NVIDIA Control Panel Select a Task pane, under Workstation, click View system topology. Locate the display with the EDID that you want to save, then click he corresponding Display [+] icon to expand the branch. Check the EDID Source. "Monitor" indicates that the actual monitor EDID is used.

How do I get an EDID file?

To create binary EDID and C source code files from the existing data material, simply type “make” in tools/edid/. If you want to create your own EDID file, copy the file 1024x768. S, replace the settings with your own data and add a new target to the Makefile.

Where is the EDID file?

This data is stored in the monitor's EEPROM in a format that is specified by VESA. Monitors provide the EDID to Microsoft Windows components, display drivers, and some user-mode applications.


2 Answers

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

like image 161
Edward Falk Avatar answered Sep 28 '22 02:09

Edward Falk


If you want to check EDID text, try

ioreg -lw0 -r -c "IODisplayConnect" -n "display0" -d 2 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6
like image 26
Steven Avatar answered Sep 28 '22 03:09

Steven