• Become a Premium Member for $25/year with no ads to improve your community experience. Upgrade to Pro Account for faster response and no wait times!

GUIDE How to Inject EDID [Clover/OpenCore]

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Messages
8,438
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
13.x
Bootloader
  1. OpenCore (UEFI)
Mac
  1. Mac mini
  2. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
How to Inject EDID [Clover/OpenCore]

An EliteMacx86 Exclusive Guide - This guide covers the implementation of EDID using Clover and OpenCore. By following this guide, you'll be able to extract the EDID using different methods and inject using Clover or OpenCore for macOS.

Overview


EDID stands for Extended Display Identification Data. The EDID contains all the information of a display in a metadata format. Some of the basic information includes display model, resolution, and refresh rate. Normally, the OS will detect the EDID automatically for the Display device connected and will include all the possible settings. However, in a few cases, the EDID may not be correct and due to this, you can have certain issues like color, sleep/wake, etc.

Note that it's generally not needed unless you have some sort of issue due to the automatic detection of EDID by OS.

Do I need to inject EDID?

Generally, injecting EDID is not necessary as it is automatically detected from the connected display. However, in cases where you have some sort of issue like the EDID is not detected automatically or is wrong, then you must inject the EDID. Some displays may result in a complete blank screen unless you inject a proper EDID. In addition, there are cases, where you need to inject a modified EDID to get the display.

Can I inject EDID for NVIDIA and AMD?

Yes, you can inject the EDID for NVIDIA and AMD GPUs as well.


STEP 1: Finding EDID


Depending on your preferences, choose one of the methods to grab EDID as described below. We recommend using the Ubuntu Method for the highest accuracy.

Method #1: Using IOReg

Using this method, you can grab EDID very easily. However, its limited to macOS and you also need working Graphics with acceleration, or the EDID will not be displayed. To grab EDID using IOReg, follow the steps below:

1. Download IOReg.
2. Open IOReg and type display in the search box.
3. You should see something similar to the screenshot attached below:
Screenshot 2020-12-20 at 5.17.08 PM.png
4. Find the AppleDisplay which is located under the display0 node. This is where the active display is connected to the particular framebuffer. On the right pane, you'll have several properties. Look for IODisplayEDID and you should see something similar to the screenshot attached below:
Screenshot 2020-12-20 at 5.23.04 PM.png
5. The IODisplayEDID is where your display EDID is located. To copy the EDID, simply click on IODisplayEDID and then double-click on the EDID Value.
6. Copy the complete value and paste the copied value into any text file.

NOTES:
  • The display node can be GFX0 or IGPU (if renamed properly).
  • The EDID Dump might be blank if your Graphics is not working and in that case, you'll have to use a different method to grab the EDID.

Method 2: Using DarwinDumper

DarwinDumper is one of the tools designed to extract various information on OS X/macOS, including System Report, IOReg, BIOS dump, and several other information. Unlike IOReg, it is also limited to macOS and cross platform version do not exist. To grab EDID using DarwinDumper, follow the steps below:

1. Download DarwinDumper
2. Extract DarwinDumper to get the DarwinDumper.app If you want, you can move it to your Applications directory.
3. Right-click on the DarwinDumper.app and click on Open.
Screen Shot 2024-05-05 at 4.32.38 AM-min.png
4. Select the path where you want to save the Dump. By default, the Save Path for the dump will be the location where you extract the App. To select a different location, click on Choose and select the directory where you want to save the dump.

Screen Shot 2024-05-05 at 4.33.07 AM-min.png Screen Shot 2024-05-05 at 4.33.15 AM-min.png
5. Click on Deselect All Dumps. By default, all dumps are selected. As you only need the EDID, simply select the EDID checkbox and click on Run. It will take a moment to prepare the dump.

Screen Shot 2024-05-05 at 4.33.36 AM-min.png Screen Shot 2024-05-05 at 4.33.40 AM-min.png
Once completed, you'll see Completed status just right to the dump and the result directory will be opened automatically.
Screen Shot 2024-05-05 at 4.33.45 AM-min.png Screen Shot 2024-05-05 at 4.34.38 AM-min.png

