Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MikeyN

macrumors regular
Jul 26, 2017
129
75
Ok, did all of that. Still freezing when rebooting or shut down normally in OS. For some reason AMDRadeonX3000.kext is now in both /System/Library/Extensions and /System/Library/Extensions-off folders? Weird? See the pictures...

https://www.dropbox.com/s/uxhe7cn2xykpi44/Näyttökuva 2017-09-06 kello 15.51.37.png?dl=0
https://www.dropbox.com/s/mfo3aa46iwfdn38/Näyttökuva 2017-09-06 kello 15.52.03.png?dl=0
Voodoo? Highly. Non. Standard.

Anyway.
Now.
Remove X3000.kext from /System/Library/Extensions.
 

nonlen

macrumors member
Mar 29, 2014
49
1
Voodoo? Highly. Non. Standard.

Anyway.
Now.
Remove X3000.kext from /System/Library/Extensions.
Using finder?

UPDATE. Removed it in Finder; still freezes when rebooting but can't see any other issues. Should redo some part of the procedure?
UPDATE 2. It also freezes when it go to sleep or when closing the lid...
 
Last edited:

MikeyN

macrumors regular
Jul 26, 2017
129
75
Using finder?

UPDATE. Removed it in Finder; still freezes when rebooting but can't see any other issues. Should redo some part of the procedure?
UPDATE 2. It also freezes when it go to sleep or when closing the lid...

Finder was OK for that.
Still using verbose booting mode? Any "famous last words" the system utters?
Closing the lid is effectively putting it to sleep, i.e. the same.

Did you
sudo touch /System/Library/Extensions/
Wait 5 minutes. Then reboot. With
sudo reboot

Still borked?

Run once again:
cd /
sudo find -name "AMDRadeonX3000.kext"
#that might take a while.

Any other place for that then /System/Library/Extensions-off ?


Is the little script "force-iGPU-nvram.sh" in place, at the root of your volume?
(ls -la / ##to check, should give something like: -rwxr-xr-x force-iGPU-nvram.sh)
 

nonlen

macrumors member
Mar 29, 2014
49
1
Finder was OK for that.
Still using verbose booting mode? Any "famous last words" the system utters?
Closing the lid is effectively putting it to sleep, i.e. the same.

Did you
sudo touch /System/Library/Extensions/
Wait 5 minutes. Then reboot. With
sudo reboot

Still borked?

Run once again:
cd /
sudo find -name "AMDRadeonX3000.kext"
#that might take a while.

Any other place for that then /System/Library/Extensions-off ?


Is the little script "force-iGPU-nvram.sh" in place, at the root of your volume?
(ls -la / ##to check, should give something like: -rwxr-xr-x force-iGPU-nvram.sh)
Still using verbose booting mode?
YES


Did you
sudo touch /System/Library/Extensions/
Wait 5 minutes. Then reboot. With
sudo reboot
Several times, nothings really happening in terminal after this command. When reboot, it start to shut down and freezes


Run once again:
cd /
sudo find -name "AMDRadeonX3000.kext"
#that might take a while.
Waited nearly 10 min, nothing

Any other place for that then /System/Library/Extensions-off ?
What do you mean?


Is the little script "force-iGPU-nvram.sh" in place, at the root of your volume?
(ls -la / ##to check, should give something like: -rwxr-xr-x force-iGPU-nvram.sh)
TBH, I don't know...if not, how should I do that? Terminal?
 
Last edited:

AppleMacFinder

macrumors 6502a
Original poster
Dec 7, 2009
796
152
Will it be possible, in any way, to connect the remote monitor?
You can't do this by MBP's built in port, after this fix. However, someone from this thread was lucky with some USB-to-HDMI adapter if I remember correctly. Maybe this can help you! (at a cost of one occupied USB port and adapter cost)
[doublepost=1504776161][/doublepost]
Just hold down CMD-S, enter " sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 " at the prompt, press enter, then type "reboot" and press enter.
This CMD-S advice is also good, but of course it works only if you have a working OS X installation on that MBP. that "EFI variable fix through Arch Linux" is more universal, because it works regardless of what is installed at your hard drive ;)
[doublepost=1504776313][/doublepost]
1) The thread is getting quite out of hand with newbies signing up to just ask questions that prove first and foremost that they didn't read the whole thread or can't google within it.
It is currently rude IMHO to tell them all "go and educate yourself", since most of them are quite nervous and and might be understandably in a dire situation.
2) But your solution/guide is not the only one and there are now other guides/solutions working just as good. If not better. Your solution has now to be viewed as a truly historic achievement but also by now as incomplete and error prone (the last mostly on the user side).
3) The newer developments are simpler, easier, faster and more complete.
But they are buried in this thread. Please update the first post to guide newbies and search engine arrivals to a couple of the other solutions and amendments.
Sorry for the late reply, dear friend. I fully understand these problems and actually wanted to update a forum post for a long time already, but sadly I don't have the free time to completely update this forum post (good quality rewrite update I mean)... But there is a possible solution - if you send me a private message with a good compilation of links to the most helpful (by your opinion) forum posts of this thread, with some description, I could include this compilation to my forum post - of course mentioning you as the author of this compilation ;)
 

