Contribute
Register

[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)

Hi guys. I have a compact build asrock h170m itx with i3 7100 HD630 graphics, acceleration is working but I'm trying for almost a month getting sleep/wake working and I still couldn't find out a solution.
Lately I did a custom ssdt for usb inject all the system sleeps, but when I try to wake up it reboots with kernel panic message.
I'd like to be advised if I should play with my connectors configurations present in this guide to try to fix this problem.
I don't need double monitors, all I need is one hdmi connection working.
Should I try to disable Dvi and vga ports? Could it help with wake up issue?
Thanks.
Some questions:
  • Which operating system version are you running?
  • The HDMI port on motherboard is working with iGPU acceleration ('About this Mac' shows you have 1536MB VRAM)?
    • If so, did you apply a connector patch to enable HDMI?
  • If a connector patch has already been applied and HDMI output is working, then:
    • Configuring the other connectors may not make a difference, but you can still try enabling your DVI-D port or set all the other connectors to Index -1, BusID 0x00, Type DUMMY.
  • For wake-related issues:
    • You might want to try different values of darkwake in Clover Configurator --> Boot Arguments section.
    • Disconnect all internal and external USB devices except keyboard and mouse. Check if sleep and wake are okay. If so, reconnect one USB device at a time until you find the offending device.
    • Install EmuVariableUefi-64.efi in the drivers64UEFI folder and see if that makes a difference.
    • Run IORegistryExplorer and look under the XHC section to ensure that the USB ports you defined in the SSDT -- and only those ports -- are listed.
    • Search this site -- you will find a lot of good information.
 
Hi @CaseySJ hello everyone. I have re-installed a clean version of Mojave, but even though hackintool now works, I can't get the correct patches. I tried all the combinations. Could you give me some help?
Note: Using smbios 17,1 I see everything well, but only one monitor.
If I use 18.3 the active connectors are 2 but I see so many lines and always only one monitor. I attach all images, Ioreg and the config.plist (of version 17.1).
Thank you so much!
  • Can you remind us of the make and model of your monitor?
  • Are you using one monitor or multiple monitors? If multiple, please list the makes and models of each.
  • And you are using straight "apples to apples" video cables instead of video adapters?
  • Which video output always gives you a good image? Is it the HDMI output? (With HDMI to HDMI cable?)
  • Which video output gives you the broken image? Is it the DisplayPort output? (With DP to DP cable?)
  • Have you tried iMac14,2?
 
  • Can you remind us of the make and model of your monitor?
  • Primary HP 24o - Secondary Samsung Syncmaster 21.5
  • Are you using one monitor or multiple monitors? If multiple, please list the makes and models of each.
  • Multiply - See up
  • And you are using straight "apples to apples" video cables instead of video adapters?
  • Normal video cable - Dp to HDMI - DVI to DVI
  • Which video output always gives you a good image? Is it the HDMI output? (With HDMI to HDMI cable?)
  • The first monitor DP to HDMI (HP 24o), but only with 17,1
  • Which video output gives you the broken image? Is it the DisplayPort output? (With DP to DP cable?)
  • Yes, but with DP to HDMI Cable (only in 18,3)
  • Have you tried iMac14,2?
  • Not yet, I try?
Thanks...
 
This (finally) reminds me that WhateverGreen has a problem with AppleIntelFramebufferAzul. So we should not use WhateverGreen. This means we should do this:
  • Clover Configurator --> Devices --> Properties --> delete
  • Clover Configurator --> Devices --> IntelGFX --> empty or blank
  • Clover Configurator --> Graphics --> Inject Intel --> check on
  • Clover Configurator --> Graphics --> ig-platform-id --> empty or blank
Then we should add the following patch to:
  • Clover Configurator --> Kernel and Kext Patches
    • Name: AppleIntelFramebufferAzul
    • Find: 0300220D 00030303 00000002 00003001
    • Replace: 0300220D 00030303 00000004 00000003
    • Comment: Framebuffer4K
This means we cannot directly control or change video connector settings on the motherboard, but it is good to know that at least HDMI is working. So that will be the only available port. The Kernel and Kext Patch above will allow 4K display through HDMI.

