Contribute
Register

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

@CaseySJ,

The system is now able to enter sleep mode, which wasn’t possible before – though it takes very long. But it doesn't wake up from sleep, the screens stay black.

I realise that might be off topic, but I’m not sure as I don’t know whether it is related to the framebuffer.

Do you have suggestions as to what I can try or else, could you point me to a thread or forum or guide that could help me fix this?
Sleep and Wake are common problems, and there are an equally common number of solutions posted throughout this site. The search function works very well. If you cannot find a solution, feel free to start a new thread in Mojave Desktop Support.

Nevertheless here are some quick guidelines:
  • USB ports affect sleep and wake. Having a custom USB SSDT that activates up to a maximum of 15 ports is always advised.
  • In System Preferences --> Energy Saver make sure to disable "Wake for Network Access". Optionally, disable "Power Nap" as well.
  • Try setting darkwake=0 in Boot Arguments (Clover Configurator). Then see if you can wake from sleep. If not, try one of the other values for darkwake (2 or 8, etc.).
  • On some motherboards such as Designare Z390, sleep/wake functionality tends to be more reliable when all third-party kexts are installed in /Library/Extensions and Inject Kexts is set to Detect in Clover Configurator --> System Parameters.
 
A thing that might be of use for some people here:

In my case, if I don’t exactly set “Scaled”, “1280 × 1024” and “60 Hertz” in the Monitor settings in System Preferences, though working fine for the moment, the Philips is black after restart until I change settings in System Preferences to something else again.

Now from what I read here in this thread, it seems some people have the “black screen after restart problem” with any setting in Preferences: There is one or more settings that make the screen work, but none of them can prevent it from turning black after restarting the machine. But as long as there is no fix for this, here is a workaround:

If your GPU is capable of 32-bit colour depth, install Display Manager (presently in version 1.0.1) and use it with a Launch Daemon to automate “changing” the settings after startup so your screen gets activated.

If your GPU is capable of 24-, 30-, or 36-bit (like the UHD 630 – see here), the above will set your screen (if it has a maximum of 32-bit) to a depth as little as 24-bit. In that case install an older version of Display Manager, namely 0.10.0, which allows setting of the colour depth to, e.g., 30-bit. (I don’t run Mojave and therefore couldn’t test 0.10.0 on it, but I can confirm it runs on High Sierra.)

(I’ve reported the issue on GitHub, so hopefully the present version will be updated to enable manual setting of the depth.)


If anyone needs more information on this, I’ll be happy to go into more detail. Just quote me here so I get notified of your post.


EDIT:
Don’t use Display Manager: Though it is able to change the settings of your screen, it is not able to bring it up when black for some reason. Instead use displayplacer which, next to the fact that it does bring up the screen, works beautifully for different colour depths.

I’ve written “Screen Wakener”, an AppleScript based app that will configure the necessary stuff and install a Launch Agent on your system. That again will bring up your screen automatically after boot (before/after logging in), making use of displayplacer. It will be available at https://github.com/mabam/ScreenWakener shortly.

Note: “Screen Wakener” is written for use with an iGPU and probably won’t work with an eGPU. I suppose, however, the Launch Agent and Shell Script can be used with an eGPU when the settings file is configured manually.

See also this thread: https://www.tonymacx86.com/threads/...ck-screen-shown-in-system-preferences.277551/
 
Last edited:
… The search function works very well. …
I know, but because there can be so many reasons for Sleep and Wake and the information searching returns is so immense, I don’t know where to start. So I thought maybe I’m lucky and by just asking here you might have a clue based on what you already know about my setup.

Thank you for the quick guidelines, they look like a very good starting point!
 
[…] Nevertheless here are some quick guidelines:
  • USB ports affect sleep and wake. Having a custom USB SSDT that activates up to a maximum of 15 ports is always advised.
  • In System Preferences --> Energy Saver make sure to disable "Wake for Network Access". Optionally, disable "Power Nap" as well.
  • Try setting darkwake=0 in Boot Arguments (Clover Configurator). Then see if you can wake from sleep. If not, try one of the other values for darkwake (2 or 8, etc.).
  • On some motherboards such as Designare Z390, sleep/wake functionality tends to be more reliable when all third-party kexts are installed in /Library/Extensions and Inject Kexts is set to Detect in Clover Configurator --> System Parameters.
I’ve disabled “Wake for Network Access” (I have no “Power Nap” as my machine is a desktop) and tried darkwake=10, 1, 2, 3, 4, and 8 – in that order. Waking from sleep takes a bit of time, but darkwake=8 does the trick.

