Contribute
Register

Black Screen with MacPro 6,1 or iMac 15 or iMac 17 System Definition

shilohh

Moderator
Joined
Jan 2, 2012
Messages
1,771
Motherboard
Asus Rampage IV Black Edition
CPU
4930K @ 4.4GHz
Graphics
PNY GTX 980 + EVGA Titan X
Mac
MacBook Pro, Mac Pro
Mobile Phone
iOS
Hi. I'm wondering, for those of us who are using iMac17,1 system definitions, can we avoid having to use the AGDPfix by renaming the IGPU and discrete graphics as per:


I've already renamed the HD 530 to IGPU and the GTX 980 to GFX0. As far as I can tell, AppleGraphicsDevicePolicyControlClient is not loaded. Is it safe to revert to the unmodified AppleGraphicsControl.kext?

Also, does it matter whether the HD 530 or GTX 980 is set a primary in BIOS?

Thanks in advance for your help.
View attachment 240137 View attachment 240138
I haven't done any testing with iMac board ids but I don't think it will work, especially with the gpu named gfx0. AGDP specifies gfx0 to be effected by it's code. However, I'm not sure. I'd try reverting to the oem kext and if it won't boot, just use nv_disable=1 to boot and reapply your fix. Or, You should also try the new solution (the 2 kexts) in the OP. That should eliminate your reliance on AGDPfix if it works for iMac17,1. I'm not sure if it does.
 

pastrychef

Moderator
Joined
May 29, 2013
Messages
10,297
Motherboard
Asus ROG Strix Z370-G Gaming (Wi-Fi AC)
CPU
i9-9900K OC'd @ 5.0GHz
Graphics
Radeon VII
Mac
MacBook, Mac Pro
Classic Mac
iBook, Power Mac, PowerBook
Mobile Phone
iOS
Here are the results of my trial and error testing. Again, I'm using iMac17,1 system definition and I've renamed the HD 530 to IGPU and the GTX 980 to GFX0.
  • Only using the renaming did NOT fix the black screen when using unmodified AppleGraphicsControl.kext.
  • Adding the Lilu.kext and NvidiaGraphicsFixup.kext DOES fix the black screen and works with iMac17,1 system definition.
  • Sleep/wake is unaffected by Lilu/NvidiaGraphicsFixup.
I will keep the renaming to more closely mimic a real iMac as I don't see any harm in doing so.

I have one last question... The download for Lilu 1.0.0 RELEASE had an additional file included. Filename is Lilu.kext.dSYM. Is it safe to assume this file is not need and can be disregarded?

Thanks to vit9696 and lvs1974 for Lilu and NvidiaGraphicsFixup!! Thanks to shilohh for all your work and great writeup!!
 
Last edited:

shilohh

Moderator
Joined
Jan 2, 2012
Messages
1,771
Motherboard
Asus Rampage IV Black Edition
CPU
4930K @ 4.4GHz
Graphics
PNY GTX 980 + EVGA Titan X
Mac
MacBook Pro, Mac Pro
Mobile Phone
iOS
Here are the results of my trial and error testing. Again, I'm using iMac17,1 system definition and I've renamed the HD 530 to IGPU and the GTX 980 to GFX0.
  • Only using the renaming did NOT fix the black screen when using unmodified AppleGraphicsControl.kext.
  • Adding the Lilu.kext and NvidiaGraphicsFixup.kext DOES fix the black screen and works with iMac17,1 system definition.
  • Sleep/wake is unaffected by Lilu/NvidiaGraphicsFixup.
I will keep the renaming to more closely mimic a real iMac as I don't see any harm in doing so.

I have one last question... The download for Lilu 1.0.0 RELEASE had an additional file included. Filename is Lilu.kext.dSYM. Is it safe to assume this file is not need and can be disregarded?

Thanks to vit9696 and lvs1974 for Lilu and NvidiaGraphicsFixup!! Thanks to shiloh for all your work and great writeup!!
Thanks for sharing and contributing! Yes I'd disregard the dsym file.
 
Joined
Sep 14, 2012
Messages
14
Motherboard
Z170MX-Gaming 5
CPU
i7-6700K 4ghz
Graphics
gtx 950
Mac
MacBook Pro
Classic Mac
iMac
Mobile Phone
Android
Joined
Jul 28, 2012
Messages
24
Motherboard
Gigabyte Z97X-UD5H
CPU
I7-4790K
Graphics
Gigabyte GTX660 OC
Mobile Phone
Android
Or, You should also try the new solution (the 2 kexts) in the OP.
Most people now days are using applealc for audio patching which already require Lilu (in latest version) so it's actually one kext :)
 