You can read lots of sordid details here:
and here:
Hello CaseySJ
performed as described, but upon restarting the black screen with 4 apples and I arrive at the desktop
HDMI does not work
404393
 

Attachments

  • Fabio’s iMac.zip
    940.8 KB · Views: 66
  • Can you remind us of the make and model of your monitor?
  • Primary HP 24o - Secondary Samsung Syncmaster 21.5
  • Are you using one monitor or multiple monitors? If multiple, please list the makes and models of each.
  • Multiply - See up
  • And you are using straight "apples to apples" video cables instead of video adapters?
  • Normal video cable - Dp to HDMI - DVI to DVI
  • Which video output always gives you a good image? Is it the HDMI output? (With HDMI to HDMI cable?)
  • The first monitor DP to HDMI (HP 24o), but only with 17,1
  • Which video output gives you the broken image? Is it the DisplayPort output? (With DP to DP cable?)
  • Yes, but with DP to HDMI Cable (only in 18,3)
  • Have you tried iMac14,2?
  • Not yet, I try?
Thanks...
  • HP 24o has HDMI, DVI-D, VGA
  • Samsung Syncmaster 21.5 has many models, but S22B350H has HDMI, VGA
  • Your monitors do not have DP.
  • Because you're using a DP-to-HDMI cable it means you're using DP Output on the motherboard and HDMI input on the monitor.
  • Do you have HDMI to HDMI cable? If so, have you tried it? Does it work on both monitors?
  • You get a good image using DP-to-HDMI cable connected to HDMI input on HP 24o monitor.
  • You get a bad image using DP-to-HDMI cable connected to HDMI input on Samsung Syncmaster monitor?
  • Because your motherboard has only one DisplayPort output, it means that the same output works on Monitor A, but fails on Monitor B. This means the problem is due to the monitor.
  • It's possible that the Samsung Syncmaster needs a different refresh rate.
    • Connect DP-to-HDMI cable to Samsung monitor.
    • In System Preferences --> Displays --> Option-Click on "Scaled" and try selecting a different resolution and/or refresh rate (if available).
  • No need to try iMac14,2 yet.
 
Hello CaseySJ
performed as described, but upon restarting the black screen with 4 apples and I arrive at the desktop
HDMI does not work
View attachment 404393
There's a good chance that DisplayPort will work. It would be good to test DP-to-DP if you can.

However, you can always go back to the settings in Post #607. In this case:
  • Clover Configurator --> Graphics --> Inject Intel --> uncheck
  • Then apply the connector patches for WhateverGreen using Hackintool (repeat the process from Post 607)
This should enable HDMI. And you can test DP output if you have a DP-to-DP cable/monitor.

I think the big lesson here is:
  • Older monitors can be a big problem. If the monitor does not support DP 1.2+ or HDMI 1.4+ then there is a good chance it will create a lot of problems.
 
@CaseySJ, thanks for the guide! :)

I just read the entire thread (all 62 pages!), in order to inform my self of all the details before attempting this. I have a few rigs I'm upgrading and would like to get IGPU working.

For the purpose of this post, I'm working with the following hardware: Gigabyte H370 Aorus Gaming 3 WIFI (with the WIFI module removed), Intel i5-8400, and Acer ET321-HQU (2560X1440) monitor (has HDMI, DP and DVI). I also have a Dell U2415 (1920X1200, DP and HDMI) and a Gateway 2703 (1920X1080, DVI and VGA) that I can also test on if need be. All tests will be done with direct cables, no adapters/converters.
Software: Mojave 14.4, Hackintool 2.4.4, Clover 4920, latest LILU, AppleALC, WhateverGreen, FakeSMC, USBInjectAll (with proper custom USB SSDT in place) and Ethernet kext in L/E.
I'll also be doing this procedure on 2 other Gigabyte boards, and will post working configurations for all 3 as soon as they are confirmed working; all boards running latest Gigabyte BIOS.

But for now, due to the methodical testing that must be performed, my goal is to know what is the minimal amount of things I need to include in the patch to successfully test ports (what boxes to check/uncheck), without adding unnecessary/extra variables that may interphere or mess things up. So my questions (before I get started) are as follows:

