Contribute
Register

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

jaymonkey

Moderator
Joined
Aug 27, 2011
Messages
3,769
Motherboard
ASRock-Z97 EX6
CPU
i7-4790K OC @ 4.8GHz
Graphics
Vega 64LC + HD4600
Mac
MacBook Air, MacBook Pro
Mobile Phone
Android, iOS
(RU)Hello. I'm trying to get to work HDMI output on Kaby Lake UHD630 (Mojave) on Mono-block PC. after Framebuffer patching I'm still not getting output, and Logs have LSPCON Initialization fails (by WEG)

@Hex0S,

You have a Coffee Lake CPU (i7-8700T) not Kaby Lake as you state in your post.

You have errors in the device properties section of your config.plist :-

Code:
        <key>Properties</key>
        <dict>
            <key>PciRoot(0)/Pci(0x02,0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                AACbPg==
                </data>
                <key>framebuffer-fbmem</key>
                <data>
                AACQAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <integer>1</integer>
                <key>framebuffer-stolenmem</key>
                <data>
                AAAwAQ==
                </data>
            </dict>
            <key>PciRoot(0x0)/Pci(0x1f,0x3)</key>
            <dict>
                <key>AAPL,slot-name</key>
                <string>Internal@0,31,3</string>
                <key>device_type</key>
                <string>Audio device</string>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>layout-id</key>
                <data>
                AAAAAA==
                </data>
                <key>model</key>
                <string>Cannon Lake PCH cAVS</string>
            </dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                CQClPg==
                </data>
                <key>AAPL,slot-name</key>
                <string>Internal@0,2,0</string>
                <key>device-id</key>
                <data>
                kj4AAA==
                </data>
                <key>device_type</key>
                <string>VGA compatible controller</string>
                <key>framebuffer-con1-busid</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-con1-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>model</key>
                <string>Intel UHD Graphics 630 (Desktop)</string>
            </dict>
        </dict>

You are injecting two sets of IGPU properties at the following PCIe paths :-
  • PciRoot(0x0)/Pci(0x2,0x0)
  • PciRoot(0)/Pci(0x02,0)
Although the two PCI paths are defined differently they equate to the same, this will confuse WEG as there is no way to know which one it will be using. Recommend you remove the key PciRoot(0)/Pci(0x02,0) and all device properties below it as its quite likely to be over-riding the properties at key PciRoot(0x0)/Pci(0x2,0x0) which could be the source of your issue.

I suspect that you manually added the first set of IGPU properties PciRoot(0)/Pci(0x02,0) and then used Hackintool to generate patch code for the second set ... as the first set is incorrectly define (hex numbers must start with "0x") hackintool did not remove the old (incorrect) properties.

Cheers
Jay
 
Last edited:
Joined
Aug 31, 2018
Messages
8
Motherboard
LENOVO TC-O3X
CPU
i7-8700T
Graphics
UHD 630 + HD 530
@Hex0S,

You have a Coffee Lake CPU (i7-8700T) not Kaby Lake as you state in your post.

You have errors in the device properties section of your config.plist :-

Code:
        <key>Properties</key>
        <dict>
            <key>PciRoot(0)/Pci(0x02,0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                AACbPg==
                </data>
                <key>framebuffer-fbmem</key>
                <data>
                AACQAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <integer>1</integer>
                <key>framebuffer-stolenmem</key>
                <data>
                AAAwAQ==
                </data>
            </dict>
            <key>PciRoot(0x0)/Pci(0x1f,0x3)</key>
            <dict>
                <key>AAPL,slot-name</key>
                <string>Internal@0,31,3</string>
                <key>device_type</key>
                <string>Audio device</string>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>layout-id</key>
                <data>
                AAAAAA==
                </data>
                <key>model</key>
                <string>Cannon Lake PCH cAVS</string>
            </dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                CQClPg==
                </data>
                <key>AAPL,slot-name</key>
                <string>Internal@0,2,0</string>
                <key>device-id</key>
                <data>
                kj4AAA==
                </data>
                <key>device_type</key>
                <string>VGA compatible controller</string>
                <key>framebuffer-con1-busid</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-con1-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>model</key>
                <string>Intel UHD Graphics 630 (Desktop)</string>
            </dict>
        </dict>

You are injecting two sets of IGPU properties at the following PCIe paths :-
  • PciRoot(0x0)/Pci(0x2,0x0)
  • PciRoot(0)/Pci(0x02,0)
Although the two PCI paths are defined differently they equate to the same, this will confuse WEG as there is no way to know which one it will be using. Recommend you remove the key PciRoot(0)/Pci(0x02,0) and all device properties below it as its quite likely to be over-riding the properties at key PciRoot(0x0)/Pci(0x2,0x0) which could be the source of your issue.

I suspect that you manually added the first set of IGPU properties PciRoot(0)/Pci(0x02,0) and then used Hackintool to generate patch code for the second set ... as the first set is incorrectly define (hex numbers must start with "0x") hackintool did not remove the old (incorrect) properties.

Cheers
Jay
Thank you for answer. I correct Clover config and play with it. I fix some issues with USB3.0, rebooting, shutdown & etc. but I still cannot get output on HDMI. here is log (FBHDMICON) and updated CLOVER.
 

Attachments

jaymonkey

Moderator
Joined
Aug 27, 2011
Messages
3,769
Motherboard
ASRock-Z97 EX6
CPU
i7-4790K OC @ 4.8GHz
Graphics
Vega 64LC + HD4600
Mac
MacBook Air, MacBook Pro
Mobile Phone
Android, iOS
Thank you for answer. I correct Clover config and play with it. I fix some issues with USB3.0, rebooting, shutdown & etc. but I still cannot get output on HDMI. here is log (FBHDMICON) and updated CLOVER.

@Hex0S,

In your config.plist you are using PlatformID 0x3EA50009 which is not for UHD 630 IGPU :-

Code:
ID: 3EA50009, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00830B0A
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
GPU Name: Intel Iris Plus Graphics 655
Model Name(s):
Camelia: V3
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - LVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000001C7 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000001C7 - DP
00000800 02000000 98000000
01050900 00040000 C7010000
02040A00 00040000 C7010000

A better match would be PlatformID 0x3E9B0009 which is for Mobile UHD 630 IGPU :-

Code:
ID: 3E9B0009, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x0083130A
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
GPU Name: Intel UHD Graphics 630
Model Name(s):
Camelia: V3
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - LVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - DP
00000800 02000000 98000000
01050900 00040000 87010000
02040A00 00040000 87010000

You will then need to configure one of the the DP connectors as a HDMI port using the guide in post #1 :-



I dont have a Coffee Lake Mobile system to test with, but that is what i would do ...

Why do you have UHD 630 + HD 530 defined in your Hardware Profile ?, does not make any sense ....

Cheers
Jay
 
Last edited:
Joined
Aug 31, 2018
Messages
8
Motherboard
LENOVO TC-O3X
CPU
i7-8700T
Graphics
UHD 630 + HD 530
@Hex0S,

In your config.plist you are using PlatformID 0x3EA50009 which is not for UHD 630 IGPU :-

Code:
ID: 3EA50009, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00830B0A
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
GPU Name: Intel Iris Plus Graphics 655
Model Name(s):
Camelia: V3
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - LVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000001C7 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000001C7 - DP
00000800 02000000 98000000
01050900 00040000 C7010000
02040A00 00040000 C7010000

A better match would be PlatformID 0x3E9B0009 which is for Mobile UHD 630 IGPU :-

Code:
ID: 3E9B0009, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x0083130A
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
GPU Name: Intel UHD Graphics 630
Model Name(s):
Camelia: V3
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - LVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - DP
00000800 02000000 98000000
01050900 00040000 87010000
02040A00 00040000 87010000

You will then need to configure one of the the DP connectors as a HDMI port using the guide in post #1 :-



I dont have a Coffee Lake Mobile system to test with, but that is what i would do ...

Why do you have UHD 630 + HD 530 defined in your Hardware Profile ?, does not make any sense ....

Cheers
Jay
Jay, I have UHD 630 + AMD 530, but idk why "AMD" is gone. My current PlatformID is 0x3E920000 (Hackintool && DPCIManager said me that.) I already follow that guide, but I may did some mistakes.
Снимок экрана 2019-11-02 в 0.16.24.pngСнимок экрана 2019-11-02 в 0.17.21.png
 

jaymonkey

Moderator
Joined
Aug 27, 2011
Messages
3,769
Motherboard
ASRock-Z97 EX6
CPU
i7-4790K OC @ 4.8GHz
Graphics
Vega 64LC + HD4600
Mac
MacBook Air, MacBook Pro
Mobile Phone
Android, iOS
Jay, I have UHD 630 + AMD 530, but idk why "AMD" is gone. My current PlatformID is 0x3E920000 (Hackintool && DPCIManager said me that.) I already follow that guide, but I may did some mistakes.

@Hex0S,

Is this a Lenovo Desktop or Laptop system ?

Cheers
Jay
 
Joined
Aug 31, 2018
Messages
8
Motherboard
LENOVO TC-O3X
CPU
i7-8700T
Graphics
UHD 630 + HD 530
@Hex0S,

Is this a Lenovo Desktop or Laptop system ?

Cheers
Jay
It is monoblock. I think, it based on laptop hardware. I have one HDMI in and one HDMI out on it. HDMI in , I think, is not part of motherboard, it is part of LVDS display.
kernel WhateverGreen: igfx @ SC: AdvSeekI2COverAUX() Error: Failed to start the I2C transaction. Return value = 0xe00002d6.
kernel WhateverGreen: igfx @ SC: AdvReadI2COverAUX() Error: Failed to set the data offset.
kernel WhateverGreen: igfx @ SC: LSPCON::probe() Error: [FB1] Failed to read the LSPCON adapter info. RV = 0xe00002d6.
kernel WhateverGreen: igfx @ SC: fbSetupLSPCON() Error: [FB1] Failed to probe the LSPCON adapter.
kernel WhateverGreen: igfx @ SC: fbSetupLSPCON() Error: [FB1] Abort the LSPCON driver initialization.
 
Joined
Aug 31, 2018
Messages
8
Motherboard
LENOVO TC-O3X
CPU
i7-8700T
Graphics
UHD 630 + HD 530
@Hex0S,

Is this a Lenovo Desktop or Laptop system ?

Cheers
Jay
This is Lenovo Thinkcentre Monoblock. It has only one HDMI out and one HDMI in (I think it not from motherboard.)
kernel WhateverGreen: igfx @ SC: AdvSeekI2COverAUX() Error: Failed to start the I2C transaction. Return value = 0xe00002d6.
kernel WhateverGreen: igfx @ SC: AdvReadI2COverAUX() Error: Failed to set the data offset.
kernel WhateverGreen: igfx @ SC: LSPCON::probe() Error: [FB1] Failed to read the LSPCON adapter info. RV = 0xe00002d6.
kernel WhateverGreen: igfx @ SC: fbSetupLSPCON() Error: [FB1] Failed to probe the LSPCON adapter.
kernel WhateverGreen: igfx @ SC: fbSetupLSPCON() Error: [FB1] Abort the LSPCON driver initialization.
 

jaymonkey

Moderator
Joined
Aug 27, 2011
Messages
3,769
Motherboard
ASRock-Z97 EX6
CPU
i7-4790K OC @ 4.8GHz
Graphics
Vega 64LC + HD4600
Mac
MacBook Air, MacBook Pro
Mobile Phone
Android, iOS
This is Lenovo Thinkcentre Monoblock. It has only one HDMI out and one HDMI in (I think it not from motherboard.)

@Hex0S,

I'm not familiar with that system/model at all ... is it some sort of All-In-One (AIO)?

You say it has a AMD HD 530 dGPU ... it could be that the HDMI out port is driven by the dGPU (a common configuration in some other Lenovo systems), the only way to find out for sure is to try and find a schematic for the system .. (maybe in a service manual) the fact that the system has a HDMI in makes me suspect that this is the case.

If the HDMI Out is connected to the IGPU then it should be possible to get it working, if the HDMI Out is connected to the dGPU then your out of luck as unfortunately AMD HD 530 is not supported in MacOS.

I would try and conform which GPU the HDMI port is connected to before going any further.

Cheers
Jay
 
Joined
Aug 28, 2012
Messages
63
Motherboard
GA Z390 AORUS PRO
CPU
i9-9900K
Graphics
Vega 64
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
512K, iMac, LC, Plus, Portable, Power Mac, PowerBook, Quadra, SE, Xserve
Hi Casey, et al,

Asrock Fatal1ty Z379 Gaming-ITX/AC
I7-8700(nonK) @ 3.20
Intel 630, NO DGPU
32GB RAM
OSX 10.14.2

EDIT: The "CRASHESONBOOT" config.plist file I posted earlier won't open in Clover Configurator. IT gives me an 'unexpected EOF' error. I then re-inserted the patch using the text mode in Clover Configurator. The computer now boots to the login screen, and the green flicker shows up a few seconds after I've logged in (using the KVM). That newest config.plist is now attached to this post as noted below.

Forgive me if this post sprawls a little bit, I need to describe the underlying issue that brought me to this thread in order to give full context to my issues. I'll try to describe everything as clearly as possible.

The underlying gremlin that I'm *hoping* a patched frame buffer will fix - this computer works great when directly connected to a monitor via Displayport, HDMI, or both at the same time. When I try and use my fancy Displayport KVM (Belkin F1DN104Q-3, which is DP input and HDMI output for some confusing reason), the Hack outputs a video signal plagued by an awful green flicker as shown in this video I posted
that makes it unusable. The Hack boots via clover and Verbose mode seemingly OK, but the flicker shows up as soon as the login screen comes up. I've tried both real Macs and Windows PC's, and they work great with this KVM. Only the Hack has this issue with the KVM. (as a background, this KVM is one of the only ones I found that offer quad monitor support, which I don't need for the Hack, per se, but my windows machine at this desk is my CAD/rendering workstation, which is 3 monitors, so I needed this otherwise overkill KVM)


I'm unable to follow the guide verbatim for the following reasons:
- Hackintool 2.8.6 is newer/different layout, and has more options in the General & Advanced Patch tabs, such as "EDID" & "Use Intel HDMI"
- Hackintool won't let me select/save the patched config.plist in EFI/CLOVER. It's greyed out, so I manually pasted the patch text into my config.plist via bbedit.

When following the guide, In the connectors tab, I plug around with my monitors (directly connected, not via the KVM) and look at my connectors tab, both my DP and HDMI seem to be showing up correctly.

A couple side notes:

If, without finishing the Hackintool patch from this guide, I ONLY change the device ID from 0x0 to 0x3E92 using Clover Configurator, the system boots, and DP video works as I want it to via my KVM, BUT it's unaccelerated and buggy.

I've also tried all the different Darkwake settings in Clover, hoping that that was the problem. I think it's somewhat related, because a couple of the Darkwake settings allowed the Hack to work via the KVM as I wanted, but sleeping botched it, or it was inconsistent in working/not upon boot or wake.

I've attached screenshots of my Hackintool settings, as well as three config.plist files. "GREEN_FLICKER" is the file that boots, and works great with directly connected monitors, but not with my fancy KVM. "config-PATCHED_GREENFLICKER_UPON_LOGIN" is the one with the patched Framebuffer from Hackintool. "no-greenflicker-NO_acceleration" is the one with the device ID changed to 0x3e92

I've been playing around with some other settings, but my head is spinning with all the options (I'm definitely not a coder ; ), so I'm hoping that there's an obvious fix to my gremlin, and that I've been concise enough in my description to provide enough info to help.

Thanks!!!

AJ
 

Attachments

Last edited:
Top