There seems to be too many alternative ways of trying to fix this...I believe there are many of us "inexperienced" MBP 2011 users who would really appreciate if someone could write the list of the whole procedure from A to Y that includes everything that needs to be done. At this moment, at least for me, there are too many guidelines to follow....
There is not *one* guide to write up. Many roads lead to Rome. The best option would be if AppleMacFinder would update the first post of this thread pointing to the best alternatives.
Anyway. Even if this post now will quickly drown in the sheer length of this thread, I think this is currently one of the better guides:
#####__ The Guide __#####
This guide assumes that you run a stock system. Problem just occured. That means:
This guide assumes that all kexts are still in their default location
/System/Library/Extensions.
Having all AMD-kexts there except one is beneficial for 'proper' operation.
To get some display acceleration back it will be necessary to force the machine to not boot into discrete graphics (dGPU) but directly into integrated graphics (iGPU). This will give you back your laptop – but you will lose some features: e.g. the ability to drive an external display. Thunderbolt data connections should work.
The initial procedure:
– To start from a clean slate: reset SMC and PRAM/NVRAM:
shutdown, unplug everything except power, now hold
<leftShift>+<Ctrl>+<Opt>+<Power>
release at the same time;
– Now power on again and hold
<Cmd>+<Opt>+<p>+<r>
at the same time until you hear the startup chime two times.
– Boot into Recovery by holding
<Cmd>+<r>+<s>
– Disable SIP:
csrutil disable
– disable dGPU on boot
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
– enable verbose boot mode:
nvram boot-args="-v"
– reboot into single user-mode by holding
<Cmd>+<s>
on boot
– mount root partition writeable
/sbin/mount -uw /
– make a kext-backup directory
mkdir -p /System/Library/Extensions-off
– only move ONE offending kext out of the way:
mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/
– let the system update its kextcache:
touch /System/Library/Extensions/
– wait for the kextcache process to finish
then
reboot
Reboot normally:
you will have an accelerated iGPU display.
But the system doesn't know how to power-management the failed AMD-chip.
For that you have to either manaully load the kext after boot by:
sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
Automate this with the following LoginHook:
sudo mkdir -p /Library/LoginHook
sudo nano /Library/LoginHook/LoadX3000.sh
with the following content:
#!/bin/bash
kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
exit 0
then make it executable and active:
sudo chmod a+x /Library/LoginHook/LoadX3000.sh
sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh
Preventive measures for future use
There are two further caveats to know: This is reversible when the SMC/PRAM/NVRAM is reset. If that happens the GPU-power-pref nvram can/has to be set again to force the use of the iGPU from boot-time.
Since this can happen quite easily (and is often erroneously recommended way too many times than it is actually useful), you should probably prepare for such a scenario and create a simple script to greatly speed up the process and also make entering the necessary variable much less error prone:
sudo nano /force-iGPU-boot.sh
– Enter the following content to this file:
#/bin/sh
sudo nvram boot-args="-v"
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
exit 0
– Now make that executable:
sudo chmod a+x /force-iGPU-boot.sh
In the future, when the SMC/PRAM/NVRAM gets reset to default values it is now possible to boot into SingleUser with:
<Cmd>+<s>
– And after mounting your boot-volume read-write to execute just:
sh /force-iGPU-boot.sh
This setup has now one kext in a place Apple's installers do not expect. That is why in this guide SIP has not been reenabled. If an update that contains changes to the AMD drivers is about to take place it is advisable to move back the AMDRadeonX3000.kext to its default location before the update process. Otherwise the updater writes at least another kext of a different version to its default location or at worst you end up with an undefined state of partially non-matching drivers.
After any system update the folder
/System/Library/Extensions has to be checked for the offending kext. Its presence there will lead to e.g. a boot hang on Yosemite and Sierra, an overheating boot-loop in High Sierra.
Further: this laptop is overheating, no matter what you do. The cooling system is inadequate and the huge number of failing AMD chips are just proof of that.
To prolong the life of this now hacked machine it is advisable to abstain from really heavy lifting over prolonged stretches of time. Strictly follow the usual recommendations for laptops: use on hard surfaces, keep the fans and fins inside it clean. Using any fancontrol software with relatively aggressive settings should also help: like
smcFanControl, MacsFanControl, or TGPro (the latter both commercial).
This is fairly complete and what I do recommend to everyone asking me.
Nevertheless. We're not done here, yet. Improvements are welcome. Share them!