Fix NVIDIA Web Driver black screen on boot without swapping out GPUs!

Discussion in 'Mac Pro' started by Troy2000, Aug 7, 2015.

  1. Troy2000, Aug 7, 2015
    Last edited: Aug 7, 2015

    Troy2000 macrumors regular

    Troy2000

    Joined:
    Oct 21, 2009
    #1
    Greetings!

    If you use the NVIDIA Web Driver in conjunction with a non-EFI card which is not supported by the default OS X driver, then at some point you have probably experienced the pain of inattentively installing an OS update, only to be greeted with a black screen on boot afterwards. From there, standard procedure would be to swap out the offending GPU for the card which originally came with your Mac Pro in order to boot.

    I was in a similar pickle last night and the very last thing that I wanted to do was remove that awkward PCI-E slot bridge yet again for the sake of eating into the insertion rating of my Mac Pro's sole X16 slot. Instead, I improvised a simple solution to the problem which I hadn't yet seen anybody else try.

    What you need to do is simply create a USB installer for any version of Mac OS X and add the flag "nv_disable=1" to the "Kernel Flags" string of its "com.apple.Boot.plist" file. This will enable you to boot into the OS X installer and gain access to the terminal, at which point you will be able to run "nvram boot-args="nv_disable=1"" and then reboot into OS X successfully.

    I would recommend that everybody using the NVIDIA Web Driver keeps one of these drives on standby for emergencies but if you happen to own more than one Apple PC (or hackintosh), then you can simply create one if the need arises.

    In the absence of an available USB drive, an alternative solution would be to place your Mac Pro in Target Disk mode and edit OS X's "com.apple.Boot.plist" directly from another Apple PC.

    Thank you for reading and I hope this benefits you. :3

    -Troy
     
  2. ActionableMango macrumors 604

    ActionableMango

    Joined:
    Sep 21, 2010
    #2
    To be clear, that would be specifically for non-EFI Maxwell cards. AFAIK, Kepler and earlier cards work fine with the default drivers whether you have EFI or not. And if you have an EFI Maxwell card you just hold down COMMAND-S and type in those lines.
     
  3. Troy2000 thread starter macrumors regular

    Troy2000

    Joined:
    Oct 21, 2009
    #3
    Yes, I should have specified. Non-EFI GPUs which are not supported by the default driver.
     
  4. SoyCapitanSoyCapitan macrumors 68040

    SoyCapitanSoyCapitan

    Joined:
    Jul 4, 2015
    #4
    Apple should just shift the loading sequence from firmware to the OS like Windows does. Then you won't have a black screen. I don't know if they could move the boot selection screen to the OS though.
     
  5. pastrychef macrumors 601

    pastrychef

    Joined:
    Sep 15, 2006
    Location:
    New York City, NY
    #5
    This is a brilliant solution, unfortunately, I couldn't get it to work... The following is how my com.apple.Boot.plist file looks after editing. What am I doing wrong?

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Kernel Cache</key>
    <string>/.IABootFiles/kernelcache</string>
    <key>Kernel Flags</key>
    <string>container-dmg=file:///Install%20OS%20X%20Yosemite.app/Contents/SharedSupport/InstallESD.dmg root-dmg=file:///BaseSystem.dmg</string>
    <key>Kernel Flags 2</key>
    <string>nv_disable=1</string>
    </dict>
    </plist>


    Thanks in advance.
     
  6. Troy2000, Aug 7, 2015
    Last edited: Aug 7, 2015

    Troy2000 thread starter macrumors regular

    Troy2000

    Joined:
    Oct 21, 2009
    #6
    Here is what you need to do. :3

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Kernel Cache</key>
    <string>/.IABootFiles/kernelcache</string>
    <key>Kernel Flags</key>
    <string>container-dmg=file:///Install%20OS%20X%20Yosemite.app/Contents/SharedSupport/InstallESD.dmg root-dmg=file:///BaseSystem.dmg nv_disable=1</string>
    </dict>
    </plist>
    
    The "nv_disable=1" flag needs to placed before or after the existing contents of the kernel flags string, separated by a space.
     
  7. pastrychef macrumors 601

    pastrychef

    Joined:
    Sep 15, 2006
    Location:
    New York City, NY
    #7
    Ah!! Thank you very much!!

    Again, it's a brilliant solution and thank you very much for sharing with us!!
     
  8. Troy2000, Aug 7, 2015
    Last edited: Aug 7, 2015

    Troy2000 thread starter macrumors regular

    Troy2000

    Joined:
    Oct 21, 2009
    #8
    You're very welcome. Hopefully it will result in fewer people playing musical GPUs. :p
     
  9. Asgorath macrumors 65816

    Joined:
    Mar 30, 2012
    #9
    Very cool, I'll merge this into my FAQ thread over the weekend.
     
  10. pastrychef macrumors 601

    pastrychef

    Joined:
    Sep 15, 2006
    Location:
    New York City, NY
    #10
    When I have a bit more time, I will do this to my Recovery Partition as well. ;)
     
  11. dmylrea macrumors 68000

    dmylrea

    Joined:
    Sep 27, 2005
    #11
    I'm trying to do this mod of the plist on a Windows PC. I've installed a HFS+ driver from Paragon that allows me to read/write to Mac drives. When I put in my Yosemite USB installer, it mounts as a drive, and I go to LIBRARY/PREFERENCES/SYSTEMCONFIGUATION and the plist is there, but it's 0K (empty).

    Is this the correct location?

    (yes, I accidentally installed 10.10.5 last night before updating the nvidia drivers, and now have a black screen. I have a card I can swap in to fix it, but I wanted to try this first as practice)
     
  12. pastrychef macrumors 601

    pastrychef

    Joined:
    Sep 15, 2006
    Location:
    New York City, NY
    #12
    Yes.
     
  13. dmylrea macrumors 68000

    dmylrea

    Joined:
    Sep 27, 2005
    #13
    Any idea why it would show 0K (zero K) in size? I looked in other folders and the file sizes are non-zero.

    It could be the HFS driver I have, but I don't have another Mac to use to verify it.
     
  14. pastrychef macrumors 601

    pastrychef

    Joined:
    Sep 15, 2006
    Location:
    New York City, NY
    #14
    I have no idea why it shows as 0K...
     
  15. dmylrea macrumors 68000

    dmylrea

    Joined:
    Sep 27, 2005
    #15
    Might you have a modified (as above) plist file for Yosemite you could provide? :)
     
  16. Troy2000, Aug 14, 2015
    Last edited: Aug 14, 2015

    Troy2000 thread starter macrumors regular

    Troy2000

    Joined:
    Oct 21, 2009
    #16
    If you have access to Windows on the Mac, a much simpler solution is to browse to "Macintosh HD\Library\Preferences\SystemConfiguration" and edit the plist file there. That will enable to you boot into OS X directly. Once the driver has been updated, you can then remove the flag from the plist.

    If not, here is a plist for the Yosemite USB installer.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Kernel Cache</key>
    <string>/.IABootFiles/kernelcache</string>
    <key>Kernel Flags</key>
    <string>container-dmg=file:///Install%20OS%20X%20Yosemite.app/Contents/SharedSupport/InstallESD.dmg root-dmg=file:///BaseSystem.dmg nv_disable=1</string>
    </dict>
    </plist>
    
     
  17. dmylrea macrumors 68000

    dmylrea

    Joined:
    Sep 27, 2005
    #17
    No Windows on this Mac. I did get my USB installer updated with a modified plist file with the help of a fellow forum member, but now the issue is, with a black screen at power on, how am I supposed to select the USB drive to install to? I tried guessing by using the arrow key right and ENTER, but nothing. Twice right, ENTER--nothing. Just ENTER--nothing.

    It is just a guessing game? It was also suggested to modify the flag on my Mac from a Windows computer on the same network. I can see my Mac from my Windows PC, and it's shares, but is there a way to get to the root of the hard drive (in Windows you use something like C$ or D$).
     
  18. Troy2000 thread starter macrumors regular

    Troy2000

    Joined:
    Oct 21, 2009
    #18
    You need to hold down the "C" key when you hear the startup chime. It will then boot from the USB drive.

    No, you can only access the shares which are already exposed.
     
  19. bbrik macrumors newbie

    Joined:
    Aug 30, 2009
    #19
    Hi, I tried this. Made the USB boot disk, started my Mac Pro holding C. It took a while than just booted to my normal desktop. What am I doing wrong?
    I have a non-EFI Titan X.
    Thank you
     

Share This Page