How I fixed the MacBook of my wife

Michael Falk
Nov 5 · 5 min read

Steps to fix a MacBook Pro 2011 with a broken dedicated GPU

Photo by Artem Sapegin on Unsplash

My wife owns a MacBook Pro from the Late 2011 series. I know you think that sounds pretty old. But wait a minute. With the old MacBook Pro you were still able to upgrade the hardware quite a lot. So this is what I did before…

That’s why the MacBook is still a pretty decent notebook which is probably even better than some newer MacBooks. Almost the same specs¹ would cost at least 2.600€ in the Apple Store right now.

MacBook Pro 2011 with 2,4 GHz Intel Quad-Core i7, 16GB DDR3 RAM
and 500 GB SSD

Unfortunately, the MacBook suddenly didn’t boot anymore. Besides some graphical glitches, the system would just show a white screen after the loading bar finished loading.

Even though I’m not a Mac user, I was eager to fix the notebook. Quick googling gave me the bad news that I got the white screen of death.

Green glitches and white screen after apple logo

¹ except the different i7 generations which makes IMHO not a big difference

First try to fix

I read a lot on Google and followed this guide. For many people, the suggestions of the guide might have worked, but I found myself getting stuck on a white screen over and over again. The suggestions are mostly based on holding a key combination after the startup sound. So this is what I tried.

  • Safe Mode (Shift): White Screen
  • Recovery Mode / Internet Recovery (Cmd + R): I didn’t have a recovery partition and Internet Recovery goes back to White Screen
  • Verbose mode (Cmd + V): No error messages
  • Hardware Diagnostic (D): Completed without errors
  • Single User Mode (Cmd + S): Worked!! I’m root on a terminal =)
  • Booting Live-Linux from USB Stick (Option): White screen

Basically the only thing which worked was the Single User Mode. Not being able to boot in any graphical user interface and further Google searches convinced me that the dedicated GPU was broken. This seems to be a very common issue with the MacBook Pro 2011. Apple even needed to have its own repair program for these video issues.

In order to bring back the system, I needed to use the Single User Mode with root access to permanently switch to the integrated graphics card (Intel Graphics HD 3000).

Unfortunately, macOS protects system files and processes with a feature called System Integrity Protection (SIP). This policy limits what the root account can do and needed to be deactivated to fix the MacBook.

What finally worked for me

This is what I did. If you still have a recovery partition, your case might be easier, but you can follow along if you have the same issues.

Power up and hold Command + Option + P + R until you hear the startup sound twice.

First, you need to download rEFInd. Look for the link A USB flash drive image file. Next, you would use the program Etcher to put rEFInd on your USB stick (on Linux use the tool dd).

rEFInd is a boot manager which supports the deactivation of SIP on MacOS.

Connect the flash drive to your MacBook, press Option and select EFI Boot to boot into rEFInd. In the boot manager, select Change SIP Policy and press Enter. That’s it. SIP should now be deactivated.

Disable SIP Policy in rEFInd

If your recovery partition is still working, you don’t need to use rEFInd. Instead just use the combo Command + R + Sto go to the Single User Recovery Mode and execute csrutil disable.

Reboot and press Command + S on startup to boot into the Single User Mode and execute the following commands.

# deactivate gpu in nvram
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
# reboot first time
reboot

The kernel extension for the GPU needs to be moved so that the MacBook starts with the integrated graphics card. Go back into Single User Mode and execute:

# validate file system
fsck -fy
# gain read write access
mount -uw /
# make new folder
mkdir /System/Library/Extensions-Off
# move only one AMD kext extension
mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-Off/
# inform system to update kextcache
touch /System/Library/Extensions/
# finally reboot
reboot

After this, the graphic glitches and the white screen should disappear and you will be able to boot into macOS again =)

Even though running on the integrated GPU, the dedicated GPU is still powered and suffers from a bad thermal and bad heat management. To fix this the kernel extension AMDRadeonX3000.kext can be loaded after startup again. We will use a login hook for this.

Open the Terminal in macOS and execute

# create folder for login hook
sudo mkdir -p /Library/LoginHook
# create login hook file
sudo nano /Library/LoginHook/LoadX3000.sh

Add following content when nano opens

#!/bin/bash
kextload /System/Library/Extensions-Off/AMDRadeonX3000.kext
exit 0

Use Ctrl + O to save and Ctrl + X to exit.

# Make it executable
sudo chmod a+x /Library/LoginHook/LoadX3000.sh
# Register login hook
sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh

The heat management is now improved and you can now work normally with the MacBook Pro again. Well done!

If you want, you can check temperatures before and after with Macs Fan Control.

Conclusion

To get this working I spent some days because even though I already had a plan what to do, I was still struggling with disabling the SIP Policy. I almost felt like giving up, when I finally found a way to disable it.

Being able to boot normally again gave me a big rewarding feeling. I can also say that I learned a lot about macOS architecture. However, I think on a Windows or Linux notebook this issue would have been easier to solve. I hope this article though is helpful for anyone who is facing the same or similar issues.

macOS High Sierra finally works again

Resources

[1] https://appletoolbox.com/mac-fix-white-screen/

[2] https://apple.stackexchange.com/questions/334610/gpu-defect-macbook-pro-2011-does-not-accept-csrutil-disable-anymore-10-13-6

[3] https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0

Disclaimer: This steps worked for me like I presented. However, you are doing these steps on your own risk. I’m not responsible for any damages to your system.

Michael Falk

Written by

Software Engineer AR/VR @Humatects

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade