Contribute
Register

[help]black screen when uhd630 run with internal screen

Status
Not open for further replies.
We do not need a connector patch anymore so you don't need it. I'm currently trying to figure out how to fix the 5 minute black screen issue.
Yes i understand we don't need the connector patch anymore, but i thought i would still need to patch the framebuffer to enter correct DVMT, minStolen, fmem and VRAM values. Shouldn't I?
Anyway each time i try to enter a Devices>Properties patch with latest Lilu.kext and Whatevergreen.kext compiled from Master branches, i get this error and internal screen stays in this state :
534420.jpg

I'll try to post the debug from whatevergreen.kext as soon as possible.

Also i figured out my black screen with glitches lines issue appears when i boot the laptop with an adapter connected on USB-C (i have a dock connected with DisplayPort linked to UHD 630). In this case while the external screen is fine, the internal screen stays black and the laptop reboot if the adapter is unplugged.
If i connect the dock after macOS is started both internal screen and external screen work. Internal screen works with backlight slider active now. But same as you the backlight is very low. I cannot find the proper LMAX value we should set for this ig-platform-id.
 
Yes i understand we don't need the connector patch anymore, but i thought i would still need to patch the framebuffer to enter correct DVMT, minStolen, fmem and VRAM values. Shouldn't I?
Anyway each time i try to enter a Devices>Properties patch with latest Lilu.kext and Whatevergreen.kext compiled from Master branches, i get this error and internal screen stays in this state

Yes I get the same issue you describe. I have removed Devices/Properties for now and set IntelGFX and ig-platform-id to nothing and Inject Intel to false. It should then boot with 0x3EA50009. We're looking into it.

I cannot find the proper LMAX value we should set for this ig-platform-id.
I got the value from IOReg but I suspect that is the value being injected by AppleBacklightInjector.kext anyway. So yeah I'd also like to know how to get this value.
 
Okay vit9696 was kind enough to take a look at my config. He said it was in such a mess that he started a new config for me from scratch. In fact there were a lot of settings and kext's that were unnecessary.

Brightness control was working on my first boot using his new config. To get it working set SetIntelMaxBacklight to true in Clover and remove AppleBacklightInjector.kext. Remove all kext's from /L/E and place them into kexts/Other. I only had to leave BrcmFirmwareData.kext and BrcmPatchRAM2.kext in /L/E for BT support (I have a BCM94352Z card installed).

I will attach my entire CLOVER folder here which includes ig-platform-id injection using Devices/Properties so we can be on the same page. Also he was surprised by my SSDT-9.aml which apparently disabled the discrete graphics. It seems that I accidentally applied the patch to GFX0 (which is the IGPU). So he has no idea why it appeared to work.

We never got to work on fixing NVRAM because we did not get past disabling the nVidia card successfully. So right now that is the goal because as you noticed it takes 5 minutes before the screen turns on. So if you can help get the nVidia card disabled successfully I'm quite sure we can get the rest working.
 
Last edited:
I downloaded you EFI and the SSTD-9 of yours helped me to disable completely my dGPU too, thanks for that

Are you sure it was mine or neocoma504's SSDT-9-OptTabl.aml? His patch actually made sense while mine didn't. Also your attached CLOVER does not contain any ACPI/patched files?

Well vit9696 got the discrete card disabled now but we're still getting 5 minutes of black screen upon macOS boot. So I've attached the updated CLOVER.
 

Attachments

  • CLOVER.zip
    3.1 MB · Views: 155
Last edited:
I tried setting LMAX to 0x400 which is what I got from IOREG for brightness/max

You're not looking at the correct thing.
PWM max is coded into the framebuffer ig-platform-id data.
 
Setting the PWM max via the SSDT-RMCF.aml doesn't appear to be necessary anymore. Nor is there a need for AppleBacklightInjector.kext. It can be done via Clover config.plist.
Code:
<key>Devices</key>
    <dict>
        <key>SetIntelMaxBacklight</key>
        <true/>
        <key>IntelMaxValue</key>
        <integer>1388</integer>