1. Do I need to do anything with the connector flags? By default, when openning Hackintool, some of the flags are checked. Should they all be unchecked?

2. I'm assuming since Mojave 14.4 has support for CFL graphics that I don't need to use device ID, just the recommended 3E9B0007 ig-platform-id? (read a post a few pages back that seems to imply this)

3. Since my UEFI allows me to change video mem sizes and such, do I need the VRAM boxes checked when patching? Or just connectors and graphic device?

4. Do I need HDMI20 checked (is it for 4k only, or would 1440p (2k?) also require it)?

5. Do I do anything with the pipes number column? Only mention of it I read was setting them all to 18 to fix a certain issue; is leaving them at their default for now also OK? Right now with the ig-platform-id set, they are 9, 10, and 8 for index 1-3 respectively.

6. This board only has 2 ports, 1 DVI and 1 HDMI. Is using type dummy and busID 0x00 still the best way to disable the third unused port?

7. Finally, (more so for informational/learning purposes), is there a post somewhere that explains when to check what box in the patch section of Hackintool to produce certain effects? At least those that relate to FB patching. :) If not, any chance they could be added to your guide? It may be useful to have a good understanding in order for each user to be informed of what they may or may not require when patching.

That's all for now, thanks for any answers you or anyone else can provide!
 
Last edited:
Some questions:
  • Which operating system version are you running?
  • The HDMI port on motherboard is working with iGPU acceleration ('About this Mac' shows you have 1536MB VRAM)?
    • If so, did you apply a connector patch to enable HDMI?
  • If a connector patch has already been applied and HDMI output is working, then:
    • Configuring the other connectors may not make a difference, but you can still try enabling your DVI-D port or set all the other connectors to Index -1, BusID 0x00, Type DUMMY.
  • For wake-related issues:
    • You might want to try different values of darkwake in Clover Configurator --> Boot Arguments section.
    • Disconnect all internal and external USB devices except keyboard and mouse. Check if sleep and wake are okay. If so, reconnect one USB device at a time until you find the offending device.
    • Install EmuVariableUefi-64.efi in the drivers64UEFI folder and see if that makes a difference.
    • Run IORegistryExplorer and look under the XHC section to ensure that the USB ports you defined in the SSDT -- and only those ports -- are listed.
    • Search this site -- you will find a lot of good information.
Thanks a lot for your quick reply!
I'm running Mojave 10.14.3
Hdmi works with full acceleration and shows 1536 mb in about this Mac.
Smbios 18,1 imac
I did some patching when I was solving the hdmi audio issue following the method at idiots lilu guide, but in the end was not relevant cause my issue was related to Apple hda kext. Anyway, before that I already had acceleration by updating lilu and finding the right platform id for my hardware configuration.

Today I tried your advices, first tried the EmuVariableUefi-64.efi but didn't make difference. Then I tried darkwake 0, then darkwake=10, darkwake=8 and darkwake=2, but was always the same result, attempting to wake up results = restart the computer.

Xhc section has only the correct ports, my custom ssdt for usb inject all works perfectly.

Tried to exclude the other connectors with hackintool but after reboot had pink color screen and 2048mb vram! Was not intentional.
Tried to use other config plists after rebooting but even with my old configs the screen was still pink!! I was scared, but after many attempts somehow I got it back to 1536 vram. Now at least it's like it was before.
Does hackintool change things in the other config plists? Why these settings were not reverting back? I also tryed to clear nvram...

Also Sometimes when I play with some settings my asrock boot screen turns bigger, but stays like that even when I revert these settings. Does nvram somehow gets "locked".?

I did a lot of research but there are not many people with the same hardware and the ones I found have already give up trying to get sleep wake working.

Exept one guy that said disabling the other connectors fixed the issue for him. That's why I wanted to try...

Thanks again and congratulations for this awesome job at the community!
 
sorry to bother you, I have read all the answers, but didn't find about moutherboad MSI B360 MORTAR.I only have DVI dispaly,can you give me some advices?B360 have DVI,HDMI and DP。
 
