Contribute
Register

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

Sounds like you're very close to a fully working solution. Post your problem reporting files if you want help...

Thank you!!!
It is not a very important issue because I normally use the RX 580 card but it is always interesting to get all the elements of the hackintosh to work correctly.
I will prepare the information you comment more slowly. And I'll post it here.
Thanks again.
 
Sounds like you're very close to a fully working solution. Post your problem reporting files if you want help. Ideally, your problem reporting files will include your EFI (including sanitized config.plist, CLOVER/kexts and ACPI/patched), your IORegistry dump and the output of 'sudo kextcache -i /' if you install 3rd-party kexts in /L/E...

Attached EFI folder (only ACPI, drivers, kexts and config sanitized) + IOReg + boot.log from Clover. Thanks!!!
 

Attachments

  • deeveedee.zip
    1.3 MB · Views: 73
EDIT: I had a brain freeze in my response below and should have recognized that framebuffer-con0-busid and framebuffer-con1-busid are both 0x0 because they are unused ports. Please disregard my "busids are both 0x0" comment below.

--------------------------------------------

Attached EFI folder (only ACPI, drivers, kexts and config sanitized) + IOReg + boot.log from Clover. Thanks!!!

Graphics
  • Boot-arg darkwake=8 is the same as darkwake=0. Try darkwake=2 and darkwake=3.
  • Add boot-arg igfxonln=1
  • Remove boot-arg disablegfxfirmware (not needed after you get graphics acceleration working with WEG) (Read This)
  • Add flags to your framebuffer properties: framebuffer-conX-flags C7030000
  • I don't believe you need to define framebuffer-unifiedmem and framebuffer-stolenmem and framebuffer-fbmem. I think you should be able to remove these.
  • It looks like your framebuffer-con0-busid and framebuffer-con1-busid are both 0x0. According to this, your busids must be unique for each connector. Is this actually working for you?
  • Your native device-id is 0x3e91 but you are spoofing device-id 0x3e92. Have you tried device-id 0x3e91 (reverse byte order 0x913e0000) or leaving device-id undefined so that your devide-id defaults to its native value? According to this, device-id 0x3e91 is natively supported.
Other Observations
  • You may need to enable CLOVER's ACPI->SSDT->Generate->PluginType for power management
  • Do you need the dart=0, kext-dev-mode=1 and rootless=0 boot-args?
  • Your ACPI->Patched includes SSDT-PMC. I think you also need to define Device (PPMC) for the full PMC implementation, although I admit I don't know why and don't know what Device (PPMC) does.
 
Last edited:
Nice Thread... i was trying to fix my HDMI (2) and DP ports on my ASRock z390m-itx/ac following the recommendations in here just to find out that the spoiler for this board is wrong. At least those are not the right values for Display Port. After several tries and doing manual changes on clover i got the 3 ports to work. My final configuration is as follows in case someone is looking for this information.
 

Attachments

  • Screen Shot 2020-08-26 at 9.22.31 AM.png
    Screen Shot 2020-08-26 at 9.22.31 AM.png
    17.4 KB · Views: 74
Last edited:
Graphics
  • Boot-arg darkwake=8 is the same as darkwake=0...
Other Observations
  • You may need to enable CLOVER's ACPI->SSDT->Generate->PluginType for power management...

Thank you for your comments. Your level of knowledge is very high and it will be hard to review all the observations you have made but I will try. I will be writing down the results with the changes that I make to comment here later.
Some arguments and other options are there from previous operating systems and have not modified or removed them for any specific reason.
Thanks again and greetings.
 
Graphics
  • Boot-arg darkwake=8 is the same as darkwake=0...
Other Observations
  • You may need to enable CLOVER's ACPI->SSDT->Generate->PluginType for power management...

Good morning, I have tested the changes you mentioned in your message except the one that says "Your ACPI-> Patched includes SSDT-PMC. I think you also need to define Device (PPMC) for the full PMC implementation" which is above my knowledge.
The first thing I have noticed is that macOS starts up a little faster (before, it started up quite fast but now it has gained a few seconds), I think that it is most likely because I have selected the PluginType option.
Regarding the integrated graphics, it works well (as before) but now it comes out of sleep and shows the desktop ... to immediately restart the system. Before, it always got to black screen after coming out of sleep but it did not restart.
The changes have been:
- only 2 boot-arg: darkwake = 2 and igfxonln = 1 (I have also tried darkwake = 3)
- remove framebuffer-unifiedmem, framebuffer-stolenmem and framebuffer-fbmem
- change to native device-id 0x3e91
- and PluginType enabled.
One question: framebuffer-conX-flags C7030000 has to be added in reverse byte order mode or as is?
Thank you!!! Regards.
 
EDIT: I had a brain freeze in my response below and should have recognized that framebuffer-con0-busid and framebuffer-con1-busid are both 0x0 because they are unused ports. Please disregard my "same busID 0x0" comment below.

--------------------------------------------

One question: framebuffer-conX-flags C7030000 has to be added in reverse byte order mode or as is?
Thank you!!! Regards.

Congrats! Looks like you made significant progress. 0xC7030000 is the reverse byte order for flags 0x03C7. Note that you would have a separate flags property for each connector (you'll need to replace the X in framebuffer-conX-flags with the connector number - e.g. framebuffer-con1-flags). However, if your system is working fine without specifying flags, you may not need the flags properties.

Are you saying that you're still running with two different connectors assigned the same busID (0x0) and your graphics are working fine?
 
Last edited:
...Are you saying that you're still running with two different connectors assigned the same busID (0x0) and your graphics are working fine?

My motherboard has a single output for Intel Graphics 630, 1 Hdmi port, so I think It doesn’t matter that the other 2 connectors have the same busID. Is it right?
 
My motherboard has a single output for Intel Graphics 630, 1 Hdmi port, so I think It doesn’t matter that the other 2 connectors have the same busID. Is it right?

You are correct. That was my misunderstanding. I should have read your original posts more carefully. And I should have recognized that BusID 0 was assigned to your unused ports.

@miliuco Just to clarify, you don't need to modify the flags properties for your unused ports (ports with busid 0x0). Looks like you're good to go.
 
Last edited:
You are correct. That was my misunderstanding. I should have read your original posts more carefully. And I should have recognized that BusID 0 was assigned to your unused ports.

:thumbup:
 
Back
Top