Graphics card not working on Windows 8.1 on Mac

On my MacBook5,2 (Nvidia 9400m video card) if the drivers are installed in Windows, Windows does not boot. Windows is installed in EFI mode, if that matters.


Solution 1:

I entered the following into the startup.nsh file of the EFI Shell:

mm 0010003E 1 ;PCI :8
mm 02000004 1 ;PCI :7
fs0:\EFI\Microsoft\Boot\bootmgfw.efi

Now if there only was a way to set those registers in an EFI variable…

Technical info: While Windows 8 no longer expects an EFI system to have VGA-compatible video, Nvidia drivers apparently still do and crash if they don’t detect it. The above commands are supposed to enable the VGA support in the graphics card.

Solution 2:

First of all, @kinokijuf worked perfectly, but it was painful for me to understand what's going on under the hood.

First, this solution worked for me on a Windows 10 with Macbook 5,2 (White/2009)

If you are not used about what is an EFI, I will try my explanation: It's a new way to boot systems, you have a partition on disk for that and a bunch of small EFI programs. This partition usually exists on a Mac/Windows (if installed using EFI option), and you don't see it, unless you mount it.

For mounting on mac:

diskutil list
sudo mkdir /Volumes/efi
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
  • where /dev/disk0s1 is your EFI partition that was listed on first command.

Source:http://themacadmin.com/mounting-the-efi-boot-partition-on-mac-os-x/

For mounting on Windows, Open prompt with administration privilegies and:

mountvol S: /S

OK and why do I need to know that?

You need to boot your windows but prior to that you need to run this damn commands before, so my recommendation is to first of all INSTALL a better bootloader. I recommend rEFInd, it helped me a lot, and I always use it.

Website: http://www.rodsbooks.com/refind/ Download page: http://www.rodsbooks.com/refind/getting.html Install on Windows or Mac page: http://www.rodsbooks.com/refind/installing.html#windows

Have you done that?

If yes, you currently know that exists an EFI partition and you have already copied all refind files to that place. You can boot and you will see refind taking place of the boot loading process.

You know too that during the process you copied a file called refind.conf, right?

On this file you can configure a "Special Manual Windows Entry", mine is like this:

menuentry "Windows via shell script" {
    icon \EFI\refind\icons\os_win.png
    loader \EFI\tools\Shell_Full.efi
    options "fs0:\EFI\tools\startup.nsh"
}

If you check you will find out that there's one very similar to this on the conf file actually.

This entry will show up, but for it to work you need another step! I have created on my EFI partition (inside EFI folder) a folder called tools, and inside it I copied a EFI program that I have download from Intel, usually called EFI Shell 2, the file name is Shell_Full.efi.

Here's the source: https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi

I will not lie, I don't know exactly what this does, but is a program, you put on the tools folder and YOU WILL PASS A SHELL SCRIPT TO BE RUNNED AS A PARAMETER TO THIS PROGRAM.

So, as you can see on this part of my refind.conf entry, here's the parameter:

options "fs0:\EFI\tools\startup.nsh"

You should CREATE this file that was passed as a parameter too, and there you will put that damn commands that solve yout life. Mine (startup.nsh) as follows:

mm 0010003E 1 ;PCI :8
mm 02000004 1 ;PCI :7
fs0:\EFI\Microsoft\Boot\bootmgfw.efi

So that's it, here I am writing from my Windows 10 with this damn Nvidia Driver 341.74 that took me 2 entire days rebooting, repairing, reinstalling, updating, until I finally found the complete solution.

So if you get this repair / restart / loop installing Windows 10 on EFI, this is the way to go. I expect in future to find a way with less intermediate programs to boot my macbook.

Solution 3:

For those of you that are having trouble on older Macs, try to change startup.nsh values to:

mm 0010003E 1 ;PCI :8
mm 03000004 1 ;PCI :7
fs0:\EFI\Microsoft\Boot\bootmgfw.efi