EDIT:
Sleep/Wake turned out to only work temporarily (and the machine took a lot of time to enter either of the states). The tip from @Shridhar to substitute AptioMemoryFix-64.efi by OsxAptioFix2Drv-64.efi seems to have fixed it. Also, Sleep and Wake are entered way faster now.
Next to that I have set darkwake=10 now (working fine). See this post.

Again: Thanks a lot @CaseySJ!
Your explanations are very clear and thorough. I was quite frustrated when I found this thread, but you have the gift to motivate people.


EDIT for clarification to anyone reading this:
The guide in the first post of this thread only speaks about Mojave, as that’s what it’s intended for. In my case it worked for fixing the Framebuffer on a High Sierra Installation (10.13.6 combo update 17G65 with SMBIOS set to “iMac18,1”, then 17G2208 with SMBIOS “MacBookPro15,2” [temporarily], then security update 17G5019 with SMBIOS “iMac18,1”).
Next to that, @CaseySJ even helped me getting Sleep/Wake work.

I have read from many people fighting with the iGPU, some on a Gigabyte H370M D3H or Gigabyte H370M D3H GSM like me. I hope this motivates others not to give up on getting their systems to run properly.
 
Last edited:
I’ve disabled “Wake for Network Access” (I have no “Power Nap” as my machine is a desktop) and tried darkwake=10, 1, 2, 3, 4, and 8 – in that order. Waking from sleep takes a bit of time, but darkwake=8 does the trick.

Again: Thanks a lot!
Your explanations are very clear and thorough. I was quite frustrated when I found this thread, but you have the gift to motivate people.
Well done! It should be abundantly clear why it's called a hackintosh! :)
 
Well done! It should be abundantly clear why it's called a hackintosh! :)
Oh boy!
It’s about six years ago that I built my first Hackintosh. This is my second one now and I wish it’d take another six years until I had to begin on my third one. But probably the old one will get a processor upgrade and a newer version of macOS (now running 10.8) installed this year as my son will need a machine to do work on for school. Don’t want to think about that yet … :)

I have the impression, in this respect it was easier to build my Banana Pi based AppleTalk (over IP and DDP) File- and Print-server, though I had never worked on Linux before. But I have learned a lot from it.

But I’m really going off topic now …
 
are we know the native ig-platform-id for i9 series?
 
are we know the native ig-platform-id for i9 series?
The new 2019 27-inch 5K iMacs use discrete AMD RX 5xx and Vega xx GPUs to drive their displays, but use the internal UHD 630 for compute tasks only. This means the iGPU operates in headless mode. The platform ID is 0x3E980003.
 
The new 2019 27-inch 5K iMacs use discrete AMD RX 5xx and Vega xx GPUs to drive their displays, but use the internal UHD 630 for compute tasks only. This means the iGPU operates in headless mode. The platform ID is 0x3E980003.
Thank you. I am trying to Option 1 but on Apple Loading screen monitor goes to sleep.
 
Thank you for this great guide!

Specs:
MB Gigabyte H370 HD3, Bios F2
CPU i3 8100
Video UHD 630 (1xVGA, 1xDVI-D, 1xHDMI)
Display 1xDell P2314H (DVI), 1xDaewoo HL1711S (VGA)

All 3 ports are working (with a little workaround) using:
Index 1 - Port 5 - VGA (DP) - bus 0x05
Index 2 - Port 6 - DVI (HDMI) - bus 0x02
Index 3 - Port 7 - HDMI - bus 0x04

I've also attached a picture with Hackintool connectors.

My main display Dell P2314H is connected DVI - DVI to the MB and my second display Daewoo HL1711S is connected VGA - VGA. I've also tested Dell P2314H connected DVI - HDMI. Getting VGA to work needs a little workaround. I unplug the second display and only boot with the main display (DVI or HDMI). After it boots I wait for about 5 minutes and then power the second display. Most of the time this works and I can live with "most of the time". Sometimes after I power on the second display I get some error message regarding resolution on the main display and I can't fix it unless I restart and try again. On rare occasions I have both displays on some strange resolution which I can fix with system prefs but it's easier to restart. If I get it working and decide to unplug and reconnect the second display it all goes as expected. If I boot with both displays on (main display DVI or HDMI) I get black screens (screen saver mode) on both displays at apple logo after video driver loads and I have to hard restart. If I boot using the main display only method and I don't wait enough time before powering the second display, although the second display works I get black screen on the main display (screen saver mode) and I can't fix it unless I restart. Powering on/off the second display doesn't mean pressing the power button on the display as this will not work. You have to actually disconnect the power cable or the connectors. For this I use an old box thing that has one VGA input and two outputs which you can switch between.
Screenshot 2019-04-08 at 23.45.30.png
 
Back
Top