Sandy or IvyBridge: 1808
Haswell or Broadwell: 5273, 2777, 1953, 1388
Skylake or Kaby Lake: 1388
Coffee Lake: 1388?
 
Last edited:
Setting the PWM max via the SSDT-RMCF.aml doesn't appear to be necessary anymore. Nor is there a need for AppleBacklightInjector.kext. It can be done via Clover config.plist.
Code:
<key>Devices</key>
    <dict>
        <key>#SetIntelBacklight</key>
        <false/>
        <key>SetIntelMaxBacklight</key>
        <true/>
        <key>IntelMaxValue</key>
        <integer>1388</integer>

Sandy or IvyBridge: 1808
Haswell or Broadwell: 2776
Skylake or Kaby Lake: 1295
Coffee Lake: 1388?

The values you would use for IntelMaxValue (which is what SetIntelMaxBacklight uses for PWM max init), depend on the ig-platform-id PWM Max (it varies with certain ig-platform-id values).

You will still need an appropriate AppleBacklightInjector.kext with correct data for the brightness levels (Default is not adequate).

Note: Typical Haswell/Broadwell is 0xad9, not 0xad8 (although obviously 0xad8 is "close enough"). But even certain ig-platform-id values in those kexts use different values. For example, ig-platform-id 0x0a2e0008 uses 0x56c, not 0xad9. And typical Skylake/Kabylake are 0x56c, not 0x50f. You can find out what the CFL kext uses for each ig-platform-id if you get a framebuffer ig-platform-id data dump.
 
The values you would use for IntelMaxValue (which is what SetIntelMaxBacklight uses for PWM max init), depend on the ig-platform-id PWM Max (it varies with certain ig-platform-id values).

Yes I'm aware of that now. Learning as I go ;)

You will still need an appropriate AppleBacklightInjector.kext with correct data for the brightness levels (Default is not adequate).

It works fine for me without it. SetIntelMaxBacklight / IntelMaxValue settings in Clover along with SSDT-PNLF.aml appears to be enough. Also FYI there is a bug in Clover which does not set the value upon boot so the screen may appear black during the boot process. It should be fixed soon.

Note: Typical Haswell/Broadwell is 0xad9, not 0xad8 (although obviously 0xad8 is "close enough"). But even certain ig-platform-id values in those kexts use different values. For example, ig-platform-id 0x0a2e0008 uses 0x56c, not 0xad9. And typical Skylake/Kabylake are 0x56c, not 0x50f. You can find out what the CFL kext uses for each ig-platform-id if you get a framebuffer ig-platform-id data dump.

Yes you're correct. I have updated my post and added all the values. The problem with Coffee Lake (as you can see from the dumps here) are all 0. So it's going to take a bit more investigation to get the correct values.
 
Last edited:
It works fine for me without it.

You are probably not getting full range, and just haven't tested for it...

Yes you're correct. I have updated my post and added all the values. The problem with Coffee Lake (as you can see from the dumps here) are all 0. So it's going to take a bit more investigation to get the correct values.

Maybe the code is looking in the wrong location (a full hex dump of all ig-platform-id data would be useful).
Or the 0 indicates "default".
The PWM max actually used by actual CFL Macs should be easy enough to determine from an ioreg.
 
You are probably not getting full range, and just haven't tested for it...

When I said "it works fine for me without it" I was referring to AppleBacklightInjector.kext. Right now I'm using the Kaby Lake value of 1388 which appears okay.

Maybe the code is looking in the wrong location (a full hex dump of all ig-platform-id data would be useful).
Or the 0 indicates "default".
The PWM max actually used by actual CFL Macs should be easy enough to determine from an ioreg.

You can get a full binary dump of the ig-platform-id data using the -igfxdump boot flag for WhateverGreen. Hopefully someone with a real Coffee Lake Mac can help us out. Either that or we can possibly find it by reversing AppleIntelCFLGraphicsFramebuffer.
 
Status
Not open for further replies.
Back
Top