Contribute
Register

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

Alright, so my USB drive got a bit of a workout. I systematically tried every option presented, but was unsuccessful. The results of these tests and an example of the config I have been using are below. Any thoughts on how I should proceed? I suspect there is some option in my config that I am overlooking? Or perhaps I am patching something incorrectly.

i7-8700k
Intel UHD 630
Gigabyte Z390 Aorus Elite
Hackintool v1.7.7
PlatformID: 0x3E9B0007
Device ID: 0x3E92

BusID: 0x04 / BAAAAA==
Index 1 / AQAAAA==: Apple Loading Screen -> Black Screen
Index 2 / AqAAAA==: Apple Loading Screen -> Black Screen
Index 3 / AwAAAA==: Apple Loading Screen -> Hangs during loading

BusID: 0x01 / AQAAAA==
Index 1 / AQAAAA==: Apple Loading Screen -> Black Screen
Index 2 / AqAAAA==: Apple Loading Screen -> Black Screen
Index 3 / AwAAAA== Apple Logo -> Stop Sign

BusID: 0x06 / BgAAAA==
Index 1 / AQAAAA==: Apple Loading Screen -> Black Screen
Index 2 / AqAAAA==: Apple Logo -> Stop Sign
Index 3 / AwAAAA==: Apple Loading Screen -> Black Screen
Some follow-ups:
  • Please update your profile by specifying the Motherboard, CPU, and GPU so this information appears under your avatar.
  • In which folder are Lilu and WhateverGreen located:
    • Are they in /Library/Extensions?
    • Are they in /EFI/CLOVER/kexts/Other?
  • If they're in /Library/Extensions, your CsrActiveConfig (in RtVariables) is set to 0x0, which could prevent them from loading. In any event, CsrActiveConfig should be changed to 0x67.
  • It's also good to enable the Trust flag in SMBIOS so those settings are applied instead of auto-detected settings.
How to proceed:
  • At this time it would be advisable to power down the system and unplug power cable from the wall or power supply (yes, no joke) for 10 seconds and re-plug. This clears some information from CMOS.
  • Then try the 4 cases listed. Because you have only 1 port and we know it's HDMI, we can run 3 experiments in each go-around. With 4 go-arounds we can test all 4 BusIDs in each of 3 indexes:
Case A:
  • Index 1 : BusID 0x04, Type HDMI
  • Index 2 : BusID 0x01, Type HDMI
  • Index 3 : BusID 0x06, Type HDMI
Case B:
  • Index 2 : BusID 0x01, Type HDMI
  • Index 2 : BusID 0x04, Type HDMI
  • Index 3 : BusID 0x02, Type HDMI
Case C:
  • Index 1 : BusID 0x06, Type HDMI
  • Index 2 : BusID 0x02, Type HDMI
  • Index 3 : BusID 0x04, Type HDMI
Case D:
  • Index 1 : BusID 0x02, Type HDMI
  • Index 2 : BusID 0x06, Type HDMI
  • Index 3 : BusID 0x01, Type HDMI
 
Thanks for all the tips!!
So, DVI may not be operational, that's my problem. Anyone more info on this? Can we make it operational somehow?
Also hdmi works only when you plug it in, not when you restart. Then you have to take it out and plugin again.
I am making the Mac for someone with a disability, so it's important to get the hdmi working all the time...
Hope anyone has more info on this for the H370M DS3H!
Try changing Type "DVI" to "HDMI" instead. I'll change that in the Guide.

HDMI hot-plug is still an issue. Hopefully a solution will be found soon.
 
Hi,
I was trying above method with my hd 530 ASrock h170 mainboard with only two outputs DVI and HDMI. DVI works fine using both platform id 19120000 and 193B005. HDMI turns black during booting. FB patch installed due to manual above but no result.My connectors always look same after patching.
  • Did you select "Apply Current Patches"? If so, then the Connectors page will reflect current settings. Right now it seems to be showing default settings.
    Hackintool - Patch Menu.png
  • If the screenshot in your post was made with DVI connection, we can see it's mapped to Port 7. So for HDMI you might try changing the Type of Indexes 1, 2, and 3 to HDMI:
Case 1:
Index 1 --> Type HDMI
Index 2 --> Type HDMI
Index 3 --> Type HDMI (DVI type should be set to HDMI anyway)

Case 2: Try changing BusIDs
What BusID are you using for Index 3? Whatever it is, keep that fixed because it seems to be working, so change BusIDs only for Index 1 and Index 2. The possible BusIDs for HDMI are:

0x01, 0x02, 0x04, 0x06

