Taken from 2011 Macbook Pro Graphics Card FIX 100% WORKING!!!
EDIT This method works! But there is an improved version for better thermal management and brightness keys functionality. See improved version -> https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0
if you are on high sierra 10.13.6+ you might need to use
Command + r
instead
Boot up holding down Command + r + s
SIP locks System folder so cannot move kexts to another folder. SIP (csrutil) only enabled or disabled on Recovery Mode.
csrutil disable
reboot
boot up holding down the CMD and S keys
use /sbin/fsck if you get fsck command not found
fsck -fy
use /sbin/mount if you get mount command not found
mount -uw /
sudo mkdir /AMD_Kexts/
sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/
sudo rm -rf /System/Library/Caches/com.apple.kext.caches/
sudo mkdir /System/Library/Caches/com.apple.kext.caches/
sudo touch /System/Library/Extensions/
Unmount a partition to guarantee that your changes are flushed to it. Use /sbin/umount if you get umount command not found. It might say resource busy, ignore that and proceed to next step)
sudo umount /
sudo reboot
Before enabling SIP again, try the normal boot without pressing any key. The Mac OS will rebuild the kernel cache and restart. See if the system starts normally. If it does, still keep going through the remaining steps.
You might encounter that you are still using discrete GPU but computer works (if you are using gfx it might say can't change to discrete while external display is connected), keep going until last step and this will be resolved
if you are on high sierra 10.13.6+ you might need to use
Command + r
instead
Command + r + s
csrutil enable
reboot
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
sudo shutdown -r now
You might need to do this again after macOS system updates Brightness keys might not work use app like brightness-slider to handle that
Hello there! I had the exact same problem and my solution would be to restart the whole procedure here's what i do.
Start by resetting all hardware settings i.e your speakers, brightness, audio, everything. press
leftshift+control_(NOT COMMAND)_option+power
release at the same time. than press
Cmd+Option+p+r wait for two chimes.
Now everything is reset (Dont worry you wont lose any files)
Now force shutdown by holding power and restart into single user mode (Cmd+s)*
Now mount root portion writable.
Mount -uw / (or /sbin/mount -uw /)
Than type the long.
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
After this to be safe temporarily disable Verbose boot
nvram boot-args=""
^^really important step.
Now type reboot and when you see the white screen hold command+r
You might have to hold it for 5+ minutes it depends how badly your GPU is damaged.
So after you get into recover mode your going to have to select language and than procede. At the top you will see a tab called _Utilities._from that click terminal
into terminal type the following
csrutil disable
Than once more disable dGPU on boot
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Into terminal type.
reboot
That restarts your whole computer.
On startup as soon as you see a white screen hold (Command+S)
You should see white text on black screen.
Now mount the root portion writable.
Mount -uw / or (/sbin/mount -uw /)
And make a kext-backup directory.
mkdir -p /System/Library/Extensions-off
Next we are going to move only One offending kext out of the way.
mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions/
Force the system to update its kextcache
Touch /System/Library/Extensions/
Wait for the kext cache to update.
For the final time type
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Enable verbose boot mode
nvram boot-args="-v"
Simply type reboot
And wait for it to start up. Brightness keys should be working!
HOW TO PREVENT FOR THE FUTURE
Press
Cmd + spacebar
type terminal
in terminal.
sudo nano /iGPU-boot.sh
DONT FREAK OUT if you see a black box around it ITS TOTALLY NORMAL it should look like the picture attatched below
In your terminal you want to type
#/bin/sh
sudo nvram boot-args="-v"
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
exit 0
sudo chmod a+x /iGPU-boot.sh
Or copy this picture
(The name is blacked out for privacy reasons)
Now any time you have any problem with booting up simply reboot into single user mode type
mount -uw / or /sbin/mount -uw /
sh /iGPU-boot.sh