MacBook Pro GPU AMD failure

From Cheeky Factor

Status: Resolved
Publication date: 2018-05-20
Last edited by: Garyf
Last updated: 2023 - 11 - 3

The problem

A friend has an issue with an issue where his MacBook Pro late 2011 was not booting. Looking at the issue and finding information online, it turns out the AMD card seems to fail on MacBook Pros.

The resolution

Please note: cheekyfactor.com or the owners of this site cannot be held responsible if things go wrong. You perform these tasks at your own risk.


Device: MacBook Pro
Operating system: MacOS
Software: Single user mode

Guidance for MacBook Pro, MacOS, Single user mode

Boot up in single user mode by holding down Cmd S when you turn on your Mac, enter the following:

nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

Turn on Verbose mode as default:

nvram boot-args=”-v”

and type in:

reboot

The machine should now boot normally.



Device: MacBook Pro
Operating system: MacOS
Software: ArchLinux

Guidance for MacBook Pro, MacOS, ArchLinux

Well first of all I had a USB stick with a non-GUI version of Linux, I used ArchLinux. I won’t go into the details here, but I did have issues copying the ISO of ArchLinux onto a USB stick using my own Mac. You can see how I did this here.

Stick the USB disk in with ArchLinux on into the MacBook pro.

Power on the machine, ideally it needs to have the power cable attached to the machine. As soon as you hit power, press down the alt key at the same time.

You will get an option to either boot from the Macs hard drive, or UEFI. Select UEFI, you will see something like this:

Select the option that you require to start ArchLinux
Select the option that you require to start ArchLinux

Ensure you have the top item selected for ArchLinux and press e. As you can see at the bottom of this image you will see a line, at the end of that line add nomodeset and hit enter.

You will be booted into ArchLinux:

ArchLinux boot showing the terminal commands
ArchLinux boot showing the terminal commands

Change the directory by running the command:

cd /sys/firmware/efi/efivars

You will see something like this:

Run the command

ls

That is an L not an I. Hit enter and you will something like:

This lists the contents of teh efivars directory.
This lists the contents of teh efivars directory.

What we are interest in is those GPU lines in the bottom left hand corner, they may not necessarily be there, you just need to look for something like this. But don’t worry if you can’t see them.

Now we have to unmount the efivars folder

Run:

cd /
umount /sys/firmware/efi/efivars/
mount -t efivarfs rw /sys/firmware/efi/efivars/
cd /sys/firmware/efi/efivars/

Then run:

chattr -i “gpu-power-prefs- then press tab and close it with a “
chmod ugo+w gpu-power-prefs- then press tab
rm gpu-power-prefs- and press tab to get the file

This will look something like this:

Change of gpu power preferences
Change of gpu power preferences

We now need to create a new gpu file that we can mute, run:

printf “\x07\x00\x00\x00\x01\x00\x00\x00” > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9

Now to mute it, the chattr command makes it accessible only to the superuser, so in theory when you boot it won’t mess up, run:

chattr +i “/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9”

Now to flush the efivars cache by running:

cd /
umount /sys/firmware/efi/efivars/

In theory, we can now reboot, type in reboot. Initially I had issues booting, it got stuck and kept restarting. So I booted into recover mode by holding down command and R down on boot.

Once in recovery mode I opened the terminal:

GPU failure Macbook Pro Terminal menu in recovery mode.
GPU failure Macbook Pro Terminal menu in recovery mode.

If you have more than one partition run the following lines, if you only have one partition you can skip this bit:

diskutil cs list (find UUID for drive)
diskutil coreStorage unlockVolume UUID

Now, we all need to do the following, run the command:

cd /Volumes/Macintosh\ HD
GPU AMD failure terminal screen in recovery mode
GPU AMD failure terminal screen in recovery mode

Now, we need to remove the AMD Kexts, first create a directory where we can stick them on the off chance you need them in the future using the line:

mkdir AMD_Kexts

Now, lets move those AMD Kexts:

mv System/Library/Extensions/AMD*.* AMD_Kexts/

then type in reboot:

reboot

In theory, if you have done everything correctly, you should now have a working MacBook Pro.

BUT, please have in mind, this is not a permanent fix. When you upgrade or if you need to reset the SMC or NVRAM you will get the same error and you will need to perform the tasks above again.

I just hope this is a better solution than what was shown in method 1 which kept failing without the SMC or NVRAM being reset.

There is a permanent solution I have found on YouTube, but due to knowing how bad I am at soldering, I think I will pass on that one. But if you want to look at the permanent solution check out this video over on YouTube.

But if you do that, you are on your own.