Joined
Aug 19, 2011
Messages
10
Motherboard
GA-X270XP-SLI
CPU
Core i5 7600K
Graphics
GTX770
Mac
MacBook
Classic Mac
iMac
So I've been spending the last couple of days trying to get a fresh install of Sierra going on a new Kaby Lake build (GA-Z270XP-SLI, 7600K, GTX770), but every time I try to enable Web Drivers I get stuck with the Black Screen issue (and have to clear nvram to force the stock driver to load (which, coincidentially, works fine)). I already use Lilu for AppleALC, and I've already tried putting NvidiaGraphicsFixup next to it in CLOVER/kexts/Other (as well as moving them around to places like /L/E and /S/L/E) to no avail. As I don't see anyone else insane enough to be running such an old system with such a new chipset, am I out of luck without going out and splurging money on a (currently price-inflated) 970/980?

SSHing into the box after boot and running system_profiler shows the driver is getting loaded:

Code:
system_profiler SPDisplaysDataType
Graphics/Displays:

    NVIDIA GeForce GTX 770:

      Chipset Model: NVIDIA GeForce GTX 770
      Type: GPU
      Bus: PCIe
      PCIe Lane Width: x16
      VRAM (Total): 4095 MB
      Vendor: NVIDIA (0x10de)
      Device ID: 0x1184
      Revision ID: 0x00a2
      ROM Revision: VBIOS 80.04.c3.00.73
      Metal: Supported
and ioreg seems to support that:
Code:
    | +-o PCI0@0  <class IOACPIPlatformDevice, id 0x100000140, registered, matched, active, busy 0 (6394 ms), retain 105>
    | | +-o AppleACPIPCI  <class AppleACPIPCI, id 0x100000254, registered, matched, active, busy 0 (6383 ms), retain 45>
    | |   +-o pci8086,591f@0  <class IOPCIDevice, id 0x100000263, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   +-o PEG0@1  <class IOPCIDevice, id 0x1000001ef, registered, matched, active, busy 0 (75 ms), retain 12>
    | |   | +-o IOPP  <class IOPCI2PCIBridge, id 0x100000269, registered, matched, active, busy 0 (74 ms), retain 10>
    | |   |   +-o GFX0@0  <class IOPCIDevice, id 0x1000001f0, registered, matched, active, busy 0 (73 ms), retain 25>
    | |   |   | +-o NVDAHal  <class IOService, id 0x1000003b7, registered, matched, active, busy 0 (1 ms), retain 6>
    | |   |   | +-o NVDAgl  <class IOService, id 0x1000003b8, registered, matched, active, busy 0 (5 ms), retain 6>
    | |   |   | +-o NVDA,Display-A@0  <class IONDRVDevice, id 0x1000003bc, registered, matched, active, busy 0 (12 ms), retain 8>
    | |   |   | | +-o NVDA  <class NVDA, id 0x1000003cf, registered, matched, active, busy 0 (8 ms), retain 16>
    | |   |   | |   +-o AppleMCCSControlModule  <class AppleMCCSControlModule, id 0x1000003d7, registered, matched, active, busy 0 (1 ms), retain 6>
    | |   |   | |   | +-o AppleMCCSParameterHandler  <class AppleMCCSParameterHandler, id 0x1000003dc, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o AppleUpstreamUserClientDriver  <class AppleUpstreamUserClientDriver, id 0x1000003d8, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o IOFramebufferI2CInterface  <class IOFramebufferI2CInterface, id 0x10000043e, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   +-o display0  <class IODisplayConnect, id 0x10000043f, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   | +-o AppleDisplay  <class AppleDisplay, id 0x100000441, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | |   +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x10000044e, !registered, !matched, active, busy 0, retain 6>
    | |   |   | +-o nvAccelerator  <class nvAccelerator, id 0x1000003cd, registered, matched, active, busy 0 (1 ms), retain 14>
    | |   |   | +-o NVDA,Display-B@1  <class IONDRVDevice, id 0x1000003bd, registered, matched, active, busy 0 (4 ms), retain 8>
    | |   |   | | +-o NVDA  <class NVDA, id 0x1000003e2, registered, matched, active, busy 0 (4 ms), retain 16>
    | |   |   | |   +-o AppleMCCSControlModule  <class AppleMCCSControlModule, id 0x1000003e6, registered, matched, active, busy 0 (3 ms), retain 6>
    | |   |   | |   | +-o AppleMCCSParameterHandler  <class AppleMCCSParameterHandler, id 0x1000003ea, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o AppleUpstreamUserClientDriver  <class AppleUpstreamUserClientDriver, id 0x1000003e7, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o IOFramebufferI2CInterface  <class IOFramebufferI2CInterface, id 0x100000443, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   +-o display0  <class IODisplayConnect, id 0x100000444, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   | +-o AppleDisplay  <class AppleDisplay, id 0x100000446, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | |   +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x100000450, !registered, !matched, active, busy 0, retain 5>
    | |   |   | +-o NVDA,Display-C@2  <class IONDRVDevice, id 0x1000003bf, registered, matched, active, busy 0 (4 ms), retain 8>
    | |   |   | | +-o NVDA  <class NVDA, id 0x1000003eb, registered, matched, active, busy 0 (3 ms), retain 16>
    | |   |   | |   +-o AppleMCCSControlModule  <class AppleMCCSControlModule, id 0x1000003f0, registered, matched, active, busy 0 (3 ms), retain 6>
    | |   |   | |   | +-o AppleMCCSParameterHandler  <class AppleMCCSParameterHandler, id 0x1000003f5, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o AppleUpstreamUserClientDriver  <class AppleUpstreamUserClientDriver, id 0x1000003f1, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o IOFramebufferI2CInterface  <class IOFramebufferI2CInterface, id 0x100000448, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   +-o display0  <class IODisplayConnect, id 0x100000449, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   | +-o AppleDisplay  <class AppleDisplay, id 0x10000044b, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | |   +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x100000451, !registered, !matched, active, busy 0, retain 5>
    | |   |   | +-o NVDA,Display-D@3  <class IONDRVDevice, id 0x1000003c0, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | | +-o NVDA  <class NVDA, id 0x1000003f7, registered, matched, active, busy 0 (0 ms), retain 14>
    | |   |   | |   +-o AppleMCCSControlModule  <class AppleMCCSControlModule, id 0x1000003fa, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   | +-o AppleMCCSParameterHandler  <class AppleMCCSParameterHandler, id 0x1000003fc, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o AppleUpstreamUserClientDriver  <class AppleUpstreamUserClientDriver, id 0x1000003fb, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | |   +-o IOFramebufferI2CInterface  <class IOFramebufferI2CInterface, id 0x10000044d, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | |   +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x100000452, !registered, !matched, active, busy 0, retain 5>
    | |   |   | +-o NVDC  <class NVDC, id 0x10000043a, registered, matched, active, busy 0 (37 ms), retain 8>
    | |   |   | | +-o AppleGraphicsDeviceControlPlugin  <class AppleGraphicsDeviceControlPlugin, id 0x10000043b, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | | +-o AppleGraphicsDeviceControlClient  <class AppleGraphicsDeviceControlClient, id 0x10000044f, !registered, !matched, active, busy 0, retain 5>
    | |   |   | +-o NVDAinitgl  <class IOService, id 0x10000043c, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   +-o pci10de,e0a@0,1  <class IOPCIDevice, id 0x100000265, registered, matched, active, busy 0 (12 ms), retain 8>
