Black screen tip of the day

Anyone ever used boot argument agdp[=]Mac-[board-id]?

Edit: This is not the golden all-in-one patch for black screen issues. It just let’s you select a different board-id for the graphics policy daemon.

54 thoughts on “Black screen tip of the day

  1. I have tried other things, and I can already get the login screen
    with GeForce GT610 but soon after enter user password the system just freeze.
    I’ll give you a try to this boot argument, later today.

  2. Is that the same thing as editing the apple advanced graphics kext? Didn’t fix my black screen issue unfortunately. Get a black screen immediately after selecting the disk with no verbose listing at all with either 11.6 or Sierra USB installer. Only works in safe mode but was working great with 11.2. Must be a bios setting amiss you think? Thanks Pike!

    • This will only select a target board-id for the AppleGraphicsDevicePolicy.kext but you should also check the configuration of AGDP in AppleGraphicsPowerManagement.kext/C*/Info.plist:

      <key>AGDCEnabled</key>
      <integer>1</integer>
      

      Think of AGDC as Apple Graphics Device Control. I have set it to 0 in AppleEmulator.kext/C*/Info.plist which acts sort of a dummy kext.

      • This only stops it from (forced) unloading drivers. Other black screen issues need a different approach.

        Please note that I myself cannot even trigger a black screen anymore.

      • > Please note that I myself cannot even trigger a black screen anymore

        You had to edit AGDCEnabled to 0 to achieve this, right? My holy grail is still finding a solution that doesn’t involve turning off SIP. Sadly, I’m not sure that’s possible with the Skylake/GeForce 980 I have 😦

        Thanks for the interesting info, as always!

      • Yes. I inject my plist overrides from AppleEmulator.kext/C*/Info.plist which itself gets injected by the boot loader before the prelinkedkernel/kexts are loaded. Doing it like this leaves no traces of dummy kexts as it is no where to be found.

      • I spoke too soon, seems my kernel caches must have been stale. This alone isn’t enough with my setup. I’ll need to look at patching AGDCEnabled as well.

    • That depends on that you are trying to accomplice, but if you look at the Info.plist of AppleGraphicsDevicePolicy.kext then you will find something like this:

      			<key>ConfigMap</key>
      			<dict>
      				<key>Mac-00BE6ED71E35EB86</key>
      				<string>none</string>
      				<key>Mac-031B6874CF7F642A</key>
      				<string>none</string>
      				<key>Mac-189A3D4F975D5FFC</key>
      				<string>none</string>
      				<key>Mac-27ADBB7B4CEE8E61</key>
      				<string>none</string>
      				<key>Mac-35C1E88140C3E6CF</key>
      				<string>none</string>
      				<key>Mac-42FD25EABCABB274</key>
      				<string>Config2</string>
      				<key>Mac-4B7AC7E43945597E</key>
      				<string>none</string>
      				<key>Mac-65CE76090165799A</key>
      				<string>Config4</string>
      				<key>Mac-77EB7D7DAF985301</key>
      				<string>none</string>
      				<key>Mac-7DF21CB3ED6977E5</key>
      				<string>none</string>
      				<key>Mac-81E3E92DD6088272</key>
      				<string>none</string>
      				<key>Mac-B809C3757DA9BB8D</key>
      				<string>Config2</string>
      				<key>Mac-C3EC7CD22292981F</key>
      				<string>none</string>
      				<key>Mac-C9CF552659EA9913</key>
      				<string>none</string>
      				<key>Mac-DB15BD556843C820</key>
      				<string>Config2</string>
      				<key>Mac-F221BEC8</key>
      				<string>none</string>
      				<key>Mac-F221DCC8</key>
      				<string>none</string>
      				<key>Mac-F42C88C8</key>
      				<string>none</string>
      				<key>Mac-F60DEB81FF30ACF6</key>
      				<string>Config1</string>
      				<key>Mac-FA842E06C61E91C5</key>
      				<string>Config2</string>
      				<key>Mac-FC02E91DDD3FA6A4</key>
      				<string>none</string>
      			</dict>
      

      Note that I added Config4 for testing so you should not have it but the idea is that you can select any board-id other than the one you’ve chosen for your setup. For example. Say that you’ve setup your rig like a MacPro6,1 with board-id Mac-F60DEB81FF30ACF6 but you don’t want to use Config1 but none, then you can do that by using Mac-FC02E91DDD3FA6A4 or any of the others that may work for your setup.

      • So these board-ids arent dependant on the type of mac ive selected in my smbios such as 14,2 or whatever? I wonder if changing these values will solve my black screen issue..

        Thanks for the tip. Will experiment when i have the time. Thanks.

  3. This is fantastic! Finally an update-proof solution that no longer requires me to to re-edit my GPU SSDT each time I change my PCI-e devices.

    I will give this a shot tomorrow!

  4. Pike was wondering I’ve been having trouble with my GT710 card getting recognized with Sierra and Web drivers not working with 12,2 system definition. I tried everything like AGDC check, DSDT SSDT patching, nvidia injection strings nothing but monitor goes to sleep at login. The 11.6 web drivers worked so I tried to edit the drivers to install in Sierra no problem but they get rejected later. Anyway to get 11.6 drivers running on 10.12? I tired using flat package manager to hack them but like i said only got to unlock the install. Won’t initialize.

    Edit: All it took to work was a simple smbios change to 14,2. Working now.

    Thanks.

  5. is there any way to fix blank black gap between two stages? I tried every possible SMBIOS and black screen tips but none of them fix this blank black gap between two stages. I just want to ask to you maybe you can give me a new tip which I didnt try?

      • Here it is the video. After Clover Boot Screen looks like a signal lost but after couple of second apple loading bar coming and system boot without no issue. But this gap super annoying. General Set up 6700K, Asus Z170-A, GTX 660 SMBIOS set up 17,1 but using 14,2 Board-ID Mac 27ADBB7B4CEE8E61.

      • This appears to be some Clover configuration error, but please note that I don’t use Clover. I use RevoBoot and appear to be missing a lot of errors that people run into lately. Many of the patches only work with RevoBoot and/or Chameleon but not Clover, which sounds fishy, but the minute that people report issues with my patches, while they work with RevoBoot, then I know that something isn’t right, and that is not the patches, but Clover and/or Clover configuration so you better ask someone who actually uses Clover.

  6. Have the same problem, the bios stuff with logo and clover boot menus are not shown – black sreen. But after a few seconds there comes the logon window.

  7. Unfortunately this hasn’t worked for me either. just had an easy opportunity to test it after the 10.12.1 update and i still get a black screen even after passing the flag and using a board-id with a config of none.

      • It was right after starting up though in my case the screen just went black without verbose test listing or progress bar on an Oz modded bios install. So I used Clover to troubleshoot and studied nvram before and after and noticed csr flag being used by Clover which successfully booted OS X. Though Clover at first had trouble needing bios settings tweaked. Only thing is now only way to operate is with 67 being set as CSR Active Config. Not sure how safe that is.

  8. Hello Piker! I would really appreciate your help please! I have the black screen issue as well.

    My system is i7 4790k, GTX 960 with an iMac 15,1 System definition. OSX Version 10.12.1
    My monitor is a Dell UP2516D connected via mDP to DP. Also tried HDMI with no luck.

    What have I done so far:

    1) AGDCEnabled=0 in AppleGraphicsPowerManagement.kext -> Contents -> Info.plist for machine with id: 42FD25EABCABB274(which corresponds to the iMAC 15,1).

    2) AppleGraphicsControl.kext -> Plugins -> AppleGraphicsDevicePolicy.kext -> Contents -> info.plist edited ConfigMap for my device from “Config2” to “none”.

    3) Have already ran AGDPfix.app before steps 1) and 2).

    I am still getting black screen after boot.
    My displaypolicyd.log errors are the following:

    Error: AGDC support not present in system
    Error: Policy engine instance init failed

    Thank you very much in advance for your time!

    • If you are using clover. Add agdp=your Board-ID to custom boot flag and restart. I made your first two step and extra add custom boot flag. Then screen comes and still getting these error but screen works without any problem.

      • I do use clover, yes. I tried what you suggest for the custom boot flags. I still get the black screen… What about my current boot args? Are they ok? They are:
        dart=0 kext-dev-mode=1 rootless=0 nvda_drv=1.

      • Still no luck. Also tried with 14,2 just in case. Getting frustrated here… Bought a new monitor to get rid of my old VGA one… Can someone guide me in order to inject manually my card in the GFX0 of the Config2 of MAC 15,1 AppleGraphicsPowerManagement.kext?

  9. Pike
    “Check AppleGraphicsPowerManagement.kext/C*/Info.plist -> AGPM -> Machines -> your board-id -> GFX[0/1/2] -> AGDCEnabled 1 (change it in 0).”

    Can you make a clover kexttopatch for this? if so would it not be a final solve for the AGDP based black screen issue? It should survive updates.

    Would we need a patch made for each affected board-id? If so maybe can publish the most common affected ones? imac15/17 macpro6?

    Thanks!
    g\

  10. Pike,

    I have an ASRock X99M with EVGA 980Ti Graphics card and Core i7 6900K
    The EVGA is connected to 3 monitors (Dell P2715 4K). Two using DP, and One using HDMI.
    The only way this boots is when I just have the HDMI monitor connected. After login screen, I can connect the other DP monitors and it works fine. If I reboot with the DP monitors connected, I get a black screen. I have made the DSDT changes to make sure that it is using GFX1.
    I am using MacPro6,1 profile. I did the ADGPFix.

    I have read others say that it works only when in HDMI or DVI connectors. Can you help? it is really annoying to have to remove the displays each time I reboot for whatever reason.

    • I have exactly the same issue with my 980Ti, multiple monitors (HDMI and DVI) and OS X Sierra. I fixed my board id config value in AppleGraphicsDevicePolicy.kext, changed AGDCEnabled to 0, downgraded my SMBOIS to iMac 14,2, even did the SSDT GFX1 injection. Nothing works except for using only one monitor on boot. For now, I am staying on El Cap and hoping some driver update will fix it in the future.

      • I have almost the same issue. 2 monitors: Old Dell WFP3007 on Dual-Link DVI and new LG 4K on DP. It boots fine if 4K is powered off, otherwise it send LG to “sleep” and Dell to “black screen” with signal present, backlight on.
        System is not responsive, so I can only guess what happens there.

        Interesting thing – if I unplug DVI monitor, it boots fine on 4K screen.

    • Try enabling CSM support (this fixes the problem for me on a Skylake system with an EVGA 980ti).

      I found that with CSM support disabled, I was unable to sleep the system in Linux mint, but enabling CSM support fixed both problems.

      So it looks like there is a bug in Nvidia’s EFI BIOS.

      • @Pike, do you know anything about why this happens?

        Driver issue? Bad EFI implementation by Nvidia or Gigabyte? Something else?

        What I can say is that Disabling CSM in my Gigabyte board causes macOS to crash (not connectable with ssh) with a black screen (only with 2 screens connected) and it causes sleep to not work properly in Linux Mint 18 (any Nvidia driver version) (wake up to garbled screen).

        Seeing as there are problems in multiple OS when CSM is disabled, it must be caused by some underlying issue with some UEFI thing?

  11. Worked for, adding “agdp=Mac-00BE6ED71E35EB86” to my boot arguments string, no need to “hack” AppleGraphicsControl.kext” to get past the black screen at boot anymore.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s