Contribute
Register

[help]black screen when uhd630 run with internal screen

Status
Not open for further replies.
I haven't tried the older version of AppleALC yet.

Attached is the IntelGraphicsFixup binary (compiled as DEBUG) and source code.

EDIT: It doesn't look like the getAppleSense hook is ever called. I've messaged vit9696 to take a look at my code.

Hi headkaze,

So i wanted to give a try with your "built-in" patched IntelGraphicsFixup.kext, but when i try to use the provided kext, i get no built-in flag in ioreg neither and if i try to rebuilt kext cache, i get this :

Code:
kxld[as.lvs1974.IntelGraphicsFixup]: The following symbols are unresolved for this kext:
kxld[as.lvs1974.IntelGraphicsFixup]:     WIOKit::renameDevice(IORegistryEntry*, char const*, bool)
kxld[as.lvs1974.IntelGraphicsFixup]:     WIOKit::getDeviceAddress(IORegistryEntry*, unsigned char&, unsigned char&, unsigned char&)
kxld[as.lvs1974.IntelGraphicsFixup]:     WIOKit::readPCIConfigValue(IORegistryEntry*, unsigned int, unsigned int, unsigned int)
kxld[as.lvs1974.IntelGraphicsFixup]:     CPUInfo::getGeneration(unsigned int*, unsigned int*)
kxld[as.lvs1974.IntelGraphicsFixup]:     CPUInfo::getGpuPlatformId(IORegistryEntry*, bool*)
kxld[as.lvs1974.IntelGraphicsFixup]:     CPUInfo::isConnectorLessPlatformId(unsigned int)
Link failed (error code 5).
Prelink failed for as.lvs1974.IntelGraphicsFixup; omitting from prelinked kernel.
I tried to build from the XCode project with same results? Did i miss something?
Thanks
 
Hi headkaze,

So i wanted to give a try with your "built-in" patched IntelGraphicsFixup.kext, but when i try to use the provided kext, i get no built-in flag in ioreg neither and if i try to rebuilt kext cache, i get this :

Code:
kxld[as.lvs1974.IntelGraphicsFixup]: The following symbols are unresolved for this kext:
kxld[as.lvs1974.IntelGraphicsFixup]:     WIOKit::renameDevice(IORegistryEntry*, char const*, bool)
kxld[as.lvs1974.IntelGraphicsFixup]:     WIOKit::getDeviceAddress(IORegistryEntry*, unsigned char&, unsigned char&, unsigned char&)
kxld[as.lvs1974.IntelGraphicsFixup]:     WIOKit::readPCIConfigValue(IORegistryEntry*, unsigned int, unsigned int, unsigned int)
kxld[as.lvs1974.IntelGraphicsFixup]:     CPUInfo::getGeneration(unsigned int*, unsigned int*)
kxld[as.lvs1974.IntelGraphicsFixup]:     CPUInfo::getGpuPlatformId(IORegistryEntry*, bool*)
kxld[as.lvs1974.IntelGraphicsFixup]:     CPUInfo::isConnectorLessPlatformId(unsigned int)
Link failed (error code 5).
Prelink failed for as.lvs1974.IntelGraphicsFixup; omitting from prelinked kernel.
I tried to build from the XCode project with same results? Did i miss something?
Thanks

Those symbols are in Lilu.kext, so you likely do not have an up-to-date Lilu installed.
 
I tried using AppleALC 1.2.6 and I just get a reboot. I'm guessing it's because the Lilu version doesn't match the plugin version.

I'm not sure why you're having issues compiling. I have included the debug version of Lilu.kext in the folder so it should just compile.

Anyway since I have made further changes since the last time I will post the source and debug version again.

You should note the following changes it makes:
- IOReg shows Framebuffer entry "built-in"
- In System Preferences->Displays it has changed from "Display" to "Built-in Retina Display"
- IOReg shows Display0 as "AppleBacklightDisplay" instead of "AppleDisplay"

Unfortunately I think these changes may just be superficial and therefore not in any way actually useful.
 

Attachments

  • IntelGraphicsFixup.kext.zip
    175 KB · Views: 60
  • IntelGraphicsFixup-master.zip
    888.8 KB · Views: 63
Last edited:
So as Rehabman figured, my issue was that i was using Lilu 1.2.3
I installed Lilu 1.2.4 (as in your Xcode Project) and got pretty much the same as you.
-No more errors in rebuilding kext cache
-ioreg shows the "built=in" entry
-Display0 is detected as "AppleBacklightDisplay"
-Only difference is that i get "Built In Display" in Sysprefs instead of "Unknown" (And not "Built-In Retina Display" as you get) but i guess this is because of my FHD version, not UHD.
-SSDT-PLNF gives me black screen and no brightness slider in Sysprefs neither. The only way to get the slider is using SSDT-PLNF without the Connector patch, which give a black screen as usual..

