Configuring MacBook Pro 2011 to disable AMD dGPU

Last couple days I had begun to resuscitate my 2011 MBP for taking tests. It took some trial and error but I managed to get macOS High Sierra and Linux running in each partition.

What about Mojave?

macOS HS is the last Apple supported operating system for the MBP 2011. Mojave is not supported by Apple but there are other people/projects supporting the MBP until Monterey.

Please note that the above two requires you to disable the builtin System Integrity Protection (SIP) mechanism which opens your mac up miscreants should they get access. SIP is meant to prevent malware/hackers from accessing the sensitive parts of macOS.

The hardest part was to configure the SSD into two partitions where one for macOS HS and the other for Linux, because there’s something wonky about the Disk Utility on macOS HS. Deleted all partitions on a 500GB SSD and added one partition, the SSD automagically became 1000GB. I believe this is just a glitch on Disk Utility. To make the SSD display the correct storage size, reboot the machine after deleting all partitions. Disk Utility will show the right SSD size upon reboot.

What about the dead AMD dGPU, you might ask?

It appears the macOS HS installation files do not trigger the dGPU. So all you need is to download the ISO from Apple’s website and get into command line to write the installation files to a 16gig USB stick. Then reboot the machine while holding down on the Option button (on the keyboard) in order to select to boot from the USB stick.

Once you’ve booted into macOS HS’s installation environment, use Disk Utility to partition the SSD storage. Make sure you select HFS instead of APFS, for less trouble. So two partitions of HFS, one for macOS HS and the other for Linux.

If you’ve inadvertently selected APFS, it means macOS HS will create a APFS container where the macOS HS will be installed to. It is also likely that the remainder of the SSD storage will also be created as another APFS container. So, please stick with HFS for both OSes and resize the SSD storage if you need to for Linux. (You will need to delete the HFS partition when installing Linux later and let Linux configure the volume.)

Upon completing installing macOS High Sierra, the mac will reboot. As the mac reboots, you need to get into single user mode using Cmd+s to disable the discrete AMD GPU. So

  • Hold on to Cmd+s to get into single user mode when rebooting
  • You will get into the command line. Type
  • /sbin/mount -uw / Note there are spaces between “mount” and “-uw” and between “-uw” and “/” then hit Enter.
  • Next, to disable the discrete AMD GPU
  • nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-pref=%01%00%00%00 There is a space between “nvram” and “fa4…”
  • Next you need to disable the SIP (mentioned above) via
  • csrutil disable
  • Then
  • reboot

The mac will then reboot and you will be able to see the boot up screen of macOS HS.

Last step is to manage the power settings of the disabled AMD discrete GPU. Currently, the AMD discrete GPU will be disabled but it is still taking in power. So the idea is to move the AMD kext away from the default startup location to another location, and trigger it after logging in.

At this stage you should already be at macOS HS desktop. So:

  • Go to Applications/Utilities/ folder to trigger Terminal
  • Create a folder at the following location
  • mkdir -p /System/Library/Extensions-off
  • Copy the kext directory to this newly created folder
  • mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/
  • Now to tell Apple to reconstruct the kext cache
  • touch /System/Library/Extensions/

Now we need to load the AMD kext after every login or else the fans on the mac will spin at high speeds as the GPU gets hot.

Upon every login, you need run this from Terminal (Applications/Utilities/)

sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

Okay you are done.

To make the mac execute the above kextload automatically,

… To be continued

Leave a Reply

Your email address will not be published. Required fields are marked *