Macbook keeps rebooting on startup?
Learn how to disable discrete GPU on Macbook Pro 2011 running macOS Sierra
If your Apple’s Macbook Pro showing glitchy logo and keep restarting after grey screen, it means that one of your additional graphics card went bad.
Issue
I bought this Macbook Pro (Early 2011) in 2012. I was in love with my Macbook until last year June 2018, I accidentally turn on the WebGL on Chrome browser and my Macbook crashed and stuck on a glitchy Apple loading screen and kept rebooting. I got to know that my additional AMD Radeon graphics card went bad. It's common with 2011 MacBooks and its a manufacturing fault.
Apple way of fixing it is to take out the logic board and heat it in a gas oven for 7 minutes which will fix the card but this issue can come back after 6 days, 6 weeks, 6 months or 6 years.
Yesterday, after a year, I found out this great solution which is to disable the additional graphics card completely by coding which seems scary and risky but what you have to loose on already dead MacBook.
This whole solution worked for me and my Macbook is now working fine so I thought why don’t I make a blog post to keep the process saved for myself and help others who are facing this problem on their Macbook Pro 2011.
Please note, you will need to redo this every time you update your OS.
1. Reset SMC
Shutdown, unplug everything except power and hold
Shift(left) + Ctrl + Option + Power
What the SMC does? Read here
2. Reset NVRAM: Power up and hold
Until you hear the startup chime two times.
Command + Option + P + R
What does the NVRAM reset do? Read here
3. Now shutdown the computer
4. Power up and boot into Single User Recovery by holding
If you are on high sierra 10.13.6+ you might need to use Command + r
instead
Command + R + S
5. Disable SIP by typing
This takes a bit to complete so wait for it and you will need to enable it after completing all the steps below.
csrutil disable
6. Disable Discrete GPU on boot by typing this code
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
7. Enable verbose boot mode by typing
This will show text instead of Apple logo, every time you boot up, shut down or restart your Mac. You will need to turn it off once all steps are complete.
nvram boot-args="-v"
8. Reboot by typing
reboot
9. Boot into Single User-mode by holding
Command + s
It might look as if it hanged, but press enter and you should see the shell (root#)
10. Mount root partition writeable by typing
/sbin/mount -uw /
11. Make a kext-backup directory by typing
mkdir -p /System/Library/Extensions-off
12. Move all offending kext of AMD Radeon out of the way by typing
This command is for AMD. If you have NVIDIA, change accordingly
mv System/Library/Extensions/AMD*.* /System/Library/Extensions-off/
13. Inform the system to update its kextcache by typing
touch /System/Library/Extensions/
14. Reboot by typing
reboot
15. Power up and boot into Single User Recovery by holding
if you are on high sierra 10.13.6+ you might need to use Command + r
instead
Command + r + s
16. Disable verbose boot mode by typing
This will hide text on boot and return to show Apple logo and loading on boot
nvram boot-args=""
17. Enable SIP back by typing
csrutil enable
18. Reboot by typing
reboot
Everything should get back to normal now! if not, then there is some other issue as well.
Problem fixed
After each OS update, you will need to repeat this process to disable discrete GPU because it will revert and come back again with every OS update.
Credit goes to following links for the help:
https://www.youtube.com/watch?v=iLft4N54zvU
https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0
https://apple.stackexchange.com/a/285896