Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

2nfinite

macrumors newbie
May 25, 2017
5
1
Easy fix for my mid 2010 MacBook Pro 15!

Sometime in late 2017 or early 2018 it starting having crashes again when starting iPhoto or anything that caused discrete GPU to turn on. Looking at Console/logs I can see the crashes are GPU related. Last time it happened the computer was still under warranty, and AppleCare replaced the mainboard.

Up until this morning, was on High Sierra 10.13.4. Upgraded to 10.13.6 and then did the following:

1) Boot into single user mode (Command + s)

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

3) reboot

Thats it.

My wife has been using this computer for 3 days straight and no crashing. Activity monitor shows the computer is staying in integrated GPU mode. Very happy with the easy fix.
 
Last edited:

rezwits

macrumors 6502a
Jul 10, 2007
833
434
Las Vegas
After 3 years when Apple replace my logic under the replacement program, today it died again and stuck in white screen. After isolating the problem from swapping ram, replacing ram, replacing hdd and running apple hardware test, no luck and no issue found.

So what I did, i move all the amd kexts file out of the extension folder and finally i can boot up with sluggish graphics, made my backup and out of despair I just run this command in the terminal:

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

nvram boot-args="-v"

reboot

and rebooted to integrated graphics only, and now my mac is fine with the integrated graphics on

Check this out! It's probably been said in here too, I think I actually got this link from here: https://www.ifixit.com/Answers/View/198711/MacBook+Pro+2011+GPU+Glitch

The thing here is you can:

Disable SIP, YES!!
Disable ATI chip dGPU!!, even if you did, with the old Kext removal, this disables just like your above post and forces iGPU
Enable the other Kexts, for getting speed with the iGPU, YES!!
Post enable the ATI 3000X kext, for controlling and putting the ATI chip dGPU, to sleep so it doesn't fry.
Works with the last 10.13.6 update, to get your kext re-installed again.

Moral of the story? It doesn't MATTER if Apple discontinued the Repair program, why?

After they get fixed they die again, if you use them... so what's the point? It's like living in Oklahoma in Tornado country.

This is a SETTLE, I know. But at least the 17" will WORK, for the Girlfriend!!

And man the 1920x1200 is big! Been using a 2880, 15" but retina is 1440. compared to 1920.

It's just nice, and you can still run a projector or something, if you use Airplay, to an AppleTV hooked up!! just an aside note, to get two displays!

Laters...
 

P3rson101

macrumors newbie
Jul 23, 2018
1
1
If you don't have time to read my story (which also describes some interesting technical approaches) just scroll down this thread until a "100% WORKING SOLUTION" text

Discrete AMD GPU of my 2011 MacBook Pro 8,2 has finally failed because of the reasons mentioned here ( http://logicboardmac.blogspot.ru/ ) and there ( https://www.macrumors.com/2015/02/19/2011-macbook-pro-repair-program-apple/ ) . It has been working perfectly for 6 years under quite a high load, even tried SETI@HOME mining at background! So I was confident that my MBP is not affected by bad solder / bad soldering quality and didn't want to bring it to Apple for a free repair program - partially because couldn't find the time to pause my important software projects, partially because I was afraid that Apple might give me a less reliable logic board or refuse a free repair because of the several unrelated repairs that I did manually by myself earlier to save money: changed thermal paste a few times, replaced the internal battery 2 times, replaced a keyboard with broken buttons, etc. But it finally broke down last week: laptop's screen image became distorted, it refused to boot OS X (always freezing half-way), and - Apple free repair program has already ended! I know there are affordable solutions like $50 BGA resoldering at unofficial local repair shop and that its possible to get a new replacement HD 6750M chip from AliExpress for $35 or cheaper ( http://www.aliexpress.com/item/DC-2...0028-216-0810028-BGA-Chipset/32764872143.html or https://www.aliexpress.com/item/DC-2015-New-216-0810001-216-0810001-Graphic-Chipset/32718112928.html , because don't know if this is true - https://www.rossmanngroup.com/board...0604-replace-216-0810005-gpu-with-216-0810028 ) to guarantee a successful repair, so the total price of repair would be either $50 or $50+$35=$85 - less than $100 in any case. But I don't like investing money to the old computers, so I have thought - what if there is some hack to force MBP to use integrated graphics ALL THE TIME, even while booting ? And then started to explore the possible solutions...

===

First of all, it is possible to successfully boot a MBP to OS X while still using the failed GPU, after you remove the AMD drivers by booting in command line mode (CMD+S) and entering these commands:
1) fsck -fy (to check a disk)
2) mount -uw / (mount a root filesystem with read/write permissions)
3) sudo mkdir /AMD_Kexts/ (make a directory to store the AMD drivers in case you'll need them in future)
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ (move the AMD drivers)
5) sudo rm -rf /System/Library/Caches/com.apple.kext.caches/ (remove the AMD drivers cache)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/ (just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X)
7) sudo touch /System/Library/Extensions/ (to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt)
8) sudo umount / (umount a partition to guarantee that your changes are flushed to it)
9) sudo reboot