Nicolas Jacquin

macrumors newbie
Sep 7, 2017
1
0
Hello everyone,
I do not manage to boot my laptop anymore.
As I am having the GPU problem with my macbook 15inches(from 2011) with Mac Os Sierra, I have tried your method and after adding "nomodeset" and press enter, my screen goes black and I don't have access to the linux console to desactivate the GPU. ( I can wait 30minutes, nothing appears)
DO you have any idea what the problem could be?
What should I try?

Thanks for your help,
best regards,
Nico
 

saldin

macrumors member
Jul 30, 2012
92
18
saldin, I don't get another prompt for my system password (were you putting your password within quotation marks?—it needs to be... I've edited my earlier post #855 thusly), but you could try this instead:
<code>
do shell script "echo yourSystemPasswordInsecurelyInCleartext | sudo -S sh -c \"kextload /AMD_kexts/AMDRadeonX3000.kext\" "
</code>

I did that on my friend's Late-2011 MBP running Yosi. I rebooted several times and noticed it did ask for authorization until it didn't, and then it stayed that way for a few more reboots until it did again. I can't figure out why, since there was no change, just me booting the laptop over and over. I expected a consistent result...
[doublepost=1504822089][/doublepost]
Maybe. On Yosemite I had not the same but similar issues. It would never hang completely (my guess, I grew quite impatient with it at times) but it took sometimes an extraordinary amount of time to let it run its things and eventually shutdown cleanly.
So I very reluctantly gave up on Yosi. Sierra didn't give me issues.
If you are on 10.11 or 10.12 then you should look more into what the message above tells you. Looks more like a network issue than something caused by the hack.
Try to unmount all networks drives and close all network connections before issuing the shutdown command.

Some more info on this would be helpful.
Exact symptoms? Did you reset NVRAM/SMC (yes, again) before (re-)applying NVRAM-hack?

I found out that the shutdown text is displayed only when I don't load the X3000 kext. Maybe the X3000 kext is messing with shutdown and sleep/wake up...
 

saldin

macrumors member
Jul 30, 2012
92
18
Have you tried changing the values of gpuswitch? This website says gpuswitch is related to sleep.

gpuswitch sets GPU behaviour during sleep, and appears to be undocumented;

https://eclecticlight.co/2017/01/20/power-management-in-detail-using-pmset/


1 -
Show current pmset gpuswitch.

pmset -g


2 - Change pmset gpuswitch to Integrated video card.

sudo pmset -a gpuswitch 0

sudo shutdown -r now

boot normal

test close and open lid -> sleep


3 - Change pmset gpuswitch to Discrete AMD video Card.

sudo pmset -a gpuswitch 1

sudo shutdown -r now

boot normal

test close and open lid -> sleep