6. Quit DarwinDumper.
7. Open the EDID directory from the Dump (DarwinDumper....) and you'll have three files in the directory. EDID.bin, EDID.hex, and EDID.txt. EDID.hex is what you need. Copy EDID.hex to some other location.
Screen Shot 2024-05-05 at 4.34.44 AM-min.png

8. Open EDID.hex using any TextEditor or HexEditor tool. That's your EDID.
Screen Shot 2024-05-05 at 4.36.03 AM-min.png Screen Shot 2024-05-05 at 4.36.14 AM-min.png

NOTE: The EDID Dump might be blank if your Graphics is not working and in that case, you'll have to use a different method to grab the EDID.

Method 3: Using Ubuntu

Ubuntu is more than an Operating System and what information cannot be extracted on it? Using Ubuntu, you can also get the monitor information and get the EDID. To grab EDID using Ubuntu, follow the steps below:

1. Boot using Ubuntu LiveUSB. Once booted, select Try Ubuntu and click on Next.
Screenshot from 2024-05-05 11-01-23-min.png
2. Install edid decode package using sudo apt install edid-decode in Terminal.
Screenshot from 2024-05-05 11-02-59-min.png
3. Once the package is installed, you can display the EDID using the command xrandr --prop | edid-decode. The EDID will be displayed under edid-decode (hex)
Screenshot from 2024-05-05 11-04-02-min.png
4. You can select the EDID value and copy it to any .txt file on the USB.
Screenshot from 2024-05-05 11-04-19-min.png
5. Shut Down the Ubuntu and Remove the Live USB when prompted.

Method #4: Using Windows

If you're not familiar with Ubuntu, and the other methods explained don't work for you, you can use Windows to extract the EDID. To grab EDID using Windows, follow the steps below:

1. Visit EnTech Taiwan and download the Monitor Asset Manager
2. Install MonInfo. Simply continue with the installation instructions displayed. When prompted, select Create a desktop icon and click on Next.

Screenshot 2024-05-17 113655-min.png Screenshot 2024-05-17 113713-min.png

3. When the setup wizard is completed, select Launch MonInfo and click on Finish.

Screenshot 2024-05-17 113723-min.png

4. On the left pane, you'll see a bunch of Display IDs and just below that, you'll see the Raw Data (in Hex value). The right pane contains the complete monitor info.

Screenshot 2024-05-17 113934-min.png

5. The active monitor will be selected by default. If not, select the monitor (ending in Registry-Active). Yes, that's the current active monitor. Once selected, all the monitor info will be displayed in the right pane.
6. Maximize the MonInfo in full screen and you can view the details more easily. The Raw Data is what the EDID you're looking for!

Screenshot 2024-05-17 114011-min.png

7. To copy the EDID, simply select all the values under the Raw data section and copy it to any .txt file to an accessible location.
Screenshot 2024-05-17 114050-min.png

8. To dump the EDID.bin, click on File>Save as. Select the desired location to save the EDID.bin and click on Save.
Screenshot 2024-05-17 114323-min.png Screenshot 2024-05-17 114404-min.png

NOTE: Do not dump the EDID in .hex file as it's not accurate, at least using this app.


Patching EDID

As seen before, macOS appears to ignore the checksum. However, it's good to have it calculated the right way!

macOS Catalina and Later
If you're not aware, on macOS Catalina and later, the root volume is locked and needs write access to modify any files. This is done for the sake of security, but then has increased the problems at dev's end, or simply for those who like to tinker, especially on a non-Apple computer running macOS.

Modifying EDID

If you're having a black screen after wake, provided that your ACPI patching is correct, modifying the EDID will probably fix your issue.

1. Extract the EDID using the DarwinDump method.
2. Copy the EDID.bin file to any other directory.
3. Open the FixEDID App.
4. Click on the Open EDID binary file and select the EDID.bin.
5.
6.
7. Click on Make. FixEDID will automatically generate a new directory on the Desktop.