The degree of your inconvenience while doing these steps - strongly depends on how heavily a screen's image is distorted in your case. In my case it was even more difficult because the OS X partition became a "read-only" partition (because of too many emergency shutdowns I did while desperately trying to boot OS X with a failed GPU) so I had to remove a hard drive from MacBook Pro and (using a USB to SATA 2.5" adapter taken from my portable HDD) attached it to a computer with Linux, then followed these instructions:

https://superuser.com/questions/961401/mounting-hfs-partition-on-arch-linux (1st answer) - carefully executed a number of commands, calculated a sizelimit for my parition layout, and finally ran sudo mount -t hfsplus -o force,rw,sizelimit=YOURNUMBER /dev/sdb2 /mnt to mount this HFS+ partition to /mnt directory in read-write mode. Then I performed these "1)-7)" steps you see above, and also repaired a filesystem by running sudo fsck.hfsplus -f /dev/sdb2 before unmounting a partition with sudo umount /mnt and putting a hard drive back to MBP...

===

This gave me a MBP which could boot to OS X although STILL using a broken AMD GPU: so it screen's image is very distorted (could browse the Internet but quite inconvenient to read a text), Launchpad is super laggy, and you can't switch to Integrated GPU using gfxCardStatus because: without AMD drivers (which we had to remove to successfully boot to OS X) Macbook Pro thinks its' internal screen is External Display and gfxCardStatus tells it is impossible to switch because External Display is using AMD GPU. Somewhere I found a suggestion that it is possible to rebuild a gfxCardStatus from the source code - https://github.com/codykrieger/gfxCardStatus - with removed or commented out 156-166 lines in the ./gfxCardStatus/Classes/GSProcess.m to make it to ignore the external display:

// find out if an external monitor is forcing the discrete gpu on
CGDirectDisplayID displays[8];
CGDisplayCount displayCount = 0;
if (CGGetOnlineDisplayList(8, displays, &displayCount) == noErr) {
for (int i = 0; i < displayCount; i++) {
if ( ! CGDisplayIsBuiltin(displays))
[list addObject:[NSDictionary dictionaryWithObjectsAndKeys:
Str(@"External Display"), kTaskItemName,
@"", kTaskItemPID, nil]];
}
}


So I rebuilt a gfxCardStatus using the instructions from the last reply of this issue -
https://github.com/codykrieger/gfxCardStatus/issues/229
(also had to download a MacOSX10.11.sdk from here - https://github.com/phracker/MacOSX-SDKs/releases - unpack and copy it to XCode's /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk - because of the Apple's stupidity the latest XCode for El Capitan does not include SDK for El Capitan!) However, it still didn't work - gfxCardStatus only pretended that it has switched to Integrated GPU, while in reality OS X did not let it switch! Even after I edited ./gfxCardStatus/Classes/GSGPU.m file to enable the mysterious "Nuke it from orbit switching" option, it still couldn't switch...

===

Then I discovered this interesting repository - https://github.com/0xbb/gpu-switch - which is partially similar by its' source code to gfxCardStatus but also has the "Login Hooks" (install_hooks.sh) to "automate the switching process for login/logout". Sadly it didn't work for me... However, there is a very interesting gpu-switch text file right at the root of this repository, which describes the EFI variables!

https://github.com/0xbb/gpu-switch/blob/master/gpu-switch

After studying it and also reading this issue's comments - https://github.com/0xbb/gpu-switch/issues/11 - I became confident to try this solution, but found out that my MacBook Pro 2011 8,2 with OS X El Capitan 10.11.6 is in a VERY problematic situation:

1) rEFInd is not installed, and to install it - must disable SIP protection. But I cannot boot to Recovery mode (Command+Option+R) or to OS X Installation DVD/USB (hold Option), (to disable SIP), because they freeze while booting! - although I removed AMD kexts from my system, of course these recovery tools are using AMD kexts integrated to their design. Also cannot use Rootfool hack ( https://github.com/gdbinit/rootfool ) to disable SIP during runtime, because it works only at OS X version older than 10.11.4

2) Tried overheating my Macbook Pro on purpose (forcing CPU usage to 100% and putting it to a tightly closed bag) to force it to shutdown from overheating and then quickly reboot so that Integrated graphics will be enabled during the boot time - making it possible to boot to Recovery. But because of the wonderful high end thermal paste I have applied not so long ago - cannot overheat it even after waiting for a long time! At this point I thought that could either: a) remove AMD kexts from Installation media, or b) to connect MBP's hard drive to a Linux machine again and run a bunch of chmods to remove the SIP flags from the directories mentioned here ( http://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really ) which could potentially make a system unbootable, or c) to try installing rEFInd to HFS+ partition directly from a Linux machine with root rights because it will bypass SIP --- but have not explored these options, although some of them might have worked...

3) Wanted to boot a Linux LiveCD to edit the EFI variables from there, but no matter what I did: tried booting straight without GRUB option modifications, tried editing GRUB boot options (with "e" key) to add nomodeset / remove quiet splash / or both in every combination , or like suggested in this article ( https://wiki.archlinux.org/index.php/MacBookPro8,1/8,2/8,3_(2011) ) also add i915.modeset=0 radeon.modeset=0 or radeon.modeset=0 i915.modeset=1 i915.lvds_channel_mode=2 ; and then pressed Fn+F10 or Shift+Ctrl+Fn+F10 to boot with these options: but the Linux boot process always failed at different boot stages, no matter what popular user-friendly Linux distribution or what version of it I am trying: tried many releases of Ubuntu / Lubuntu / Fedora , even the old "AMD64 Mac" and "Alternate AMD64 Mac" images, but they always failed - either at the very beginning of boot process (black screen, or a black screen with a blinking or stuck _ character at the left upper corner) or failed at the very end of it - right before it is supposed to show a graphical desktop environment...

Later, totoe_84 wrote that he was able to boot Ubuntu in graphical mode using the following setup for GRUB:
  • To disable the AMD graphics card I added the following lines after set gfxpayload=keep
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
  • Next I added the following after quiet splash
    i915.lvds_channel_mode=2 i915.modeset=1 i915.lvds_use_ssc=0
(based on https://ubuntuforums.org/showthread.php?t=2157775 )

===

Then I remembered that there are not-mainstream Linux distributions for advanced users, which have a LiveCD without any graphical interface: you are dropped to a pure console and you are supposed to install the system along with only those graphical interfaces and software packages / groups of packages which you explicitly select. For example: Arch Linux (https://www.archlinux.org/) and Gentoo Linux (https://gentoo.org/) . Because their LiveCD does not have a graphical interface, they could be booted without a problem to a pure Linux console and there you could edit the EFI variables ! So here is a...

===
=== 100% WORKING SOLUTION
===
=== Force your MBP to ALWAYS use Intel integrated GPU (EFI variable fix)
===
=== to make it great again ! ;)
===


1) Create the Arch Linux LiveCD/LiveUSB :

You need a working computer for that and a spare CD/DVD/USB drive. After downloading archlinux-2017.03.01-dual.iso (see the links below) you have to check the integrity of the .ISO file to see if it is not corrupted (avoid I/O error, printf: not found, chattr: not found, etc). After checking the integrity of archlinux-2017.03.01-dual.iso and everything is OK, then you can generate an ArchLinux boot disk.

archlinux-2017.03.01-dual.iso

MD5:
1d25235e7cebe45f93452fbc05a0fb66 archlinux-2017.03.01-dual.iso

SHA1
f426866ca632a35a3eeae8e4080cff25ec8da614 archlinux-2017.03.01-dual.iso

Official website ArchLinux (only Torrent) - See MD5 and SHA1 hash numbers:

https://www.archlinux.org/releng/releases/2017.03.01/

The MD5 and SHA1 of the official ArchLinux website are the same as the mirrors Virtapi.org and Belnet.be. The archlinux-2017.03.01-dual.iso on Virtapi.org and Belnet.be are legitimate.

Virtapi.org:

http://archive.virtapi.org/iso/2017.03.01/

http://archive.virtapi.org/iso/2017.03.01/archlinux-2017.03.01-dual.iso

http://archive.virtapi.org/iso/2017.03.01/md5sums.txt

http://archive.virtapi.org/iso/2017.03.01/sha1sums.txt

Belnet:

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/archlinux-2017.03.01-dual.iso

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/md5sums.txt

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/sha1sums.txt

Check for archlinux-2017.03.01-dual.iso integrity (Mac OS):

Boot in Safe Mode (press SHIFT key at boot) -> no freeze Mac OS -> El Capitan or Sierra.

HighSierra maybe freeze at boot time (Safe Mode). There were changes in the HighSierra in relation to the AMD kexts loaded during the Safe Mode. More tests are needed.

File downloaded -> /Users/Your_User/Downloads/archlinux-2017.03.01-dual.iso

Finder -> Applications -> Utilities -> Terminal:

MD5:
Code:
cd Downloads/

md5 archlinux-2017.03.01-dual.iso
MD5 (archlinux-2017.03.01-dual.iso) = 1d25235e7cebe45f93452fbc05a0fb66

SHA1:
Code:
cd Downloads/

shasum archlinux-2017.03.01-dual.iso
f426866ca632a35a3eeae8e4080cff25ec8da614  archlinux-2017.03.01-dual.iso

Or try the simplest way - No needed ArchLinux - Only MacOS:

1 - Boot Single User (press Command + S) at boot (If you have MacOS installed on your hard drive).

2 - If you have a blank HD, then use the USB stick/Pendrive with the MacOS installer (El Capitan, Sierra or HighSierra).

2.1 - Press Option key at boot, Position the mouse on the MacOS installer icon.

2.2 - Press Command + S and keep holding these two keys.

2.3 - Click the MacOS installer icon -> continue holding the Command + S keys until you finish the MacOS installer Single User boot .

Enter these commands (change gpu-power-prefs to Intel GPU and boot verbose):

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

nvram boot-args="-v"

reboot

If you've chosen the Arch Linux route, please continue reading:

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: use the great detailed instructions from this page, https://wiki.archlinux.org/index.php/USB_flash_installation_media

2) Boot to it: insert this CD/DVD/USB to Macbook Pro, hold Option key while booting, choose "EFI boot" (that is your bootable installation media), 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 nomodeset to the end of this line and press Enter. If everything is done correctly, you will find yourself at the Linux console!

3) Edit 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. In my case the efivarfs has been mounted by default with read/write permissions, but if you are getting the "operation not permitted" message while attempting to rm, it means that in your case efivarfs has been mounted as read-only and you need to remount it with read-write permissions and try again (credits to totoe_84 for this valuable addition) :
*) cd /
*) umount /sys/firmware/efi/efivars/
*) mount -t efivarfs rw /sys/firmware/efi/efivars/
*) cd /sys/firmware/efi/efivars/

If your screen is so distorted that it is difficult to see the letters, just start typing the rm gpu-power-pre and then press TAB key for autocompletion. In my case there were not such a EFI variable, only "gpu-active-..." and maybe somehow related "gfx-saved-config-restore-status-..." . Then I looked again at that gpu-switch text file (mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch),
and entered THESE COMMANDS:

*) chattr -i "/sys/firmware/efi/efivars/" <----- skip this command

Actually a gpu-switch script had "${sysfs_efi_vars}/${efi_gpu}" but I didnt have a "gpu-power-prefs-..." variable - so, partially by mistake, I didn't add that efi_gpu suffix and entered this incomplete path accidentally

*)
printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9

Did not have a EFI "gpu-power-prefs-" variable so I thought that it will be OK to create a new one with a random UUID - in this case, taken directly from a gpu-switch script

*) chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"

http://www.tecmint.com/chattr-command-examples/ - chattr (Change Attribute) is a command line Linux utility that is used to set/unset certain attributes to a file in Linux system to secure accidental deletion or modification of important files and folders, even though you are logged in as a root user.
...
Syntax of chattr ---> chattr [operator] [flags] [filename]
...
A file is set with ‘i‘ attribute (+i as you see in this command) ---> cannot be modified (immutable). Means no renaming, no symbolic link creation, no execution, no writable, only superuser can unset the attribute.
...
Operator
  1. + : Adds the attribute to the existing attribute of the files.
  2. : Removes the attribute to the existing attribute of the files.
  3. = : Keep the existing attributes that the files have.
This 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

*) cd /

Could not unmount efivars if you are inside this directory, so change to the root directory

*) umount /sys/firmware/efi/efivars/

Guarantees that your EFI variables are flushed to efivarfs filesystem, please unmount it safely before rebooting)

*) reboot

===> IF YOU DID EVERYTHING CORRECTLY, MOST LIKELY THAT YOUR MACBOOK PRO IS NOW USING INTEGRATED GRAPHICS WHILE BOOTING, AFTER BOOTING, AND IS WORKING GREAT AGAIN ! ;)

In the future maybe you could need to re-apply this solution if you would have to reset your PRAM / NVRAM / SMC because of some other problems, so remember this solution somewhere... Funny thing: now you can't switch to Discrete GPU even using gfxCardStatus, it is forever stuck at Integrated

I spent two working days to discover this solution, and really hope that it will work flawlessly for every MBP owner with a broken discrete GPU. Good luck!

=== NEWS ! YOU COULD ALSO FOLLOW THESE GUIDES FOR THE EXTRA IMPROVEMENTS : ===

Follow the MikeyN Guide - page 35 - #875 - to move the AMDRadeonX3000.kext from the /System/Library/Extensions directory and do not freeze Macbook Pro (at 75% progress bar or "IOConsoleUsers: gIOScreenLockState 3" message).

Rename old AMDRadeonX3000.kext and move new AMDRadeonX3000.kext after update - Page 57 - #1425

Shutdown or Restart Macbook Pro - avoid black screen freeze - Update 2 - Page 57 - #1425

Close the Lid - Sleep - Waking - Page 43 #1066 - Page 50 #1243



Hey first off thanks for the tutorial can get it working but weird thing every time I restart computer I have to redo it , is there anyway to get this to stick in there ?
 
  • Like
Reactions: igorung

jklas

macrumors member
Jun 20, 2018
44
12
After 3 years when Apple replace my logic under the replacement program, today it died again and stuck in white screen. After isolating the problem from swapping ram, replacing ram, replacing hdd and running apple hardware test, no luck and no issue found.

So what I did, i move all the amd kexts file out of the extension folder and finally i can boot up with sluggish graphics, made my backup and out of despair I just run this command in the terminal:

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

nvram boot-args="-v"

reboot

and rebooted to integrated graphics only, and now my mac is fine with the integrated graphics on

After the new update my MBP does not work/start anymore. Even with the sh /force-igpu-boot.sh command.
I would like to do this...but at the moment I cannot login into the CMD+R+S-Mode.

It goes instantly in to the Single User mode by pressing this the r+s combination.
It does not allow me to do anything into that mode... .
This is what it shows to me.

Any recommendations?
I just uploaded a picture.
 

Attachments

  • macbook pro rsmode boots into singleusermode.jpeg
    macbook pro rsmode boots into singleusermode.jpeg
    432.9 KB · Views: 331

bermuda

macrumors newbie
Jul 24, 2018
2
0
Hi Guys,

This method worked for me for 7 months. But, today I accidentally updated my Mac to High Sierra and it gets stock on the first page (login). Can I redo the same process on high sierra and make my mac alive again?

Thanks

UPDATE:

I just tried the the single user mode with the provided commands and it worked :) But, now everytime I restart the mac, it goes over all the single user mode and run the black screen commands. How can I make it to skip this part?
 
Last edited:

mightymacman

macrumors member
Jul 26, 2017
39
11
San Luis Obispo, CA
Gently laughing out loud. What is complicated to one person makes sense to another? I am using the 2011•17" MBP that I preformed the procedure outlined above on. It has survived two system upgrades. I'm up to 10.13.6 as I key this in.
Screen Shot 2018-07-24 at 3.55.26 PM.png

This is the gfxCardStatus, v2.1 status screen that I've used for more than 6 months. The results work. Getting to this point should be fairly easy providing you have a way into the HD from the errant MBP. Please contact me.
 
  • Like
Reactions: man1sshhh

luckygolf

macrumors newbie
Jul 24, 2018
1
1
I registered today, just want to thank thread-starter for writing such a wonderful guides that helped saving my 2011 MacBook Pro 15 Inch, works like charm! $1000 bucks saving!
 
  • Like
Reactions: Skaboosh

Skaboosh

macrumors newbie
Jul 24, 2018
2
0
Firstly, I'd like to say a great thank you to the members of this forum who have put together all the information to work around the failed graphics card. Like many others my laptop has been a brick for a few months now, which has been frustrating as I only put a new SSD in it a month before failure.

I followed the following guide, completing Step 10. Which on an Early 2011, 17", running Sierra has worked. To be honest I have no idea what anyone of it means, but following the steps were fairly easy enough. Besides not being able to enter Recover Mode, to access Terminal to disable SIP "csrutil disable", as it keep freezing on the grey screen. Thankfully, it managed to go through via Internet Recovery which allowed me to then access Terminal, disable SIP and proceed from there.

Anyway, besides this being a message of thanks and so far success. I was wondering if someone could please explain or give a bit more of a guide for the layman from Step 11 onward. Say, is this still typed in the Single User screen? or, is it typed in to Terminal once access to the computer has been gained again? or, is it typed elsewhere?

Thank you in advance and I really appreciate the work you guys have done to solve this issue.



I’m happy to say that my MacBook Pro is back up and running thanks to this thread! I used most of the steps in MikeyN’s guide, along with some steps from another guide found on asyncro.com. It took a few tries, but after adjusting a few things for my set up (MBP 15” Early 2011 running Yosemite), everything is working perfectly and I have a fully functioning MacBook Pro (aside, of course, from video out to an external monitor).



Below are the steps I took for Early 2011 15” MacBook Pro running Yosemite 10.10.5:



1. To start from a clean slate: reset SMC and PRAM/NVRAM:


Shutdown, unplug everything except power, now hold:


<leftShift>+<Ctrl>+<Opt>+<Power>


Release at the same time.


2. Now power on again and hold


<Cmd>+<Opt>+<p>+<r>


at the same time until you hear the startup chime two times, then immediately press and hold:


<Cmd>+<r>+<s>


to boot into Recovery Mode. If done correctly, you will boot to a command line (DOS-like) interface.


3. Disable dGPU on boot


type: nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 (press ‘Enter')


4. Enable Verbose Boot Mode and Reboot:


type: nvram boot-args="-v" (press ‘Enter')


type: reboot (press ‘Enter’), then hold:


<Cmd>+<s>


to reboot into single user mode.

Again, you will reboot to a command line interface.

5. Make root partition writeable:

type: /sbin/mount -uw / (press ‘Enter')

6. Make a kext-backup directory:

type: mkdir -p /System/Library/Extensions-off (press ‘Enter')

7. Only move ONE offending kext out of the way:

type: sudo mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/ (press ‘Enter')

8. Let the system update its kextcache:

type: sudo kextcache -v 1 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions/ (press 'Enter’)

This process may take a few moments to complete. Then:

9. Turn off Verbose Boot Mode and Reboot:

type: nvram boot-args="" (press ‘Enter’)

type: sudo reboot (press ‘Enter’)


You should now be able to boot to the login screen and/or desktop. In my case, I needed to QUICKLY DO THE FOLLOWING STEP to keep my Mac from shutting down:


10. Manually load the dGPU kext (this needs to be done for power management. You are NOT re-enabling the faulty dGPU)

Open the Terminal and type: sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext (press ‘Enter’)


11. Now follow the rest of MikeyN’s guide:


Automate this with the following LoginHook:


sudo mkdir -p /Library/LoginHook

sudo nano /Library/LoginHook/LoadX3000.sh


with the following content:


#!/bin/bash

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

exit 0


then make it executable and active:


sudo chmod a+x /Library/LoginHook/LoadX3000.sh

sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh


Preventive measures for future use


There are two further caveats to know: This is reversible when the SMC/PRAM/NVRAM is reset. If that happens the GPU-power-pref nvram can/has to be set again to force the use of the iGPU from boot-time.


Since this can happen quite easily (and is often erroneously recommended way too many times than it is actually useful), you should probably prepare for such a scenario and create a simple script to greatly speed up the process and also make entering the necessary variable much less error prone:


sudo nano /force-iGPU-boot.sh


– Enter the following content to this file:


#/bin/sh

sudo nvram boot-args="-v"

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

exit 0


– Now make that executable:


sudo chmod a+x /force-iGPU-boot.sh


In the future, when the SMC/PRAM/NVRAM gets reset to default values it is now possible to boot into SingleUser with:


<Cmd>+<s>


– And after mounting your boot-volume read-write to execute just:


sh /force-iGPU-boot.sh
 

pkd

macrumors newbie
Jul 25, 2018
1
0
Hello all, I could really use some help with a missing AMDRadeonX3000.kext file.

I am running High Sierra 10.13.4 on a late-2011 with a recently failed 6770M.

I followed MikeyN's guide to a tee, including the following steps:

mkdir -p /System/Library/Extensions-off
mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/
touch /System/Library/Extensions/
reboot

I verified that the system was now functional and that it was running on the Intel 3000 as expected. I then rebooted in single-user mode and ran:

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

but was very surprised to get the following error:

/System/Library/Extensions-off/AMDRadeonX3000.kext failed to load - (libkern/kext) not found; check the system/kernel logs for errors or try kextutil(8).

When I changed to the /Extensions-off directory and did a ls on the contents, the file was inexplicably not there.

Now after rebooting a couple of times and searching around on the system for the file, the entire /Extensions-off directory is gone too!

I am really baffled by why this has happened.

In this entire thread, I've only found one other user who had their AMDRadeonX3000.kext go missing after moving it, and they had a backup of the file. I do not.

What should I do now? This step was crucial for reducing the system temperature so I really need to resolve this before moving forward.

Sincere thanks in advance for any help.
 

JTToft

macrumors 68040
Apr 27, 2010
3,447
796
Aarhus, Denmark
I was wondering if someone could please explain or give a bit more of a guide for the layman from Step 11 onward
- Step 11 should be completed inside macOS. However, I elected to skip it on my machine, as it seems to me that if one loads the driver for the dGPU, then the system will be able to switch to the dGPU and thus cause problems.

I've run without the kext loaded on mine for 4 months, and it's been great.
I did load it right after doing the fix the first time, but I had issues, so I unloaded it, and it's been great since.
 
  • Like
Reactions: Skaboosh

Carw94

macrumors newbie
Jul 25, 2018
2
0
After the new update my MBP does not work/start anymore. Even with the sh /force-igpu-boot.sh command.
I would like to do this...but at the moment I cannot login into the CMD+R+S-Mode.

It goes instantly in to the Single User mode by pressing this the r+s combination.
It does not allow me to do anything into that mode... .
This is what it shows to me.

Any recommendations?
I just uploaded a picture.

[Using MBP 15" late 2011]

I have a very similar issue. The original fix using a archlinux.iso worked for me very well. Now that an update was done, neither solutions work. I tried using internet recovery as the recovery mode did not work (cmd+r+s). It automatically loads in single user mode.
 
Last edited:

asiliat

macrumors newbie
Jul 26, 2018
2
1
[Using MBP 15" late 2011]

I have a very similar issue. The original fix using a archlinux.iso worked for me very well. Now that an update was done, neither solutions work. I tried using internet recovery as the recovery mode did not work (cmd+r+s). It automatically loads in single user mode.

I had the exact same problem. Here's how I fixed it.

- Remove HDD from your MBP
- Use an external HDD cover or an external HDD dock, I used this: https://www.bestbuy.ca/en-ca/produc...VT7bACh38HwqEEAQYASABEgJxTvD_BwE&gclsrc=aw.ds
- I used a laptop running Windows 10 so...
- download HFS+ for Windows. There is a 10 day free trial. https://www.paragon-software.com/home/hfs-windows/
- Once you install the software, you can navigate your HDD to /System/Library/Extensions and move all your AMD*.kext to another folder... for me, I created a /AMD_Kexts/ off the root, and copied all my AMD*.* there
- Put your HDD back into the MBP, use your Archlinux USB or CD, and re-do the steps through Archlinux.

**NOTE: I had problems removing the gpu* string. Here is something you can try:
chattr -i "/sys/firmware/efi/efivars/gpu*"
# (note) to remove immutable flag
rm "/sys/firmware/efi/efivars/gpu*"

Good luck, it seems like upgrading to 10.13.6 removed the CMD+R+S option...
[doublepost=1532618093][/doublepost]HOW TO enter "csrutil disable" if it keeps saying it can only be done "in Recovery OS" and you have a black screen.

1. Reboot your computer and immediately hold down CMD+R
2. Hold this down for a good minute if you're using an SSD, or on a slow HDD, hold it down longer... maybe 2-3 minutes just to be safe
3. You have black screen... but you should be in the recovery OS.
4. The first screen for OS X 10.13.6 is language picker, defaulting to English. Press Enter and wait 30 seconds to ensure it progresses to the recovery menu - in reality, it takes 2-3 seconds, but if you don't have a screen, you want to ensure the screen changed.
5. Next, we want to use our keyboard to navigate the menu bar. First: Press CTRL+FN+F2 to put your input cursor onto the apple logo in the menu bar
6. Press right arrow key 4x. Look at picture to visualize what you're seeing.
screen-shot-2015-05-10-at-10-01-57-am.png

7. Press the down arrow 4x (not 3, as the first arrow keypress merely opens the utilities menu)
8. Press enter
9. You should be in terminal - it's still pitch black..
10. Type blindly and slowly: csrutil disable
11. press ENTER
12. type reboot
13. press ENTER

If done correctly, your system should restart with SIP disabled. Now holding CMD+S during boot will get you into single user mode and continue w/ fixing your MBP. Check SIP status by typing: csrutil status
Now you can try and remove the AMD*.kext

**DISCLAIMER: I didn't actually do this, but there's another article on the web somewhere that showed me how to do this blindly - HOWEVER, they skipped the critical step of the first screen being a language picking screen.... Once I fixed my MBP, I went to the recovery OS to see what the keyboard sequence is, and leaving it here.
 
  • Like
Reactions: Carw94

mightymacman

macrumors member
Jul 26, 2017
39
11
San Luis Obispo, CA
This is similar to the post I placed on PAGE 74 of this blog. So many of you have questions of how to do command line, and linux . . . and even a Windows based solution. Respectfully, try this. Please read through it before you try. The information is contained in a .jpg (.jpeg) file. Click it open and save it to your HD.
 

Attachments

  • 2011 MBP GPU ISSUE Work-A-Round.pages.png
    3.3 MB · Views: 642

Carw94

macrumors newbie
Jul 25, 2018
2
0
I had the exact same problem. Here's how I fixed it.

- Remove HDD from your MBP
- Use an external HDD cover or an external HDD dock, I used this: https://www.bestbuy.ca/en-ca/produc...VT7bACh38HwqEEAQYASABEgJxTvD_BwE&gclsrc=aw.ds
- I used a laptop running Windows 10 so...
- download HFS+ for Windows. There is a 10 day free trial. https://www.paragon-software.com/home/hfs-windows/
- Once you install the software, you can navigate your HDD to /System/Library/Extensions and move all your AMD*.kext to another folder... for me, I created a /AMD_Kexts/ off the root, and copied all my AMD*.* there
- Put your HDD back into the MBP, use your Archlinux USB or CD, and re-do the steps through Archlinux.

**NOTE: I had problems removing the gpu* string. Here is something you can try:
chattr -i "/sys/firmware/efi/efivars/gpu*"
# (note) to remove immutable flag
rm "/sys/firmware/efi/efivars/gpu*"

Good luck, it seems like upgrading to 10.13.6 removed the CMD+R+S option...
[doublepost=1532618093][/doublepost]HOW TO enter "csrutil disable" if it keeps saying it can only be done "in Recovery OS" and you have a black screen.

1. Reboot your computer and immediately hold down CMD+R
2. Hold this down for a good minute if you're using an SSD, or on a slow HDD, hold it down longer... maybe 2-3 minutes just to be safe
3. You have black screen... but you should be in the recovery OS.
4. The first screen for OS X 10.13.6 is language picker, defaulting to English. Press Enter and wait 30 seconds to ensure it progresses to the recovery menu - in reality, it takes 2-3 seconds, but if you don't have a screen, you want to ensure the screen changed.
5. Next, we want to use our keyboard to navigate the menu bar. First: Press CTRL+FN+F2 to put your input cursor onto the apple logo in the menu bar
6. Press right arrow key 4x. Look at picture to visualize what you're seeing.
screen-shot-2015-05-10-at-10-01-57-am.png

7. Press the down arrow 4x (not 3, as the first arrow keypress merely opens the utilities menu)
8. Press enter
9. You should be in terminal - it's still pitch black..
10. Type blindly and slowly: csrutil disable
11. press ENTER
12. type reboot
13. press ENTER

If done correctly, your system should restart with SIP disabled. Now holding CMD+S during boot will get you into single user mode and continue w/ fixing your MBP. Check SIP status by typing: csrutil status
Now you can try and remove the AMD*.kext

**DISCLAIMER: I didn't actually do this, but there's another article on the web somewhere that showed me how to do this blindly - HOWEVER, they skipped the critical step of the first screen being a language picking screen.... Once I fixed my MBP, I went to the recovery OS to see what the keyboard sequence is, and leaving it here.

Unfortunately, the blind recovery mode method does not seem to work for me. I will have to give it more tries or find an alternative path. Thank you for your answer.
 

asiliat

macrumors newbie
Jul 26, 2018
2
1
Unfortunately, the blind recovery mode method does not seem to work for me. I will have to give it more tries or find an alternative path. Thank you for your answer.

Then do what I actually did. Take out the HDD and put it in an external dock/chassis. With a windows machine, download the Paragon HFS+ software, it's free for a 10 day trial. Once mounted, you can manually move the /System/Library/Extensions/AMD*.* out of that drive and back it up to another folder.

Put the drive back in your MBP, and now you can boot into recovery OS.
 

man1sshhh

macrumors newbie
Jul 26, 2018
19
7
=== 100% WORKING SOLUTION
===
=== Force your MBP to ALWAYS use Intel integrated GPU (EFI variable fix)


Can this method be applied on a Mid 2011 27" iMac A1312? I have a completely dead GPU, won't go beyond 2 LED lights on the logic board, hence the blank screen and no sound :(
 

mightymacman

macrumors member
Jul 26, 2017
39
11
San Luis Obispo, CA
This shot from MacTracker Seems to indicate that this iMac also has a Dual Graphics Card.
The AMD Radeon HD 6770M is a higer power card than the one in the 2011 15 &17" MBP.
It seems to me someone who knew what they were doing could write a fix or work-a-round
for this. Anyone know of one?

Screen Shot 2018-07-26 at 10.56.54 PM.png
 
  • Like
Reactions: man1sshhh

aeid

macrumors newbie
Jul 27, 2018
1
0
I was able to successfully execute those commands

First of all, it is possible to successfully boot a MBP to OS X while still using the failed GPU, after you remove the AMD drivers by booting in command line mode (CMD+S) and entering these commands:
1) fsck -fy (to check a disk)
2) mount -uw / (mount a root filesystem with read/write permissions)
3) sudo mkdir /AMD_Kexts/ (make a directory to store the AMD drivers in case you'll need them in future)
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ (move the AMD drivers)
5) sudo rm -rf /System/Library/Caches/com.apple.kext.caches/ (remove the AMD drivers cache)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/ (just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X)
7) sudo touch /System/Library/Extensions/ (to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt)
8) sudo umount / (umount a partition to guarantee that your changes are flushed to it)
9) sudo reboot

and now my MBP is working, I'm not sure what else to do.
- it doesn't sleep. ( sometimes it sleeps but doesn't wake up).
- can't modify screen brightness.
- it gets very hot.

what other steps do I still need to execute.

thank you.
 

StructureBD

macrumors newbie
Jul 27, 2018
1
0
New & Need some advice... I'm sure there is a posting for this same issue but having trouble finding it.
This is my first post/reply.. & new to this problem. I got the pink&purple lines down my screen the other day.
MBP 17in. 2011 2.4 -SSD. Mavericks.
I did this...
Press Command + S and keep holding these two keys.

2.3 - Click the MacOS installer icon -> continue holding the Command + S keys until you finish the MacOS installer Single User boot.

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

nvram boot-args="-v"

reboot

I worked. Now on the desktop I installed gfxCardStatus v2.3.
When I try to use gfxCardStatust and click "Integrated Only"my screen LOCKS UP!
Then I have to reboot.

What next?
Many thanks in advance, TKinAZ.
 

Attachments

  • Boot Single User.jpg
    Boot Single User.jpg
    91.1 KB · Views: 253

strive93

macrumors newbie
Jul 29, 2018
8
0
#####__ The Guide __#####

MikeyN, thank you very much.

Macbook Pro early 2011, amd 6770, high sierra 10.13.6.
I have done all via instructions, it runs

Problems:
Sleep Mode - KERNEL PANIC after wake up.
Backlight
What i can do?

Be carefull — the external monitor wont work via thundebolt. As I understand - the possible solutions are: USB adapter with videocard, or Airplay(maybe).

But, what about Verbose mode - is it nessessary now, or i can switch it off?
 
Last edited:

djmaurinho

macrumors newbie
Jul 29, 2018
1
0
GPU PANIC - I changed the operating system for The High Sierra Macbook Pro 2011 - But it has an MBP GPU-Fix software that solves the problem, since it removes NVidia from the system and the Mac goes to work only with Intel, but for the High Sierra, I do not think so.
Does anyone have one that works?
 

strive93

macrumors newbie
Jul 29, 2018
8
0
...
But that involved adding another command to the LoginHook, which is now:

#!/bin/bash
kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
pmset -a force gpuswitch 0
exit 0

Having the problem with lid.
Does it works in High sierra?

And after letting that load on boot one time; performing once again a complete reset/ re-application of the NVRAM hack: the machine doesn't mind what happens to the lid or how it is told to sleep or shutdown.

Am i right, that we must reset nvram and make all instructions with nvrams and kexts again?
 

CodeBlu

macrumors newbie
Jul 31, 2018
2
0
Hello all, after having fixed my 2011 MacBook Pro using the ArchLinux method, I have a few questions regarding updating.

Questions:
1.) Currently I am running El Capitan 10.11.4 , is it safe to update the OS through the app store? Would updating reset the fix?
2.) Is it possible to update from El Capitan to High Sierra with the fix in place, or will other steps need to be taken to preserve or reapply the fix?

Huge thanks to everyone in the thread, hopefully someone can help me safely update my machine to the latest OS.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.