4 -
Change pmset gpuswitch to Dynamic mode.

sudo pmset -a gpuswitch 2

sudo shutdown -r now

boot normal

test close and open lid -> sleep


Some websites say that gpuswitch 0 is Intel and others say it's AMD/Nvidia. The same information applies to gpuswitch 1.

I did not test to see if you have to restart the Macbook to apply the changes. To avoid this doubt, then restart the Macbook.

Source code - look gpus :

https://opensource.apple.com/source...le.SystemPowerProfileDefaults.plist.auto.html

https://opensource.apple.com/source/PowerManagement/PowerManagement-211.14/pmset/pmset.c.auto.html

I tested setting pmswitch to every value and sleeping/waking up. Same thing as before: it sleeps (light does on/off breathing) but it doesn't wake up (keyboard backlight comes on, backlight dimming keys work, but display doesn't come up).

BUT! "sudo shutdown -r now" to restart and "sudo shutdown -h now" to power off appears to work correctly and consistently.
 

nsgr

macrumors 6502
May 22, 2017
317
117
I tested setting pmswitch to every value and sleeping/waking up. Same thing as before: it sleeps (light does on/off breathing) but it doesn't wake up (keyboard backlight comes on, backlight dimming keys work, but display doesn't come up).

BUT! "sudo shutdown -r now" to restart and "sudo shutdown -h now" to power off appears to work correctly and consistently.

Within the Info.plist of the AppleMuxControl.kext (Config2) there is a reference called PowerUpPCILinkOnSleep=1. Is about ATIRadeonX3000/AMDTurksGraphicsAccelerator.
I do not know if changing the value from 1 to 0 or to other values (2, 3, etc.) might solve the problem.

To test you have to disable the SIP if it is El Capitan or Sierra. By changing a signed kext you prevent it from being loaded with SIP enabled.


For Macbook Pro 15" Early 2011:

/System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleMuxControl.kext/Contents/Info.plist

IOKitPersonalities -> AppleMuxControl -> Config2 -> PowerUpPCILinkOnSleep

<key>Config2</key>

<dict>

<key>BacklightSmoothing</key>

<integer>8</integer>

<key>CheckExternalPort</key>
.
<string>ATIRadeonX3000,AMDTurksGraphicsAccelerator,AMDCaicosGraphicsAccelerator</string>
.
<key>PowerUpPCILinkOnSleep</key>

<integer>1</integer>


https://developer.apple.com/library..._Guide/KernelExtensions/KernelExtensions.html

https://developer.apple.com/library...n.html#//apple_ref/doc/uid/TP40016462-CH5-SW1

https://forums.developer.apple.com/thread/9332
 
Last edited:

kirloi

macrumors newbie
Sep 10, 2017
1
1
Thanks a lot man! You are a life saver! When I though my mac would be for sure a brick it make me so happy to see him boot with no f!"#$ lines! Now is going to my mom for web browsing and movie watching! :D
Really, huge thanks!
 
  • Like
Reactions: AppleMacFinder

AppleMacFinder

macrumors 6502a
Original poster
Dec 7, 2009
796
152
it could be good to know which command can delete this fix accidentally
you said : NVRAM and PRAM : deletes the fix
Reset SMC : deletes the fix

About : Onyx , Yasu, Applejack ? no risk ?
I am not sure if these apps could delete this fix accidentally, so - when you don't have some free time to re-do this fix if it fails, its better to use these apps carefully ;)
And if I need to completely remove this EFI fix ( I mean intentionnaly, after a GPU replacement )
what is best solution, update EFI and clean install ?
Clean install is not required; just do these two things:
1) Either delete this EFI variable which you have created while doing this fix, or just reset these PRAM / NVRAM / SMC for the same effect
2) Then move the AMD kexts back to their original place
EFI update is not needed as well, also its a bit difficult to apply it because the updater sees that the latest EFI version is already installed and refuses to update - though it is possible to force it to update... But thats not needed :)
 

Ghibli

macrumors regular
Jun 5, 2005
111
0
Trieste - Italy
Fix for 17 inch dGPU switch issue

(Tested successfully in both “early” and “late” 2011 17 inch MacBook Pro)



This guide is based on the experience of many users (including me) while trying to fix the very well known issue with AMD dGPU on 17’’ MacBook Pro from 2011 (both early and late):

I would just like to thank you all for the wonderful job. I can confirm that it also works on early 2011 15" Macbook Pro.

The only problems I found is in moving the AMD files (the system was stuck saying the operation cannot be executed in SU-mode) and with the terminal missing from the recovery mode (it seems this is a known issue on latest versione of sierra on MBP 15"). I resolved by booting on an external drive, in recovery mode, with an older version of sierra on (my MBP has 10.12.16, the disk I booted from has one of the early versions of sierra (about 6-10 months ago).

As far as I have tested everything seems fine: even graphically intensive programs as photoshop CS 5.1 and Apple Photo boots without problems (they froze the mac before). Even youtube videos seems fine so far.

I don't see any problems so far (but I admit my testing is quite limited)
[doublepost=1505136260][/doublepost]
Hello everyone,
I do not manage to boot my laptop anymore.
As I am having the GPU problem with my macbook 15inches(from 2011) with Mac Os Sierra, I have tried your method and after adding "nomodeset" and press enter, my screen goes black and I don't have access to the linux console to desactivate the GPU. ( I can wait 30minutes, nothing appears)
DO you have any idea what the problem could be?
What should I try?

Thanks for your help,
best regards,
Nico

I had this problem too. The first thing is

1)to press e immediately after the boot
and
2) be sure to scroll at the very end of the line before writing the command. Be sure to leave a blank space too and to double-check for spelling. I resolved in this way.
 

beth.null

macrumors newbie
Sep 11, 2017
4
0
Hi people!

I'm a lucky one with an early 2011 15" macbook pro with a defunct AMD GPU :(. So I'm in the quest of having resurrecting this nice aluminum brick :D :D :D.

First of all I would like to thank all of you that have made an awesome research about this topic and are giving a fantastic support.

My story started last summer when a sunny and scorching August day the computer went nuts and the screen started to display weird stuff, hung and not working properly. I thought that was a RAM or HD problem so I tested the components without luck and decided to reinstall the OS, dammit, first mistake, as now I have an unbootable system which refuses to install the OS (the screen goes gray after the progress bar when it reaches nearly the 30 or 40%). After a while struggling with it I gave up and now I'm back trying to fixing it.

I've followed the instructions indicated int the thread but I'm stuck at the 2.3 step where I have to re-create the gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9 EFI variable/file.

It's supposed that printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9 will create the file gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9, however every single command I try to do it fails miserably.

The printf fails with: printf: write error: invalid argument. Doing an echo with the same string and redirection fails with: zsh: operation not permitted: gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9 , and if I do the printf but redirecting to /tmp/dummy and later mv /tmp/dummy gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9 fails with: mv: inter-device move failed: '/tmp/dummy' to 'gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9'; unable to remove target: Operation not permitted

What is shocking me is that after mounting the efivarfs in rw, I was able to remove the gpu-power-prefs file, however now I can't recreate it. I don't know what's going on, as I'm not an expert in EFI but it seems that there is something that prevents the creation of that file. After rebooting the file is not present and I'm not able to continue with the instructions. :(