NvidiaGraphicsFixup is definitely getting loaded:
Code:
    | +-o NvidiaGraphicsFixup  <class NvidiaGraphicsFixup, id 0x10000012d, !registered, !matched, active, busy 0, retain 4>
and here's the only remotely relevant part of dmesg:
Code:
NVDAStartupWeb: Web
...
kPEDisableScreen 1
...
NvidiaGraphicsFixup: (DEBUG) ngfx @ found com.apple.driver.AppleGraphicsDevicePolicy
NvidiaGraphicsFixup: (DEBUG) ngfx @ applying patches for 7u kext
NvidiaGraphicsFixup: (DEBUG) ngfx @ applying 0u patch for 7u kext
kPEDisableScreen 1
I've attached my config.plist for giggles. I'm currently using iMac17,1, but I've tried with several other definitions (including MacPro6,1, iMac14,2, and others) with identical results. What am I missing?
 

Attachments

P1LGRIM

Moderator
Joined
Mar 2, 2012
Messages
21,415
Motherboard
Lenovo ThinkStation p300 ⌘
CPU
i7-4790K
Graphics
HD 4600
Mac
MacBook Pro, Mac mini
Classic Mac
Power Mac
Mobile Phone
iOS
but every time I try to enable Web Drivers I get stuck with the Black Screen issue
If you want to use Nvidia why are you injecting Intel in your config.plist ?
 

P1LGRIM

Moderator
Joined
Mar 2, 2012
Messages
21,415
Motherboard
Lenovo ThinkStation p300 ⌘
CPU
i7-4790K
Graphics
HD 4600
Mac
MacBook Pro, Mac mini
Classic Mac
Power Mac
Mobile Phone
iOS
Seems this was a remnant of MultiBeast's default config.plist. Disabling it doesn't seem to change anything.
When people make changes that have no effect it is often because the config.plist that they are editing is not the one that they are booting with.

An easy way to test is to toggle the verbose boot on or off.

If you are currently booting in normal mode then turn verbose mode on or vice versa.
 
Joined
Aug 19, 2011
Messages
10
Motherboard
GA-X270XP-SLI
CPU
Core i5 7600K
Graphics
GTX770
Mac
MacBook
Classic Mac
iMac
When people make changes that have no effect it is often because the config.plist that they are editing is not the one that they are booting with.

An easy way to test is to toggle the verbose boot on or off.

If you are currently booting in normal mode then turn verbose mode on or vice versa.
Checked with the method you suggested, config changes are definitely being read correctly (that is to say intel injection is definitely disabled / I can toggle verbose)
 

Top