Contribute
Register

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

Joined
Dec 11, 2018
Messages
43
Motherboard
Gigabyte Z370N WiFi
CPU
i5-8500
Graphics
RX 580
Mac
MacBook Pro
Mobile Phone
iOS
Thanks for your patient. I have tried your advices but no luck here. Once press a key the LED on the cases turns on but the monitor goes black screen. I think this problem is due to the video card. I uploaded my efi folder and some screenshot to make the things clear.
Screen Shot 2019-01-30 at 7.55.56 PM.png
 

Attachments

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
5,049
Motherboard
Gigabyte Designare Z390
CPU
i7-9700K
Graphics
RX 580
Mac
MacBook Air, Mac Pro
Classic Mac
Quadra
Mobile Phone
iOS
Thanks for your patient. I have tried your advices but no luck here. Once press a key the LED on the cases turns on but the monitor goes black screen. I think this problem is due to the video card. I uploaded my efi folder and some screenshot to make the things clear.View attachment 383676
I've made several changes to your EFI:
  • Disabled USB port limit patches because you have a custom USB SSDT.
  • Fixed some errors in the USB SSDT (ports HS01 to HS08 changed to type 0x03 because they are dual USB 2.0 and 3.0 ports).
  • Added AppleALC and removed entries in config.plist for AppleHDA. Your motherboard has ALC1220 which is supported by AppleALC 1.3.4.
  • Added USBInjectAll and XHCI-Unsupported to CLOVER/kexts/Other.
However, please post a screenshot of your /Library/Extensions (/L/E) folder. Additional changes may be needed. For example:
  • AppleHDA should be removed
  • NullCPUPowerManagement should be removed
Kernel cache much be rebuilt after making any change to /L/E folder. You can run KextUtility rebuild caches and repair permissions.
 

Attachments

Joined
Apr 5, 2011
Messages
143
Motherboard
Asus P8P67 B3 3.0
CPU
i5-2500K
Graphics
HD 6870
Mac
MacBook Pro
Mobile Phone
Android
Hi from me! @CaseySJ great great guide!!!! By looking into WhateverGreen/kern_fb.hpp which is what Hackingtool shows as a brief overlay:

Code:
/* Watch out, this is really messy (see AppleIntelFramebufferController::MapFBToPort).
* I am not fully sure why this exists, and recommend setting index to array index (i.e. the sequential number from 0).
*
* The only accepted values are 0, 1, 2, 3, and -1 (0xFF). When index is equal to array index the logic is simple:
* Port with index    0    is always considered built-in (of LVDS type) regardless of any other values.
* Ports with indexes 1~3  are checked against type, HDMI will allow the use of digital audio, otherwise DP is assumed.
* Port with index    0xFF is ignored and skipped.
*
* When index != array index port type will be read from connector[index].type.
* Say, we have 2 active ports:
* 0 - [1]     busId 4 type LVDS
* 1 - [2]     busId 5 type DP
* 2 - [3]     busId 6 type HDMI
* 3 - [-1]    busId 0 type Dummy
* This will result in 2 framebuffers which types will be shifted:
* 0 - busId 4 type DP
* 1 - busId 5 type HDMI
* In fact BusId values are also read as connector[index].busId, but are later mapped back via
* AppleIntelFramebufferController::getGMBusIDfromPort by looking up a connector with the specified index.
* The lookup will stop as soon as a special marker connector (-1) is found. To illustrate, if we have 2 active ports:
* 0 - [1]     busId 4 type LVDS
* 1 - [2]     busId 5 type DP
* 2 - [-1]    busId 6 type HDMI
* 3 - [-1]    busId 0 type Dummy
* The result will be 2 framebuffers which types and the second busId will be shifted:
* 0 - busId 4 type DP
* 1 - busId 6 type HDMI
* It is also used for port-number calculation.
* - LVDS displays (more precisely, displays with CNConnectorAlwaysConnected flag set) get port-number 0.
* - Other displays go through index - port-number mapping: 1 - 5, 2 - 6, 3 - 7, or fallback to 0.
*/
So what is the 'best practise'? Should I set con0 index to 0 ? My computer is an HP with 2 DPs (max 2 monitors)

