So you, like many others, have a 2011 MacBook Pro with video issues. This is normally lines on screen, stripes on screen, sometimes even black screen or blank screen.
We have bad news and good news.
The bad news, your GPU is failing. There is a widely known defect in the Radeon GPUs on these MacBook Pro models. You are not going to be able to fix the GPU. You can extend its life for a few weeks with a reflow, or attempt to replace the GPU. Replacing the GPU is very dangerous (brick warning), and you are just putting another defective unit on your board. The final option is to replace the logic board. This is insanely expensive, and again, just putting defective parts into service.
Onto the good news. With the removal of an EFI variable and 1 resistor, the GPU will be completely disabled, and you will never have to worry about it again.
But wait, why would you disable your GPU, you need that thing right?
The 2011 MacBook Pro actually has 2 very capable GPUs inside. 1 is the AMD Radeon, and the other is an Intel GPU. If you know anything about Intel GPU (and CPU), you know they are extremely reliable. So utilizing the Intel GPU means your GPU is going to live longer than you will.
A few other fun facts about this modification:
Cooling- Your MacBook Pro will run cooler. The Radeon normally pumps out a ton of waste heat. Now your Radeon is not powered on. No waste heat.
Even better, now you have 2 fans and 2 heatsink pipes dedicated to cooling the Intel GPU/CPU only.
Less fan noise – Since you now have 2 passive cooling systems working on one chip, your fans will run less, and quieter.
Linux Support – Getting Linux running on this MacBook Pro is a nightmare. Normally involves complicated boot arguments to bypass the AMD Radeon GPU. Guess what, now that it is not there anymore, Ubuntu Linux (and others) boot up natively with no modifications what so ever.
Battery Life – Now that you don’t have several watts of power turning into waste heat, you now have improved battery life.
No need to modify KEXTs – KEXTs or Kernel Extensions are the Drivers of the OS X world. As far as the OS knows, the AMD chip is not even there. It will not attempt to load the KEXT for it. Why would it, right?
OK, lets get into this MacBook Pro GPU Modification.
::We have prepared a vastly simplified automated utility to perform this modification. It is a fully bootable disk image that includes a script that will run all the terminal steps with one simple command. It also includes a GUI (point and click) program to create the bootable USB Drive::
If you prefer to perform this manually, see the steps below.
The first thing you will need to do is make a small modification to the EFI.
The instructions below use Arch Linux and a strict Terminal environment.
::Note from the developer: There is a known issue with performing this Mod on High Sierra. Apple changed the way the backlight is controlled on High Sierra, and upon waking from sleep the backlight will not turn on. After much research and logic board probing the issue has been identified as a Pulse Width Modulated signal to the backlight controller not being started. An additional Hardware Mod is required for High Sierra. This mod is explained in the steps below. ::
You can permanently disable discrete graphics card following next steps:
1. Prepare a Bootable USB pendrive with a non GUI Linux
1.1 Download ArchLinux ISO
- You need a working computer for that and a spare CD/DVD/USB drive.
- Download the latest Arch Linux ISO image.
- Then you could either simply burn this ISO to CD/DVD (which later could be either inserted to MBP’s SuperDrive or External DVD Drive connected to MBP by two USB cables) or create a bootable USB.
1.2 Creating the bootable USB with the .iso
- First, you need to identify the USB device.
- Open /Applications/Utilities/Terminal in MacOS and list all storage devices:
diskutil listYour USB device will appear as something like
/dev/disk2 (external, physical). Verify that this is the device you want to erase by checking its name and size and then use its identifier for the commands below instead of
- A USB device is normally auto-mounted in macOS, and you have to unmount (not eject) it before block-writing to it with dd:
diskutil unmountDisk /dev/diskX
- Now copy the ISO image file to the device. The dd command is similar to its Linux counterpart, but notice the ‘r’ before ‘disk’ for raw mode which makes the transfer much faster:
sudo dd if=path/to/arch.iso of=/dev/rdiskX bs=1mAfter completion, macOS may complain that “The disk you inserted was not readable by this computer”. Select ‘Ignore’. The USB device will be bootable.
2. Use Linux to change EFI vars
2.1 Boot to it
- Insert this CD/DVD/USB to Macbook Pro, hold Option key (alt) while booting.
- Choose “EFI boot” (that is your bootable installation media).
- When the menu shows, press “e” key to edit the GRUB options of the Arch Linux archiso x86_64 UEFI CD menu entry while it is selected at the main screen, add
nomodesetto the end of this line and press Enter.
- If everything is done correctly, you will find yourself at the Linux console! (It takes some time so be patient and wait for the prompt)
2.2 Clear existing EFI vars
Looks like efivarfs filesystem is mounted by default! So you can already
cd /sys/firmware/efi/efivars and
ls to explore this directory and see if there is a
gpu-power-prefs-... variable (where … is UUID of this variable).
- If there is such a variable, its better to remove it with rm.
- If you are getting the “operation not permitted” message while attempting to
rm, it means that efivarfs has been mounted as read-only and you need to remount it with read-write permissions and try again:
mount -t efivarfs rw /sys/firmware/efi/efivars/
- If this also fails (you still can’t erase the file), use
chattrcommand to disable file immutability and then erase the file:
chattr -i "gpu-power-prefs-…”
2.3 Create a new gpu-power-prefs-… file
`printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9`
2.4 Add immutability to the gpu-power-prefs-… file
chattr command is supposed to lock a file to make it accessible only by “superuser” – and so that, while booting, your EFI will have no chance to screw up your gpu-power-prefs-… variable under any circumstances
`chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"`
2.5 Unmount efivars and reboot
Change to the root directory to unmount efivars:
cd / umount /sys/firmware/efi/efivars/
Guarantees that your EFI variables are flushed to efivarfs filesystem. Please unmount it safely before rebooting.
On this reboot it is essential that you boot once into safe mode (hold Shift throughout boot), and then choose shutdown(not restart) from the menu.
Do this safe boot with the R8911 resistor in place. Without this SAFE BOOT, the next steps may not work.
Do no more boots until you complete the next steps.
The safe boot clears OS level GPU preferences, that may interfere with the following process.
This will now cause your MacBook Pro to stop switching to the Radeon automatically, but it will still draw power, create heat, and be visible to the OS.
We discovered that simply removing 1 resistor will resolve this.
The resistor can also be replaced with a switch, in case you need to turn your radeon back on for any reason.
The placement of this resistor varies between logic board models.
The resistor in question is R8911 on the 17″ MBP and R8911 on the 15″ MBP
a 1 Ohm resistor that provides a current path to the ISL6263C DC to DC Converter.
This resistor controls power to the Voltage Regulator that provides the Core Voltage to the Radeon GPU. Simply put, no core voltage, no GPU.
You will find the resistor just to the right of a cooling fan (in the above orientation). It will be near the ISL Voltage converter chip. This is the chip we will be disabling. (see image for your model)
Just remove it. The preferred method is a professional reflow station, but an iron and a steady hand will get you where you need to be. If you used flux to remove it (not needed), make sure you clean up with a little Alcohol or other suitable solvent.
That is basically it. Next time you boot up you will notice your GPU defect issue is gone, and you will no longer see the AMD GPU as installed hardware.
A small warning: It has been tested that this mod will survive a SMC reset as well as Battery Removal. It is not yet known if it will survive a NVRAM reset. For this (and other security related) reasons, it is recommended that you set an EFI Password. This will make it impossible to accidentally reset your NVRAM. Just don’t ever forget this password. Seriously, don’t. Ever.
In the event that a NVRAM reset removes the EFI mod, replacing R8911, or even bridging the pads for R8911 will restore functionality so you can reapply the EFI mod. Really though, lets just stay away from the NVRAM resets. They rarely fix anything that couldn’t be fixed otherwise anymore.
ADDITIONAL STEP FOR HIGH SIERRA
High Sierra requires an additional hardware mod. This jumper wire is different between 15″ and 17″, both are shown below. Without this mod, your screen WILL NOT turn on after going to sleep. On the 15″ we just need to put a small jumper wire (enamel wire) between PIN 2 of R9704 and PIN 1 of C9711. Logic board does not need to be removed for this step. Only bottom cover removed.
Possibly easier Jump for the 15″. Chose one jumper method, do not install both.
On the 17″ we will jump between a test point and R9202.
If you find yourself uncomfortable doing this mod, please contact us and we will be happy to perform this modification for you. Our current rate is $85 (excluding return shipping). Turn around time depends on shipping speeds, but modification will be performed within 48 hours of receiving your MacBook Pro.