@CaseySJ, thanks for the guide! :)

I just read the entire thread (all 62 pages!), in order to inform my self of all the details before attempting this.
There should be a Nobel Prize for that! :)
...
But for now, due to the methodical testing that must be performed, my goal is to know what is the minimal amount of things I need to include in the patch to successfully test ports (what boxes to check/uncheck), without adding unnecessary/extra variables that may interphere or mess things up. So my questions (before I get started) are as follows:

1. Do I need to do anything with the connector flags? By default, when openning Hackintool, some of the flags are checked. Should they all be unchecked?
You have a Coffee Lake CPU (i5-8400), Mojave 10.14.4, Gigabyte H370 Aorus Gaming 3 WIFI, and two good monitors with both DP and HDMI. You are already off to a great start.

You should start Hackintool by selecting:
  • Intel Generation: Coffee Lake
  • Platform ID: 0x3E9B0007
When you select the Connectors tab, the first three will be set to DP. Your motherboard has DVI-D and HDMI, which are both considered by MacOS to be type "HDMI". Your motherboard has no DP port. So your first test configuration might be:

Index 1: BusID 0x01, Type HDMI (unused port? You can set to HDMI anyway)
Index 2: BusID 0x04, Type HDMI (physically an HDMI port?)
Index 3: BusID 0x06, Type HDMI (physically a DVI-D port?)

Gigabyte boards with Coffee Lake CPUs tend to prefer BusID 0x04 for true HDMI (physical HDMI port). The BusID for DVI-D can take on any other value (0x01, 0x02, 0x06).

Be sure to follow the Procedure mentioned in the Guide by watching for red highlighted rows.

2. I'm assuming since Mojave 14.4 has support for CFL graphics that I don't need to use device ID, just the recommended 3E9B0007 ig-platform-id? (read a post a few pages back that seems to imply this)
Correct.

3. Since my UEFI allows me to change video mem sizes and such, do I need the VRAM boxes checked when patching? Or just connectors and graphic device?
Always start with the fewest patch settings. In your case omit the VRAM and DVMT Pre-Alloc settings in the beginning. But don't hesitate to add them if the system fails to boot, boots to a black screen, takes far too long to boot, etc.

4. Do I need HDMI20 checked (is it for 4k only, or would 1440p (2k?) also require it)?
This enables a patch for HDMI 2.0, which provides 4K at 60Hz. Not all systems require it. The HDMI port on your H370 is v1.4 that supports a maximum of 4K at 30Hz, so you do not need this.

5. Do I do anything with the pipes number column? Only mention of it I read was setting them all to 18 to fix a certain issue; is leaving them at their default for now also OK? Right now with the ig-platform-id set, they are 9, 10, and 8 for index 1-3 respectively.
In the Patch --> Advanced section you will find a checkbox labeled Hotplug Reboot Fix. This should be checked on to prevent the system from rebooting when you plug or unplug video cables while the system is running. This has the effect of setting all Pipe values to the same number, in this case 18 was chosen. We believe there's nothing special about the number 18. What's important is to place all connectors into the same Pipe.

6. This board only has 2 ports, 1 DVI and 1 HDMI. Is using type dummy and busID 0x00 still the best way to disable the third unused port?
Yes, but at this time you do not know whether the unused port is at Index 1, Index 2, or Index 3. So you have to start by setting them all to HDMI as previously mentioned and then seeing which row lights up in red when you connect HDMI cable and DVI-D cable. The row that never lights up is the unused port.

7. Finally, (more so for informational/learning purposes), is there a post somewhere that explains when to check what box in the patch section of Hackintool to produce certain effects? At least those that relate to FB patching. :) If not, any chance they could be added to your guide? It may be useful to have a good understanding in order for each user to be informed of what they may or may not require when patching.
Good idea. I'll add a section explaining some of the checkboxes, but for now, the minimum recommended configuration is shown in the two screenshots below.
Screen Shot 2019-05-08 at 7.25.18 PM.png Screen Shot 2019-05-08 at 7.25.48 PM.png
 
Last edited:
Back
Top