Does someone have a clue about what I can do? Apart of selling the macpro as repairing pieces as the apple store staff suggested to me :( :( :(.

Thanks in advance for your kind support.

Best regards,
beth.null.
 

kohsamui100

macrumors member
Dec 21, 2016
81
1
Hello friends.

My 2011 GPU "reflow" was working for 1 month, and today has failed again :/

I tried the same procedure which worked for me before I "fixed" but it doesn't seem to work anymore - which means once Sierra is loaded and I load the kext, I can STILL switch to the AMD using gfxcardstatus (before the "reflow" and reinstalling Sierra, I couldn't switch to the AMD, which was a sign that the "hack" worked). I'm currently using 10.12.6.

Would someone let me know how this can be done? There are way too many responses that I can gather into one scenario... Much appreciated.

The procedure I'm using is:

Complete Guide to Permanently Disable AMD 6XXXm series dGPU and Prevent Thermal Throttling

Acknowledgements: This guide is entirely based on nsgr's work.

1. This is an optional step. If you have previously attempted to remove AMD kexts, revert your system to the original state by installing the latest Mac OS combo update. At the time of writing of this guide, the latest combo update can be found here. Installing the update will update your kext files to the latest version. After the update is finished, your macbook will restart and freeze as soon as the dGPU is activated. Shutdown or force a restart.

2. Clear the NVRAM by holding Option + Command + P + R on startup until the macbook reboots.

3. Boot into the single user mode by pressing Command + S on startup. Execute the following commands to enable the iGPU during the boot phase:

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

reboot

4. Disable System Integrity Protection to allow editing system files. Boot into the verbose recovery mode by pressing Command + R + S on startup. Execute

csrutil disable

reboot

5. Go again into the the single user mode by pressing Command + S on startup. Mount root with write permissions via

/sbin/mount -uw /
(Note the space in front of the last forward slash). Next, create a backup folder by executing

mkdir backup
Move the AMDRadeonX3000.kext file to the backup folder you created by executing

mv System/Library/Extensions/AMDRadeonX3000.kext backup/
Moving this kext file is sufficient to prevent graphics switching.

reboot

6. Re-enable System Integrity Protection inside the verbose recovery mode (Command + R + S) by executing

csrutil enable

reboot
7. Boot into Mac OS normally and start the Terminal. Navigate to your backup folder using

cd /backup
Load the former kext file manually by executing

sudo kextload AMDRadeonX3000.kext
to prevent the dGPU from idling at maximum TDP. This will not re-enable graphics switching. A restart is not required.

Closing remarks: Step 7 will have to be executed after every system restart to prevent overheating. Steps 4, 5 and 6 will have to be executed after each major system update that breaks graphics switching. Step 3 has to be repeated after a NVRAM reset.
 
Last edited:

HunterJKirby

macrumors newbie
Sep 12, 2017
1
0
Would you be able to upgrade your Mac after this (i.e Sierra to High Sierra) without messing up everything?
 

Jedi82

macrumors member
Feb 25, 2014
52
8
Hy guys, important please :)

I have a macbookpro 2011 with amd problems!!!! I did just this (what i quote) and it work perfectly! I tried first the tweak at the first post and i did reboot my machine but graphics was bad i think due to the drivers that were missing. Now with these new steps all is fine also after rebooting. Gfxstatus can now let me select only discrete card and i thinks that now all is fine or i'm wrong?

What i must care now not to do? Sorry for my bad english! :)

I am interested in seeing a link to that hardware solution!

#

No.
SIP just makes the procedure cumbersome. Fix is confirmed working in everything from Yosemite up to High Sierra.
And if you moved the kexts: it is only necessary to move AMDRadeonX3000.kext.

It sounds like you followed the instructions from very first post in this thread.
Right now I am getting the impression that going the linux root is a bit vulnerable to not getting a sticking solution. (For a number of possible reasons. It should stay whether linux route or the NVRAM-route are used properly.)

Try this:
We assume that the hack worked once and that the one offending kext is moved out of /System/Library/Extensions.
Shut down the machine.
Perform SMC/PRAM/NVRAM reset:
disconnect everything except power chord.
hold <leftShift><Ctrl><Opt><Power> for two seconds, release at the same time.
Machine is still powered down.
Now hold <Cmd><Opt><p><r> while powering on and wait until you hear the startup chime two times.
NVRAM is now at factory settings. Previous hack is now deleted.
Boot into SingleUserMode by pressing immediately <Cmd><s> on boot.

issue the following commands in this mode:
nvram boot-args="-v"
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
reboot


