In late 2011 I had purchased a 15″ MacBook pro and in mid 2016 the GPU started failing until it was unusable. Apple had a replacement program of the logic board and GPU and had it replaced. Yet these started failing recently (less than 2 years after replacement). The symptoms are random restarts, green lines on display, distorted screen. This time there is no program that will replace it free of charge, and was not willing to spend anymore on this laptop. There are a number of solutions and this blog documents the one that worked for me, mostly from this article.
- Format and clean installation of Mac OS
- Restart/Power-On
- Press and hold Command + R until logo appears.
- Select Reinstall MacOS and follow installation steps.
- Boot to ArchLinux
- Download ArchLinux
- Create a Bootable USB, I used Rufus on Windows.
- Reboot with USB drive inserted and press Option
- Select EFI
- Press e when GRUB boot loader is displayed
- Type space then nomodeset at end of option then press enter
- Update EFI variables
- EFI Variables should be loaded already, if not:
- cd /
- umount /sys/firmware/efi/efivars/
- mount -t efivarfs rw /sys/firmware/efi/efivars/
- Remove immutability of GPU Power Preferences variable
- chattr -i “/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9”
- Delete GPU Power Preferences variable
- rm /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
- Create new GPU Power Preferences variable
- printf “\x07\x00\x00\x00\x01\x00\x00\x00” > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
- Add immutability to GPU Power Preferences variable
- chattr +i “/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9”
- Save and reboot in Safe Mode
- cd /
- umount /sys/firmware/efi/efivars/
- reboot
- Press Shift during startup until logo appears.
- Remove AMD Drivers
- Login and turn FileVault Off from the Security & Privacy System Preferences.
- Reboot the system and press Command + R to boot to Recovery mode.
- Launch Terminal from the main menu
- Find UUID of your Machintosh HD drive
- diskutil cs list (find UUID for drive)
- diskutil coreStorage unlockVolume UUID
- Move the AMD drivers
- cd /Volumes/Macintosh\ HD
- mkdir AMD_Kexts
- mv System/Library/Extensions/AMD*.* AMD_Kexts/
- reboot
- Install steveschow branch of gfxCardStatus
- If you had FileVault on, remember to activate again.
At this point, the MBP will always use the integrated graphics card, yet the dedicated/discrete graphics card would still be drawing power. You can take this a step further by removing 1 resistor and the card would have no power. I did not do this mod but here is the article. It is possible that the steps need to be repeated upon an OS upgrade/reinstall. I am hoping to be able to use this laptop for a few more years like this. The compromise is that now I cannot use the external display, other than that I am unaffected (not a gamer) since an integrated graphic card can cope with my development requirements.
Update
Apple stopped supporting this laptop and could not update the OS anymore. Installed Ubuntu yet the graphics card kept causing issues. Removed the transistor and worked perfectly. So currently the dedicated graphics card is not being powered and the integrated card is being utilised.