STEP 2: Injecting EDID


Now, as we've EDID value, we can inject it using config.plist for macOS. You can also inject it using the SSDT.
To inject the EDID, follow the steps below.

1. Find the Device Path of the GPU. The IGPU path for Intel Graphics is PciRoot(0x0)/Pci(0x2,0x0).
2. Mount your ESP.
3. Open your config.plist.
4. Depending on the bootloader you use, add the following properties to your config.plist under Devices>Properties (for Clover) and DeviceProperties (for OpenCore):

DevicesKeyValueType
Your Device PathAAPL00,override-no-connectYour EDID ValueDATA

5. Paste the EDID value that you copied previously.
6. Save your config.plist.

NOTE:
  • If you're using the IOReg method, you must remove < and > from the copied value from IOReg.

STEP 3: Restart your System


After performing all the above steps, restart your system for the applied changes to take effect.
 
Last edited:
Any chance anybody has the "Apple iMac Retina Display" EDID available so I can try to see if i can override my monitor's announced EDID?
 
Any chance anybody has the "Apple iMac Retina Display" EDID available so I can try to see if i can override my monitor's announced EDID?
You can make it using the FixEDID or Hackintool. EDID change is only required when you have display issues otherwise its not required.
 
H
You can make it using the FixEDID or Hackintool. EDID change is only required when you have display issues otherwise its not required.
Hackintool doesn't seem to give a direct EDID DATA for opencore and the .kext bootloops. I can't figure out the interface to modify the second parameter of the resolution.

Will hunt down and try FixEDID
 
Last edited:
BTW, this is for external monitors on an AMD 6600XT displayport connector.
For some reason my monitors don't allow 4K with HiDPI, which is important for doing CAD. The text is mostly illegible if not on HiDPI, which lowers the resolution to something one monitor shows as fuzzy.
Not sure what the device root is. I'll check hackintool, but does 'AAPL00,override-no-connect' work with non internal devices?
 
Last edited:
H

Hackintool doesn't seem to give a direct EDID DATA for opencore and the .kext bootloops. I can't figure out the interface to modify the second parameter of the resolution.

Will hunt down and try FixEDID
FixEDID is 8 years old and not working on 64bit newer Macs :confused:
 
BTW, this is for external monitors on an AMD 6600XT displayport connector.
For some reason my monitors don't allow 4K with HiDPI, which is important for doing CAD. The text is mostly illegible if not on HiDPI, which lowers the resolution to something one monitor shows as fuzzy.
Not sure what the device root is. I'll check hackintool, but does 'AAPL00,override-no-connect' work with non internal devices?
You don't need to inject EDID for that. You'll have to setup HiDPi.
 
FixEDID is 8 years old and not working on 64bit newer Macs :confused:
Not sure which version you tried. But to mention again, injecting EDID will not help you to fix the issue you have.
 
You don't need to inject EDID for that. You'll have to setup HiDPi.
I have obviously tried that. My monitor will not get native 4K (3840x2160) and HiDPI. only some weird resolution gets HiDPI and the screen becomes slightly fuzzy and hard to read.
I am trying to get *native* resolution (4k) and HiDPI at the same time. I have failed to find a way.
I have swapped the motherboard and the video card to another system that does work (with another monitor brand) and still the same. The only factor left seems to be EDID given by the cheaper monitors.
I'm open to any suggestion to force HiDPI onto my system.
 
I have obviously tried that. My monitor will not get native 4K (3840x2160) and HiDPI. only some weird resolution gets HiDPI and the screen becomes slightly fuzzy and hard to read.
I am trying to get *native* resolution (4k) and HiDPI at the same time. I have failed to find a way.
I have swapped the motherboard and the video card to another system that does work (with another monitor brand) and still the same. The only factor left seems to be EDID given by the cheaper monitors.
I'm open to any suggestion to force HiDPI onto my system.
Provide complete system details along with the monitor.
 

Forum statistics

Threads
1,934
Messages
18,042
Members
27,799
Latest member
bandini