Fix is now written to NVRAM and should stay. If the system hangs on the next reboot you need to check the locations of your AMD kexts.

If it works only for one boot, come back with more details (posting no. for the guide used, error messages etc.).
 

kohsamui100

macrumors member
Dec 21, 2016
81
1
I'm following the exact steps which everybody mention here and which worked for me before, but I can still swith to AMD... I'm running 10.12.6, has anything changed in this version which makes it still switch to AMD although AMDRadeonX3000.kext is not in the Extensions folder ? Could this happen because I have iStat installed ?
 

Idgit

macrumors 6502a
Mar 14, 2004
552
158
I can't get this to work. Once I select EFI Boot at start up, a bunch of text scrolls by, then the screen turns white, and then black, and the fans ramp up to max. Nothing happens after this. Similar to what TitusVorenus experienced: #53. Resetting the SMC and NVRAM made no difference.

Before the screen turns black, there are a bunch of messages repeated: "[drm:uvd_v1_0_start [radeon]] Error UVD not responding, trying to reset the VCPU!!!". That stops repeating after a bit, eventually it says the device is mounted successfully, and then it goes dark.

In the Terminal, I created the Linux ISO boot disk on a 4 GB USB stick (Kingston brand) in El Capitan using this command:
sudo dd if=path/to/arch.iso of=/dev/rdiskX bs=1m

The 2011 MacBook Pro is running Mavericks. I already removed the AMD drivers so I am able to boot from Mavericks.

Any ideas how to get the MBPro to successfully boot from the USB stick?
 
Last edited:

Idgit

macrumors 6502a
Mar 14, 2004
552
158
Okay, this thread is a cluster****. I'm reading through the entire thing and I can't parse out the solutions. I think there are 3 working solutions by AppleMacFinder, MikeyN, and nsgr. Is that correct?

AppleMacFinder's Linux solution on page 1 isn't working for me because I can't boot successfully into Linux. Do either of the other solutions work with Mavericks? And if so, can someone please link to the actual working instructions? Or perhaps MikeyN and nsgr could start their own separate forum post with their instructions.
 
Last edited:

nervosA

macrumors newbie
Sep 26, 2008
21
4
Pittsburgh
Well my 2011 pro just totally dies because if this. I'm pretty distraught.
I was using gfx status or whatever it's called and now it won't even boot. This sucks so bad. Not even sure where to go from here
 

bicycleforthemind

macrumors newbie
Sep 14, 2017
12
5
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
 
Last edited:

Rob Wood

macrumors newbie
Sep 14, 2017
8
2
Success report, late 2011 MBP recovered and running smooth. Still need to add automation, but thanks to everyone who worked on this. Closing in on 1000 posts, pretty impressive.

Running El Cap and holding, runs everything we need so I don't want to poison the well by upgrading. Loving my 17" anti-glare.
 

T u r b o

macrumors newbie
Jul 27, 2009
6
0
I have a 2011 MBP myself. The AMD GPU hasn't died yet but I suspect it's just a matter of time.

Wanting to get ahead of the problem I took the great information in this thread (thanks to everybody for contributing!) and used it to write a kext that will block the GPU driver from loading, will set the nvram variable, switch GMUX to IGP and power down GFX0. It will also power down GFX0 again on every sleep/wake cycle, since something in the system is powering it up on wake.

I have OSX 10.9 on my MBP so I have only tested it on 10.9, but it might work for newer versions as well. I don't know about SIP and loading unsigned kexts in more recent versions of OSX or what might be needed to get around that issue.

Is there anyone on here running 10.9.x that knows how to install and remove kexts, able to recover if it crashes their system, who could test this out? Since my GPU is still working I'd like at least one person to test before making it publicly available.
 

Rob Wood

macrumors newbie
Sep 14, 2017
8
2
Bicycle at 947

Just a note, going in I also did an fsck -fy for good luck. In fact, three times. Not sure where the best place in the process but maybe within the first couple of steps. Great work, Cheers!


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
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.