Thanks!
 

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
5,049
Motherboard
Gigabyte Designare Z390
CPU
i7-9700K
Graphics
RX 580
Mac
MacBook Air, Mac Pro
Classic Mac
Quadra
Mobile Phone
iOS
@sakoula

After a great deal of experimentation I concluded that the information presented in that overlay or tooltip is no longer applicable, at least not in macOS 10.13 and 10.14.

So if you only follow the Guide (i.e. disregard the overlay) you should be able to determine the proper configuration for your HP computer.

As mentioned in the Guide, connector numbers do not matter. You can assign any Index to any connector. Indexes are important because Index numbers are not arbitrary. Index 0 always refers to Port 5. Index 1 to Port 6, and Index 2 to Port 7.

Once you determine which Port(s) are highlighted in red when you connect your DisplayPort monitor, you can assign the corresponding Index to any connector (i.e. to any of the first 3 row in the table).
 
Joined
Dec 11, 2018
Messages
43
Motherboard
Gigabyte Z370N WiFi
CPU
i5-8500
Graphics
RX 580
Mac
MacBook Pro
Mobile Phone
iOS
I've made several changes to your EFI:
  • Disabled USB port limit patches because you have a custom USB SSDT.
  • Fixed some errors in the USB SSDT (ports HS01 to HS08 changed to type 0x03 because they are dual USB 2.0 and 3.0 ports).
  • Added AppleALC and removed entries in config.plist for AppleHDA. Your motherboard has ALC1220 which is supported by AppleALC 1.3.4.
  • Added USBInjectAll and XHCI-Unsupported to CLOVER/kexts/Other.
However, please post a screenshot of your /Library/Extensions (/L/E) folder. Additional changes may be needed. For example:
  • AppleHDA should be removed
  • NullCPUPowerManagement should be removed
Kernel cache much be rebuilt after making any change to /L/E folder. You can run KextUtility rebuild caches and repair permissions.
Thanks for your reply (as usual), I found you added some kexts that has already existed in my /L/E folder. So whether should I delete them from /L/E? There is the screenshot of my /L/E folder.
 

Attachments

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
5,049
Motherboard
Gigabyte Designare Z390
CPU
i7-9700K
Graphics
RX 580
Mac
MacBook Air, Mac Pro
Classic Mac
Quadra
Mobile Phone
iOS
Thanks for your reply (as usual), I found you added some kexts that has already existed in my /L/E folder. So whether should I delete them from /L/E? There is the screenshot of my /L/E folder.
If the kext I added is newer than the one in /Library/Extensions, then please keep the newer one and delete the older one. If you add or delete any files from /Library/Extensions, you must run "Kext Utility" to rebuild kernel cache before rebooting.
 
Joined
Dec 11, 2018
Messages
43
Motherboard
Gigabyte Z370N WiFi
CPU
i5-8500
Graphics
RX 580
Mac
MacBook Pro
Mobile Phone
iOS
If the kext I added is newer than the one in /Library/Extensions, then please keep the newer one and delete the older one. If you add or delete any files from /Library/Extensions, you must run "Kext Utility" to rebuild kernel cache before rebooting.
Hi, CaseySJ. I follow your advice and the monitor turns on after waking the computer. But there are some problems occurred:
  • The audio not works.
  • The USB devices unexpectedly disconnect after waking.
So how to resolve it? Thanks in advance!
 

Attachments

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
5,049
Motherboard
Gigabyte Designare Z390
CPU
i7-9700K
Graphics
RX 580
Mac
MacBook Air, Mac Pro
Classic Mac
Quadra
Mobile Phone
iOS
Hi, CaseySJ. I follow your advice and the monitor turns on after waking the computer. But there are some problems occurred:
  • The audio not works.
  • The USB devices unexpectedly disconnect after waking.
So how to resolve it? Thanks in advance!
Can you compress and upload your CLOVER folder from Mojave SSD?
 
Joined
Dec 11, 2018
Messages
43
Motherboard
Gigabyte Z370N WiFi
CPU
i5-8500
Graphics
RX 580
Mac
MacBook Pro
Mobile Phone
iOS
Can you compress and upload your CLOVER folder from Mojave SSD?
Of course yes! I'm trying to add the newest AppleALC which downloaded from github and rebuild kextcache again. There are some problems occurred. Terminal tells me the "AppleALC.kext has no Info.plist file". So should I download another one that not the latest version?
 

Attachments

Top