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

Discussion in 'Graphics' started by shilohh, Jan 7, 2016.

  1. shilohh

    shilohh Moderator

    Joined:
    Jan 2, 2012
    Messages:
    1,766
    Mobo:
    Asus Rampage IV Black Edition
    CPU:
    4930K @ 4.4GHz
    Graphics:
    PNY GTX 980 + EVGA Titan X
    Mac:
    MacBook Pro, Mac Pro
    Mobile Phone:
    iOS
    Jan 7, 2016 at 7:39 AM #1
    shilohh

    shilohh Moderator

    Joined:
    Jan 2, 2012
    Messages:
    1,766
    Mobo:
    Asus Rampage IV Black Edition
    CPU:
    4930K @ 4.4GHz
    Graphics:
    PNY GTX 980 + EVGA Titan X
    Mac:
    MacBook Pro, Mac Pro
    Mobile Phone:
    iOS
    The MacPro6,1 and iMac15/17 perform special functions on their specific OEM GPUs/Displays. The MacPro6,1 unloads 1 GPU (with no ports) and leaves one functional for it's pseudo CrossFire function. The iMac15/17s apply a special EDID for their 5K displays.

    The following snippet is taken from /System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist:

    Code (Text):


    ...
    <string>com.apple.driver.AppleGraphicsDevicePolicy</string>
    <key>Config1</key>
    <dict>
        <key>GFX1</key>
        <dict>
            <key>unload</key>
            <true/>
        </dict>
    </dict>
    <key>Config2</key>
    <dict>
        <key>GFX0</key>
        <dict>
           <key>EDID</key>
           <dict>
               <key>0610ae02</key>
               <data>
               AP///////wAGEAOuAAAAAAwYAQS1
               PCJ4IsgFp1VLoCYMUFQAAAABAQEB
               AQEBAQEBAQEBAQEBAAAAEAAAAAAA
               AAAAAAAAAAAAAAAAEAAAAAAAAAAA
               AAAAAAAAAAAA/ABpTWFjCiAgICAg
               ICAgAAAAAAAAAAAAAAAAAAAAAAAA
               Ai0CAx6BcPoQAAASejH8eL3MApCI
               UdNo+hAA9fn6//8AAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAknATeQMAAwAUgG4BhP8TnwAv
               gB8APwtRAAIABAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAMeQ
               </data>
               <key>0610ae06</key>
               <data>
               AP///////wAGEAeuAAAAABsZAQS1
               PCJ4IAAAAAAAAAAAAAAAAAABAQEB
               AQEBAQEBAQEBAQEBAAAAEAAAAAAA
               AAAAAAAAAAAAAAAAEAAAAAAAAAAA
               AAAAAAAAAAAA/ABpTWFjCiAgICAg
               ICAgAAAAAAAAAAAAAAAAAAAAAAAA
               AaZwE3kDAAMAFIBuAYT/E58AL4Af
               AD8LUQACAAQAf4EY+hAAAQEAEnYx
               /HixmQIQiGLT+vj4/v//AAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAB3kA==
               </data>
               <key>0610ae0a</key>
               <data>
               AP///////wAGEAuuAAAAABoZAQS1
               PCJ4IAAAAAAAAAAAAAAAAAABAQEB
               AQEBAQEBAQEBAQEBAAAAEAAAAAAA
               AAAAAAAAAAAAAAAAEAAAAAAAAAAA
               AAAAAAAAAAAA/ABpTWFjCiAgICAg
               ICAgAAAAAAAAAAAAAAAAAAAAAAAA
               AaNwE3kDAAMAFIBuAYT/E58AL4Af
               AD8LUQACAAQAf4EY+hAAAQEAEnYx
               /Hix/wIQiGLT+vj4/v//AAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAAAAAAAAAAAAAAAAAAAAAAAAAAA
               AAARkA==
               </data>
               <key>index</key>
               <integer>0</integer>
           </dict>
           <key>unload</key>
           <false/>
    ...
                <key>ConfigMap</key>
                <dict>
    ...
       <key>Mac-42FD25EABCABB274</key>
       <string>Config2</string>
    ...
       <key>Mac-65CE76090165799A</key>
       <string>Config2</string>
    ...
       <key>Mac-B809C3757DA9BB8D</key>
       <string>Config2</string>
    ...
       <key>Mac-F60DEB81FF30ACF6</key>
       <string>Config1</string>
       <key>Mac-FA842E06C61E91C5</key>
       <string>Config2</string>
    ...

     

    For non-Apple hardware, This can cause your GPU not to send a signal to your monitor (black screen) at boot while using the MacPro6,1 (Mac-F60DEB81FF30ACF6 board-id), or iMac15 (Mac-42FD25EABCABB274 or Mac-FA842E06C61E91C5 board-ids), or iMac17 (Mac-65CE76090165799A or Mac-B809C3757DA9BB8D board-ids) system definitions. If this is happening to you, your system will still be responsive but have no signal coming from the GPU's ports to the monitor.

    How to verify that your system is functional except for video:

    1. Share the screen from another Mac on your network to control the system and verify that it is functional and responsive (you must have Screen Sharing enabled). NOTE: You should be able to boot using nv_disable=1 to enable screen sharing if you have a Nvidia GPU.

    2. Use a keyboard shortcut to verify that the system is responsive:
    • On a Apple keyboard, the eject key will open and close my optical drive.
    • On a Apple keyboard, the play button will launch iTunes and hitting it a 2nd time will start playback depending on what state the app was in when I quit it last.
    • On a Apple keyboard, control + eject will bring up the the "Shut Down" dialog window with the default button being "Shut Down". When you hit enter/return it causes the default button to activate and the system will shut down properly.
    • Holding down control + option + command and then pressing the power button on your case or mobo quickly (less than 1 second) will cause open apps to quit and the system will shut down properly. NOTE: Holding down the power button for 5 seconds will cause the system to hard power off and this is not proof of response from OS X (this is how you force a frozen system to power off).

    If your system is unresponsive (frozen) with a black screen, the fixes outlined here probably won't help you.

    Fixes:

    PikeRAlpha outlined a fix for MacPro6,1 in his blog post on May 1st, 2014 where he changed Config1 to none in the above mentioned info.plist. This seems to work for the iMac15/17s as well by changing Config2 to none.


    Many people have been looking for a Clover "on the fly" info.plist patch to be done at every boot but it fails because Clover's info.plist patches are only visible in the kext caches and it doesn't change the actual info.plist file. It seems that more than one kexts are reading the ConfigMap from the info.plist in it's actual file path, so putting "none" in the kext cache changes nothing. This also makes it impossible to use the dummy kext method. Even if you get a dummy kext with a patched info.plist to load instead of the original kext, the info.plist will still be read from the original kext's file path.

    Pike came to the rescue (sort of) again on November 23rd, 2015 with a Clover "on the fly" binary patch for the AppleGraphicsDevicePolicy.kext
    Code (Text):

                <dict>
                    <key>Comment</key>
                    <string>AppleGraphicsDevicePolicy (board-id) Patch (c) Pike R. Alpha</string>
                    <key>Find</key>
                    <data>
                    Ym9hcmQtaWQ=
                    </data>
                    <key>Name</key>
                    <string>AppleGraphicsDevicePolicy</string>
                    <key>Replace</key>
                    <data>
                    Ym9hcmQtaXg=
                    </data>
                </dict>
     
    This patch changes board-id to board-ix in the binary file but only seems to give the desired result if you have 1 discreet GPU. I have have 2. With 2 GPUs, one always unloads and it's unpredictable which one will work. Some people with only 1 GPU also have issues with this patch.

    EDIT (03/01/2017):
    vit9696 offered a new solution for those who want an easy fix. I haven't tested this but it sounds like it bypasses the offending functionality of Apple Graphics Display Policy. Because it is a separate pair of kexts, it should not require any actions (re-patching) after updates. Install the Lilu.kext & NvidiaGraphicsFixup.kext in /Volumes/EFI/EFI/CLOVER/kexts/Other. It says it's for MacPro6,1 but omrij confirms it works for iMac15 and pastrychef confirms it works for the iMac 17 board IDs as well.


    My last easy solution is a AppleScript app (AGDPfix.app) that patches the OEM kext's info.plist via shell scripts. OS X updates usually cause the kext to be overwritten/updated so the app must be run again after updating OS X, but it's a lot easier than manually patching the info.plist every time. I originally created v1.0 for MacPro6,1 only but have now updated it to v1.1 for use with iMac15/17 sys defs as well. Feel free to download and use the app attached below. NOTE: You will need to use the boot argument kext-dev-mode=1 for 10.10 Yosemite, disable SIP or use kext-dev-mode in 10.11 El Capitan and 10.12 Sierra.

    My preferred method. For those of you using MacPro6,1 and willing to get a little more geeky, assigning the name GFX1 to your GPU in your ACPI tables (DSDT or SSDT) will also work without the need to patch any kexts and you won't need to worry about re-patching anything after OS X updates unless Apple changes the device policy again (credit : dgsga and furter).

    In this pic from IORegistryExplorer you can see the AppleGraphicsDevicePolicyControlClient loaded on my second GPU (GTX 980) installed in PCI slot 4 (NPE7):
    [​IMG]
    In this state, it will not send a video signal from any of it's ports.

    In the next pic you can see that I have injected my GTX 980 as GFX1 in NPE7 and AGDPCC is no longer loaded to it:
    [​IMG]
    Now all ports are functional. It's also worth noting that I have my 1st GPU (GTX Titan X) injected as GFX1 as well.

    If you currently have GPU injection via DSDT or SSDT, it's as easy as changing the name. Open your DSDT or SSDT in your editor of choice (I prefer MaciASL) and change GFX0, PXSx, PEGx, or whatever it's name currently is to GFX1. Click compile and save it. If you don't currently have have your GPU injected in your DSDT or a SSDT, see this Guide to create one or more SSDTs for your GPU/s. If your ACPI tables assign specific names to PCI devices when they are installed, It is also possible to rename your DSDT's/SSDT's current GPU device name using clover's ACPI patching function. However, some ACPI table sets don't have a dedicated names for installed PCI devices and when the GPU loads, it gets the name "display@0" under IOPP. See RehabMan's excellent guide here.

    You should also read this post if you feel you might be having other Nvidia Web Driver related issues: Solving NVIDIA Driver Install & Loading Problems However, The solutions outlined here will solve problem 4.
     
    gulios, Abner.zhao, akg and 14 others like this.

    Attached Files:

    Last edited: Mar 7, 2017
  2. furter

    furter

    Joined:
    Jun 25, 2011
    Messages:
    7
    Mobo:
    10.8.1
    CPU:
    Corei7
    Graphics:
    Intel HD 3000
    Jan 8, 2016 at 3:09 PM #2
    furter

    furter

    Joined:
    Jun 25, 2011
    Messages:
    7
    Mobo:
    10.8.1
    CPU:
    Corei7
    Graphics:
    Intel HD 3000
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    Better way is rename in DSDT or SSDT device GFX0 to GFX1:

    Example:

    Device (GFX1)
    {
    Name (_ADR, Zero)
    Method (_DSM, 4, NotSerialized)
    {
    Store (Package (0x0E)
    {
    "AAPL,slot-name",
    Buffer (0x07)
    {
    "Slot-1"
    },

    "@0,connector-type",
    Buffer (0x04)
    {
    0x00, 0x08, 0x00, 0x00
    },

    "@1,connector-type",
    Buffer (0x04)
    {
    0x00, 0x08, 0x00, 0x00
    },

    "@2,connector-type",
    Buffer (0x04)
    {
    0x00, 0x08, 0x00, 0x00
    },

    "@3,connector-type",
    Buffer (0x04)
    {
    0x00, 0x08, 0x00, 0x00
    },

    "@4,connector-type",
    Buffer (0x04)
    {
    0x00, 0x08, 0x00, 0x00
    },

    "hda-gfx",
    Buffer (0x0A)
    {
    "onboard-1"
    }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
     
  3. telepati

    telepati

    Joined:
    May 22, 2011
    Messages:
    656
    Mobo:
    ASUS Z170-A
    CPU:
    i7 6700K
    Graphics:
    Intel HD 530
    Mac:
    iMac
    Mobile Phone:
    iOS
    Jan 8, 2016 at 3:14 PM #3
    telepati

    telepati

    Joined:
    May 22, 2011
    Messages:
    656
    Mobo:
    ASUS Z170-A
    CPU:
    i7 6700K
    Graphics:
    Intel HD 530
    Mac:
    iMac
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    I'm using 14.1 system definition and I am getting black screen after clover boot screen. When I first boot my machine clover screen comes when auto boot finished my screen turns black actually looks like close itself waiting loading time and my desktop coming. This black screen part is really annoying. Normally in this step apple logo and loading bar comes before but now just black screen.

    I know you don't mention about this system definition but this kext can be help my system?
     
    Nicolay2016 likes this.
  4. shaveblog

    shaveblog

    Joined:
    Nov 29, 2010
    Messages:
    88
    Mobo:
    Z77X-UD5H, Z77N-WIFI, B75N-D3P
    CPU:
    i7-3770K, i5-3570K, i3-3225
    Graphics:
    R9 280X
    Mobile Phone:
    iOS
    Jan 8, 2016 at 3:46 PM #4
    shaveblog

    shaveblog

    Joined:
    Nov 29, 2010
    Messages:
    88
    Mobo:
    Z77X-UD5H, Z77N-WIFI, B75N-D3P
    CPU:
    i7-3770K, i5-3570K, i3-3225
    Graphics:
    R9 280X
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    I'm curious about this. I set up my Z77X-UD5H/i7-3770K system with a MacPro6,1 System Definition in Clover, using an ATI HD5870 GPU with the onboard Intel HD4000 graphics disabled. I'd used iMac12,2 with MultiBeast as this gave me the best graphics performance, but now with Clover, MacPro6,1 seems to eke out the best this still quite potent video card has to give. Not only don't I get the black boot screen, but my system soars through graphics-heavy jobs like video rendering, and both Open_GL and Open_CL benchmarks are as high as they should be with this GPU.

    So is this black screen issue specific to post-Ivy systems, or am I just lucky?
     
  5. dahe

    dahe

    Joined:
    Mar 31, 2010
    Messages:
    20
    Mobo:
    MAC OSX 10.7
    CPU:
    Intel i 5
    Graphics:
    AMD 6870
    Mac:
    MacBook Pro
    Mobile Phone:
    iOS
    Jan 8, 2016 at 5:32 PM #5
    dahe

    dahe

    Joined:
    Mar 31, 2010
    Messages:
    20
    Mobo:
    MAC OSX 10.7
    CPU:
    Intel i 5
    Graphics:
    AMD 6870
    Mac:
    MacBook Pro
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    I have issues with GTX 660 Ti. No signal "black screen".

    I installed El Capitan with nv_disable=1 npci=0x2000 and installed the Nvdia Web Driver.
    Added the flags dart=0 nvda_drv=1 -v.

    SMBIOS. iMac 17,1
    I have No signal.

    i will try this kext.
     
  6. mike0810

    mike0810

    Joined:
    Jun 2, 2011
    Messages:
    24
    Mobo:
    Supermicro X9DAI Clover 10.10.1
    CPU:
    E5-2670v1 Dual
    Graphics:
    GeForce GTX 770
    Mac:
    Mac Pro
    Mobile Phone:
    iOS
    Jan 8, 2016 at 5:58 PM #6
    mike0810

    mike0810

    Joined:
    Jun 2, 2011
    Messages:
    24
    Mobo:
    Supermicro X9DAI Clover 10.10.1
    CPU:
    E5-2670v1 Dual
    Graphics:
    GeForce GTX 770
    Mac:
    Mac Pro
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    Hi, what does you mean? I have GTX770, there is no entry in the DSDT with GFX0/1. I have nvda on npe3 in my dsdt.

    Can you explain further? Or is this only true for integrated Intel GFX?

    Thanks
     
  7. shilohh

    shilohh Moderator

    Joined:
    Jan 2, 2012
    Messages:
    1,766
    Mobo:
    Asus Rampage IV Black Edition
    CPU:
    4930K @ 4.4GHz
    Graphics:
    PNY GTX 980 + EVGA Titan X
    Mac:
    MacBook Pro, Mac Pro
    Mobile Phone:
    iOS
    Jan 8, 2016 at 6:16 PM #7
    shilohh

    shilohh Moderator

    Joined:
    Jan 2, 2012
    Messages:
    1,766
    Mobo:
    Asus Rampage IV Black Edition
    CPU:
    4930K @ 4.4GHz
    Graphics:
    PNY GTX 980 + EVGA Titan X
    Mac:
    MacBook Pro, Mac Pro
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    I had started using GFX1 and GFX2 instead of GFX0 and GFX1 (same as OEM MacPro6,1 DSDT) when I first got my hands on ACPI dumps from the real MacPro6,1 and saw their code, but one GPU was always killed after 10.9.3. After reading your post, I got the idea to try GFX1 on both GPUs. Thanks! it works with both GPUs now. This seems illogical to me as the plist states GFX1 unload but I am not a programmer and I have no idea what the binaries are doing. :thumbup: BTW, it's better to do it with SSDTs.

    I will update the OP later.
     
  8. diabogs

    diabogs

    Joined:
    Sep 13, 2013
    Messages:
    9
    Mac:
    iMac, Mac mini
    Mobile Phone:
    iOS
    Jan 8, 2016 at 6:59 PM #8
    diabogs

    diabogs

    Joined:
    Sep 13, 2013
    Messages:
    9
    Mac:
    iMac, Mac mini
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    Sorry but i don't find an answer for my problem.

    My GT610 have this problem with these applications (safari, mail, youtube)

    Schermata 2016-01-08 alle 19.46.10.png
    Schermata 2016-01-08 alle 19.46.26.png
    Schermata 2016-01-08 alle 19.49.29.png


    I have the last Clover v2.3 r3330 and the last Nvidia Web Drivers.

    Can anyone help me? :thumbup:

    Thanks
    Andrew
     
  9. slim.jim

    slim.jim Moderator

    Joined:
    Dec 17, 2014
    Messages:
    3,925
    Mobo:
    MSI Z97 Gaming 9 AC
    CPU:
    i7-4790K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    MacBook Pro, Mac Pro
    Classic Mac:
    PowerBook
    Mobile Phone:
    iOS
    Jan 8, 2016 at 8:12 PM #9
    slim.jim

    slim.jim Moderator

    Joined:
    Dec 17, 2014
    Messages:
    3,925
    Mobo:
    MSI Z97 Gaming 9 AC
    CPU:
    i7-4790K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    MacBook Pro, Mac Pro
    Classic Mac:
    PowerBook
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    I believe this is an issue with Nvidia cards only. I could be wrong.
     
  10. slim.jim

    slim.jim Moderator

    Joined:
    Dec 17, 2014
    Messages:
    3,925
    Mobo:
    MSI Z97 Gaming 9 AC
    CPU:
    i7-4790K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    MacBook Pro, Mac Pro
    Classic Mac:
    PowerBook
    Mobile Phone:
    iOS
    Jan 8, 2016 at 8:14 PM #10
    slim.jim

    slim.jim Moderator

    Joined:
    Dec 17, 2014
    Messages:
    3,925
    Mobo:
    MSI Z97 Gaming 9 AC
    CPU:
    i7-4790K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    MacBook Pro, Mac Pro
    Classic Mac:
    PowerBook
    Mobile Phone:
    iOS
    Black Screen with MacPro6,1 or iMac15 or iMac17 System Definition

    Completely unrelated... create your own post.
     
    timothyirvine likes this.

Share This Page