There might be others, but these are the known ones.
 
Some follow-ups:
  • Please update your profile by specifying the Motherboard, CPU, and GPU so this information appears under your avatar.
  • In which folder are Lilu and WhateverGreen located:
    • Are they in /Library/Extensions?
    • Are they in /EFI/CLOVER/kexts/Other?
  • If they're in /Library/Extensions, your CsrActiveConfig (in RtVariables) is set to 0x0, which could prevent them from loading. In any event, CsrActiveConfig should be changed to 0x67.
  • It's also good to enable the Trust flag in SMBIOS so those settings are applied instead of auto-detected settings.
How to proceed:
  • At this time it would be advisable to power down the system and unplug power cable from the wall or power supply (yes, no joke) for 10 seconds and re-plug. This clears some information from CMOS.
  • Then try the 4 cases listed. Because you have only 1 port and we know it's HDMI, we can run 3 experiments in each go-around. With 4 go-arounds we can test all 4 BusIDs in each of 3 indexes:
Case A:
  • Index 1 : BusID 0x04, Type HDMI
  • Index 2 : BusID 0x01, Type HDMI
  • Index 3 : BusID 0x06, Type HDMI
Case B:
  • Index 2 : BusID 0x01, Type HDMI
  • Index 2 : BusID 0x04, Type HDMI
  • Index 3 : BusID 0x02, Type HDMI
Case C:
  • Index 1 : BusID 0x06, Type HDMI
  • Index 2 : BusID 0x02, Type HDMI
  • Index 3 : BusID 0x04, Type HDMI
Case D:
  • Index 1 : BusID 0x02, Type HDMI
  • Index 2 : BusID 0x06, Type HDMI
  • Index 3 : BusID 0x01, Type HDMI

Casey,

I attempted the aforementioned Cases in order, but unfortunately all resulted in Apple Loading Screen -> Black Screen. This time around, however, I used Screen Share to see what was going on under the hood (as you suggested).

I can see that with Case A above my monitor is recognized by: Index 1: BusID 0x04, Type HDMI. I can also see that the framebuffer patch is being applied partially as the Intel UHD Graphics 630 is showing up with the patched 2048MB of VRAM. Screen Shots Below

Ive made the suggestions to SIP (0x67), but Im a bit lost as to how I should proceed. I wonder if I am missing something with a kext or .efi option?
 

Attachments

  • Screen Shot 2019-01-20 at 9.38.27 AM.png
    Screen Shot 2019-01-20 at 9.38.27 AM.png
    597.4 KB · Views: 152
  • Test 2: Hackintosh - Intel UHD 630 Graphics Patching For Mojave 10.14.2.jpg
    Test 2: Hackintosh - Intel UHD 630 Graphics Patching For Mojave 10.14.2.jpg
    121.4 KB · Views: 132
  • Screen Shot 2019-01-20 at 9.39.58 AM.png
    Screen Shot 2019-01-20 at 9.39.58 AM.png
    677.8 KB · Views: 125
Last edited:
Casey,

I attempted the aforementioned Cases in order, but unfortunately all resulted in Apple Loading Screen -> Black Screen. This time around, however, I used Screen Share to see what was going on under the hood (as you suggested).

I can see that with Case A above my monitor is recognized by: Index 1: BusID 0x04, Type HDMI. I can also see that the framebuffer patch is being applied partially as the Intel UHD Graphics 630 is showing up with the patched 2048MB of VRAM. Screen Shots Below

Ive made the suggestions to SIP (0x67), but Im a bit lost as to how I should proceed. I wonder if I am missing something with a kext or .efi option?
This particular configuration sounds hopeful. When the black screen appears try unplugging and plugging the HDMI cable (hot plug). Does it make a difference?
 
This particular configuration sounds hopeful. When the black screen appears try unplugging and plugging the HDMI cable (hot plug). Does it make a difference?

No dice, unfortunately. I should note the HDMI port on this port is only 1.4, as such I have been trying both with and without the HDMI20 option enabled.
 
  • Did you select "Apply Current Patches"? If so, then the Connectors page will reflect current settings. Right now it seems to be showing default settings.
    View attachment 380734
  • If the screenshot in your post was made with DVI connection, we can see it's mapped to Port 7. So for HDMI you might try changing the Type of Indexes 1, 2, and 3 to HDMI:
Case 1:
Index 1 --> Type HDMI
Index 2 --> Type HDMI
Index 3 --> Type HDMI (DVI type should be set to HDMI anyway)

Case 2: Try changing BusIDs
What BusID are you using for Index 3? Whatever it is, keep that fixed because it seems to be working, so change BusIDs only for Index 1 and Index 2. The possible BusIDs for HDMI are:

