Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Macbook Pro 2011 - Disable Discrete Graphics

This solution requires installing linux. If you don't want to install linux see this gist: https://gist.github.com/blackgate/17ac402e35d2f7e0f1c9708db3dc7a44

Disable SIP

If you can boot into recovery mode (Command + r), open the Terminal and enter:

csrutil disable

If you can’t, create a USB stick with rEFInd as described here: http://www.rodsbooks.com/refind/sip.html#disable_in_refind

Boot into single user mode (Command + s) and change the gpu-power-prefs nvram variable:

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
reboot

Install ubuntu alongside with macos following the steps in the description of this video: https://www.youtube.com/watch?v=ELUzf0MDQS0

After following those steps, when grub appears press 'c' and execute:

ls -l

Annotate the uuid for the macos partition

Press ESC and boot ubuntu

Open the terminal and edit the custom grub entries

sudo nano /etc/grub.d/40_custom

Add the following entry to the end, replacing the <ANNOTATED UUID> with yours

menuentry "macOS" {
    insmod hfsplus
    outb 0x728 1
    outb 0x710 2
    outb 0x740 2
    outb 0x750 0
    search --no-floppy --fs-uuid --set=root <ANNOTATED UUID>
    chainloader /System/Library/CoreServices/boot.efi
}

Save the file, update grub and reboot

sudo update-grub
reboot

You should now be able to boot macos with AMD graphics disabled.

When you update macOS and you are not booting into grub anymore, you can use the rEFInd usb stick created earlier to boot into grub, and start macOS from there. Then on macos Terminal execute:

cd /Volumes
sudo mkdir efi
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
sudo bless --folder=/Volumes/efi --file=/Volumes/efi/EFI/ubuntu/grubx64.efi --setBoot
sudo bless --mount=/Volumes/efi --file=/Volumes/efi/EFI/ubuntu/grubx64.efi --setBoot

And it should be working again.

@herivorenz

This comment has been minimized.

Copy link

commented Nov 27, 2017

Hi there. This is great but I am having trouble getting it to boot in OS. I know my UUID but can you clarify how the uuid should appear in the code.
menuentry "macOS" {
insmod hfsplus
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
search --no-floppy --fs-uuid --set=root=UUID=xxxxxxxx (with or without UUID and = ??)
chainloader /System/Library/CoreServices/boot.efi
}
BTW, you have a typo (d) in this part - sudo nano /etc/grud.d/40_custom

@blackgate

This comment has been minimized.

Copy link
Owner Author

commented Nov 27, 2017

@herivorenz It should have the following format:

menuentry "macOS" {
    insmod hfsplus
    outb 0x728 1
    outb 0x710 2
    outb 0x740 2
    outb 0x750 0
    search --no-floppy --fs-uuid --set=root 624b2137ff45a052
    chainloader /System/Library/CoreServices/boot.efi
}

If you only have one macOS partition, you can use this menuentry directly:

menuentry "macOS" {
   insmod hfsplus
   outb 0x728 1
   outb 0x710 2
   outb 0x740 2
   outb 0x750 0
   search --set=root --file /System/Library/CoreServices/boot.efi
   chainloader /System/Library/CoreServices/boot.efi
}
@herivorenz

This comment has been minimized.

Copy link

commented Nov 28, 2017

Excellent. Thanks for that. Have it working (I think). I just have one question. On boot up without the flash drive, I get a grey screen for 30 seconds before the grub appears. Hitting Enter successfully launches OS. Just wondering if the delay is normal. Also, ran an OS update (El Capitan) and this did not break the code. Great work! You're a champ!

@blackgate

This comment has been minimized.

Copy link
Owner Author

commented Nov 28, 2017

@herivorenz The delay is a common GRUB issue when used with more than one SSD/HDD.

@herivorenz

This comment has been minimized.

Copy link

commented Nov 29, 2017

Ok thanks. Just have the one HDD so guess it is just a glitch. Thanks for your input and expertise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.