An other idea i have : I noticed that, when i have the internal screen "working" (without backlight control), if i put the laptop to sleep (not hibernate mode), when i wake it up, the internal screen stays black, but the external screen works. So maybe we have a problem when the internal screen is disconnected even for a very quick time, and have to be restarted by the system. And maybe SSDT-PLNF needs screen restart at some point which is why it leads to black screen. I don't know..

Edit : To be more precise :
-When i put the laptop to sleep and wake it up after 5 seconds (before deep sleep), internal screen stays black but still listed as usual in ioreg.
-When i put the laptop to sleep and wait for 20+ seconds (deep sleep), it instantly goes off from sleep (without any action), internal screen is black and ioreg shows no display at all under framebuffer0! I think there is an issue with macOS starting the screen. I don't know if this is related to our other black screen issues.
I tried to boot with all different darwake boot args (NO, 0, 1, 2, 3, 4, 8, 10) without any change. Terminal "pmset -g log" shows me "IODisplayWrangler" as preventing sleep.
 
Last edited:
The only way to get the slider is using SSDT-PLNF without the Connector patch, which give a black screen as usual..

That's interesting. Even without the connector patch and SSDT-PLNF.aml I do not get any slider. But I also can not get AppleBacklight.kext or AppleBacklightInjector.kext to load. Also display0 is AppleDisplay not AppleBacklightDisplay.

I've been poking around in AppleIntelKBLGraphicsFramebuffer trying to track down this mysterious CNConnectorAlwaysConnected flag. What I've discovered is that AppleIntelFramebufferController::LinkTrainCheckPortBits is where it's checked during AppleIntelFramebufferController::doLinkTrainingBegin. But it's actually AppleIntelFramebufferController::GetGPUCapability that stores CNConnectorAlwaysConnected in bit 2 of GPUCapability.field_18.

I tried a bunch of patches to see if I could get any sort of response but nothing so far has worked.

I think at this point it's best we just gather the files required for RehabMan to take a look and tackle this issue of backlight not working rather than trying to figure out why unsetting CNConnectorAlwaysConnected works.
 
Last edited:
My Elitebook has also encountered this problem, and I'm still configuring other patches.
My last computer tried to build-in GTX1070, and also encountered internal screen black screen.
 
Hello, I am following this and it looks awesome thead, because I just bought a Dell Inspiron 7588 with a Core i7 8750H, well I tried to config Mac OS High Sierra but I had no luck with that, like the other people when I tried to boot up it loads normally but when it tries to go to the desktop alway black screen. I tried all the patches here with no luck. I am using in High Sierra the id 5916000 because I can connect a second screen through the thunderbolt/usb c port/display port. I had the luck this port is connected to the UHD 630 and I can mirroring my screen, the 591B0000 I have always kernel panic when I plug a screen.

Well I have a Core i9 7890XE and when I tried to config with Sierra long time ago, it was working horrible, but in high Sierra Beta in that time the processor was working like a charm!!!... Then with this new Mojave public beta I wanted to make a tried because I maybe could have some luck.

Well with no patches, just black screen, but I found a way to make the screen work in Mojave.
I used this patches:

com.apple.driver.AppleIntelKBLGraphicsFramebuffer
find: 00000800 02000000 98000000
replace: 00000800 02000000 87010000
Comment: Modify 0x59160000 video port to match port0 eDP

And I used this AppleIntelKBLGraphicsFramebufferInjector_3e9x.kext and the screen is working in Mac OS Mojave Public Beta, I tried the blacklight control patches, not working yet.

If I disable the Clover patch black screen, If I remove the AppleIntelKBLGraphicsFramebufferInjector_3e9x.kext I have black screen, with this 2 things I could make the screen work.

I was also testing with the 0x591B0000 port mapping patch from headkaze, and it works, the screen works but when I tried to connect a monitor I have kernel panic.

The only problem is when I tried to uses this patches in the same way in High Sierra, I have black screen but in the Mojave Beta they works with no problem.

I will attach my config file in case you want to analyze, I want to collaborate with this but I don't know what other files probably you need, because right now High Sierra is stable and It will be awesome to make the screen work there too...

The thing is the screen is not detected as internal, is detected as external screen...

I want to share some pics....

Hope my testing will make more ideas

View attachment 338224View attachment 338225
That's great, Thanks you
 
-NVRAM is working for me correctly but only with AptioFixDrv1 + EmuVariableUEFI. No way to get AptioMemoryFix to work, which could have been better because native.

Have you checked out the requirements for AptioMemoryFix? I'm wondering if we can get it working with a few of the suggested tweaks?
 
Status
Not open for further replies.
Back
Top