0x01, 0x02, 0x04, 0x06

There might be others, but these are the known ones.



Thanks for tip. Yes I missed this apply current patches but copy/pasted patches to config anyway. Now I found that previously blask screen was activated by tab as monitor opens log screen. Moreover resolution of my monitoring HDMI is weird and doesn't match original resolution what means that all sides go beyond my screen and monitor has no manual adjustment option. Is there any fix to correct this behavior.
 
UPDATE: I got it working. Thanks for all your help, Casey!

I began by setting all ports to BusID 0x04 and Type HDMI. When I did this I noticed that Screen Share showed three screens and, more importantly, my external monitor was flickering between a black screen and an image of the desktop. I assumed the image on my external monitor was cycling through the three desktops I was seeing in Screen Share. This was encouraging because one of those port/bus combinations had to be working. I then systematically went through enabling a port and setting the others to 0x00 until I found a working solution. It ended up being port 7. The image and device xml is below.

Note: Because this motherboard is only HDMI 1.4 I disabled did not select VRAM or HDMI20 patching. However, I did test with the VRAM patch and that seems to work fine.

XML:
<key>Devices</key>
    <dict>
        <key>Audio</key>
        <dict>
            <key>Inject</key>
            <integer>16</integer>
            <key>ResetHDA</key>
            <true/>
        </dict>
        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                BwCbPg==
                </data>
                <key>device-id</key>
                <data>
                kj4AAA==
                </data>
                <key>framebuffer-con0-busid</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con0-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con1-busid</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con1-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con2-busid</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-con2-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con2-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-fbmem</key>
                <data>
                AACQAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-stolenmem</key>
                <data>
                AAAwAQ==
                </data>
                <key>framebuffer-unifiedmem</key>
                <data>
                AAAAgA==
                </data>
            </dict>
        </dict>
 

Attachments

  • Screen Shot 2019-01-20 at 11.01.15 AM.png
    Screen Shot 2019-01-20 at 11.01.15 AM.png
    374.8 KB · Views: 146
  • Screen Shot 2019-01-20 at 11.01.29 AM.png
    Screen Shot 2019-01-20 at 11.01.29 AM.png
    478 KB · Views: 162
UPDATE: I got it working. Thanks for all your help, Casey!

I began by setting all ports to BusID 0x04 and Type HDMI. When I did this I noticed that Screen Share showed three screens and, more importantly, my external monitor was flickering between a black screen and an image of the desktop. I assumed the image on my external monitor was cycling through the three desktops I was seeing in Screen Share. This was encouraging because one of those port/bus combinations had to be working. I then systematically went through enabling a port and setting the others to 0x00 until I found a working solution. It ended up being port 7. The image and device xml is below.

Note: Because this motherboard is only HDMI 1.4 I disabled did not select VRAM or HDMI20 patching. However, I did test with the VRAM patch and that seems to work fine.
If I could give you 100 likes for this post, I would! Your approach to problem solving was brilliant -- and it defied every rule in the book. Rule breakers sometimes get the job done when others can't!

Your screenshot in Post #114 shows clearly shows that your LG HDR 4K monitor is on Port 5. Even the monitor's serial number is displayed. So conventional thinking suggested that we try all possible BusIDs on Port 5 (Index 1). Conventional thinking also says, do NOT use the same BusID more than once.

But you decided to break the rules!

You used the same BusID for all 3 ports and found your desktop lurking somewhere in the shadows. This little ray of hope allowed you to eventually find it on Port 7. Well done.

Now, however, we must ask the questions:
  1. Why did Case C not work? Maybe the other BusIDs needed to be zero?
  2. Why does your first screenshot say Port 5? Is that a bug in the software or something else?
 
Last edited:
Thanks for tip. Yes I missed this apply current patches but copy/pasted patches to config anyway. Now I found that previously blask screen was activated by tab as monitor opens log screen. Moreover resolution of my monitoring HDMI is weird and doesn't match original resolution what means that all sides go beyond my screen and monitor has no manual adjustment option. Is there any fix to correct this behavior.
Does this mean you were able to activate HDMI port, but the monitor is displaying an image that extends beyond the sides of the display (stretched out)?

Can you please post 2 screenshots as follows:
  1. Screenshot of Hackintool --> Connectors with only HDMI connected. And click on the red line so that we can see the "Port" number on the bottom right.
  2. Screenshot of Hackintool --> Connectors with only DVI connected. And click on the red line so that we can see the "Port" number on the bottom right.
 
Back
Top