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.

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
THANK YOU!! THANK YOU!! THANK YOU!!!

This part of your solution worked for me and I CANNOT THANK YOU ENOUGH!!!!!

I love this Macbook Pro and a new one just is not in my budget. You saved me and my sanity!!!

Quick Question though -- will I still be able to do video recording on this, via iMovie? My kid has a project due and it's a video! Will need to be able to record some things and create a video.

THANK YOU AGAIN!!!



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



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
You should be fine, but note that you cannot plug in an external display/TV since these require the dGPU to work.
Also, unless you remove the AMD kexts, I think the dGPU will re-enable next time you boot the system. So you will have to repeat the Command+S steps every time you boot.
 

pckrullenbol

macrumors member
Sep 30, 2016
30
10
The Netherlands
You should be fine, but note that you cannot plug in an external display/TV since these require the dGPU to work.
Also, unless you remove the AMD kexts, I think the dGPU will re-enable next time you boot the system. So you will have to repeat the Command+S steps every time you boot.

When you follow the guide exactly there is no problem with restarting the laptop. Even sleep works most of the time.
MikeyN guide, message nr #875:
Force 2011 MacBook Pro 8,2 with failed AMD GPU to ALWAYS use Intel integrated GPU (EFI variable fix)
 
Last edited:

chuchwhite

macrumors newbie
Jan 18, 2019
1
0
good afternoon, pls am having an issue doing a clean install on my Mac... I have windows currently installed on the Mac but right now it doesn't boot up..so I tried installing Mac OS Sierra on the Mac but I can't seem to have it figured out, pls can anyone put me through...my Mac is 2011 with a failed amd gpu card ... thanks
 

pastran

macrumors newbie
Nov 26, 2018
14
0
I continue with high temperatures even after loading AMDRadeonX3000.kext after starting the system.
It has new thermal paste and everything.
Can not do something about it?
Will it be a MOjave thing? with High sierra on YouTube you also raised the temperature so much, but I do not remember if it went up so much. approx 70 degrees C, and why use Macs Fan control
 

AaronW

macrumors newbie
Jan 20, 2019
1
0
Hello All,

I have an early 2011 pro 15. Operating on High Sierra 10.13.6

My AMD had failed just after Christmas and I have come across this thread. It has helped me...somewhat but I need more assistance.

I was able to get by for a number of boots running the following "simple process"
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

I found this worked a number of times and then I had to reset my PRAM and my SMC. This again worked a number of times and now is getting more complicated as I cannot determine the sequence in which I need to operate these different codes or resets in order to have the screen operational.

I have tried to launch into recovery mode however my mac doesn't seem to recognize command + R. In turn cannot disable the SIP however still followed these steps which has also gotten me successful boots:

#####__ The Guide __#####

This guide assumes that you run a stock system. Problem just occured. That means:
This guide assumes that all kexts are still in their default location /System/Library/Extensions.
Having all AMD-kexts there except one is beneficial for 'proper' operation.

To get some display acceleration back it will be necessary to force the machine to not boot into discrete graphics (dGPU) but directly into integrated graphics (iGPU). This will give you back your laptop – but you will lose some features: e.g. the ability to drive an external display. Thunderbolt data connections should work.

The initial procedure:

– 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;

– Now power on again and hold

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

at the same time until you hear the startup chime two times.

– Boot into Recovery by holding

<Cmd>+<r>+<s>

– Disable SIP:

csrutil disable

– disable dGPU on boot

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

– enable verbose boot mode:

nvram boot-args="-v"

– reboot into single user-mode by holding

<Cmd>+<s>

on boot

– mount root partition writeable

/sbin/mount -uw /

– make a kext-backup directory

mkdir -p /System/Library/Extensions-off

– only move ONE offending kext out of the way:

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

– let the system update its kextcache:

touch /System/Library/Extensions/

– wait for the kextcache process to finish
then

reboot

Reboot normally:
you will have an accelerated iGPU display.


But the system doesn't know how to power-management the failed AMD-chip.
For that you have to either manaully load the kext after boot by:

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

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

I cannot seem to find the full 5.2GB High Sierra to load this on my external HD. Can anyone point me in the direction?

I am going to stop rambling now as I really am unsure what you need to know or don't need to know.

My computer is currently operational and I would love to be able to run something through terminal in order to reboot etc just am unsure what to do at this point in order to not have this issue upon every reboot.

Please help!

TIA
 
Last edited:

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
I had this problem too. Try:
1. reboot into single user mode: Command+S. Apply the nvram code.
2. Reboot from sSingle user mode (Type: "reboot")
3. This time hold down Command+R to start in recovery. Then disable the SIP (I, personally would elect to KEEP it disabled from now on!)
4. No reboot into Single user mode and apply the nvram codes again - and also the other stuff to remove the kexts.
From then on it should work OK...

NOTE: If command_R still doesn't work, then yes you will need to download HighSierra and follow one other instructions to make a bootable HS install drive (this can actually just be on a partition on your main drive if needed - that is what I have done).

See: http://osxdaily.com/2018/10/21/download-macos-high-sierra-from-mojave/
 

isaakPro

macrumors newbie
Jan 21, 2019
1
0
Great guide! The Only MacOs solution works, only when i tried the Arch solution i could not get ti working. I unmounted and mounted back again /sys/firmware/efi/efivars, setting -rw, the only issue is that when i try to remove the gpu-power-prefs files i get the following error:

rm: cannot remove '/sys/firmware/efi/efivars/gpu-power-prefs-fa4.......': Invalid argument

The file name and path are correct and I also get the same error for other commands i tried such as mkdir. Does anyone have any ideas?
 

nerowolfe19

macrumors member
Aug 16, 2018
93
34
Yesterday figured out a way to disable dGPU without removing any kexts. Mind you, it's a fully functional 2012 rMBP running Sierra, but thought it might work for 2011 MBPs as well.


1. Enter the "nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00" string as per usual using single-user/user-recovery, and restart.

2. Log in. After starting up, run terminal & enter same code above (plus sudo) and password when prompted "sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00"

3. Start gSwitch, set it to "Integrated Only", Choose "Preferences", make sure "Remember Last GPU Mode" is checked and click "Open Advanced Pane"

4. Set GPU State to gpuState 5 and arg 3 and hit run, it'll affirm "Successfully set state: 5 and arg:3". You may now close gSwitch if you so wish.
__

That's it. In my case, apps no longer have access to dGPU as long as I don't do a shutdown or restart. Sleep and waking up work as they should. dGPU remains unswitchable aftering waking up too.

Once I restart or shut down, I'd have to repeat steps 2 and 4, ie enter the string in Terminal and set state 5 and arg 3 in gSwitch again, so dGPU would remain disabled after computer is shutdown or restarted again.


Advantages of this method:

1. Sleep, wake & brightness control all work, tempersature is normal.
2. No need to tinker with kexts or change SIP state.
3. Potentially less problematic on newer macOS releases.

Disadvantages:

1. Steps 2 & 4 need to be repeated after every restart/shutdown, easy as they may be.
2. Requires gSwitch.

I welcome your feedback.
 

egonegon

macrumors newbie
Jan 23, 2019
6
0
Dear friends, I still use Yosemite 10.10.5 on my early 2011 / 15 inch MBP and would now need to upgrade my OS. So far, MacFinder's fix worked very well, but I'm a bit overwhelmed when it comes to upgrading to Sierra or newer operating systems. Since I already have to live with elevated temperatures and fast battery discharge, I would like to perform the upgrade optimally.

What procedure would you recommend to me, in your experience, to avoid high temperatures and other problems? I also wonder which OS from 10.12. works best with our machine ... Sierra, High Sierra or Mojave?

Hopefully someone can give me a little overview and guide me through this process.

Thank you all!
 

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
Dear friends, I still use Yosemite 10.10.5 on my early 2011 / 15 inch MBP and would now need to upgrade my OS. So far, MacFinder's fix worked very well, but I'm a bit overwhelmed when it comes to upgrading to Sierra or newer operating systems. Since I already have to live with elevated temperatures and fast battery discharge, I would like to perform the upgrade optimally.

What procedure would you recommend to me, in your experience, to avoid high temperatures and other problems? I also wonder which OS from 10.12. works best with our machine ... Sierra, High Sierra or Mojave?

Hopefully someone can give me a little overview and guide me through this process.

Thank you all!
I also have a 2011 15 inch. I don't think your machine will run Mojave. I would suggest Sierra since it avoids the need to disable SIP. (But I have mine working on High Sierra).

Is your current GPU broken?

The important thing is to first download and prepare an installable version of Sierra, then over-ride the nvram setting using Single-user mode in your current OS, then boot in Recovery with the installable new os available. Then install the new OS. When it reboots you will have to then restart again in Single user mode to redo the nvram settings.
Finally you can apply the full AMD kext removal, making it stable across reboots.
 

egonegon

macrumors newbie
Jan 23, 2019
6
0
I also have a 2011 15 inch. I don't think your machine will run Mojave. I would suggest Sierra since it avoids the need to disable SIP. (But I have mine working on High Sierra).

Is your current GPU broken?

The important thing is to first download and prepare an installable version of Sierra, then over-ride the nvram setting using Single-user mode in your current OS, then boot in Recovery with the installable new os available. Then install the new OS. When it reboots you will have to then restart again in Single user mode to redo the nvram settings.
Finally you can apply the full AMD kext removal, making it stable across reboots.


Thank you for your answer!

Yes, my GPU is broken and I've only been using the Intel GPU for a year now.


I have now downloaded Sierra 10.12.6.dmg and have some questions because I'm pretty inexperienced:


1. I do not overwrite my NVRAM before and after installation with Option + CMD + P + R but in Single User Mode? Unfortunately, I do not know how.

2. How do I get to my sierra .dmg in recovery mode to install it?

3. Is there a guide where I can see the exact process for the AMD-Kext removal?


I also read this guide but this one is if you have already installed Sierra or High Sierra and I do not want to mess things up:

https://gist.github.com/cdleon/ae1542279598fe80f527400cc354a956


As you may notice, my knowledge is very limited: /

Thank you very much!
 

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
I followed these instructions to make a bootable installer:

https://support.apple.com/en-gb/HT201372

If you don't have a flash drive you can actually just allocate a 15 GB partition on the main HD.

These are the best instrucitons to follow for the nvram and AMDkext fix:

https://forums.macrumors.com/thread...fi-variable-fix.2037591/page-35#post-24956091

But to get Sierra installed I:

1. Boot in single user Command+S. Applied the nvram fix codes (see above).

2. Typed 'reboot', then held down Command+R to go to recovery (bootable install disk needs to be connected).

Then follow install instructions as normal.

3. When it finally reboots into Sierra or High Sierra, you will need to reapply the nvram hack by booting into single user mode. Then, as required disable SIP, and then disable the AMD kexts etc as described by mikeyN
 
  • Like
Reactions: egonegon

alaqui2000

macrumors newbie
Jan 24, 2019
3
0
Morocco
2012 MacBook pro, MacOS High Seirra, 10.13.0.
Busted video card and I'm trying to follow mikeN fix.
I just can't get into recovery mode it doesn't matter how much I try.
Command R
Command R S
Please help,
 

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
2012 MacBook pro, MacOS High Seirra, 10.13.0.
Busted video card and I'm trying to follow mikeN fix.
I just can't get into recovery mode it doesn't matter how much I try.
Command R
Command R S
Please help,
First boot with Command+S. Apply nvram fix.
THEN
Type "reboot"
During reboot hold down Command+R.
 

alaqui2000

macrumors newbie
Jan 24, 2019
3
0
Morocco
Thank you so much for your response (Spectrum). This what I get when I tried your method.
Please chech the uploaded image.

2012 MacBook pro, MacOS High Seirra, 10.13.0.
Busted video card and I'm trying to follow mikeN fix.
I just can't get into recovery mode it doesn't matter how much I try.
Command R
Command R S
Please help,
 

Attachments

  • 20190124_173734-1.jpg
    20190124_173734-1.jpg
    2.5 MB · Views: 209

prisstratton

macrumors 6502a
Dec 20, 2011
543
127
Winnipeg, Manitoba, Canada
Hi Everyone,

I was hoping that someone might have found a fix for the sleep/wake and screen brightness issues.

Everything had been working fine on my 2011 17” MBP running High Sierra, until I applied the last security update (2019-001).

I have tried all the usual SMC/PRAM/NVRAM resets, no luck. I could live with the screen brightness issues but not having it able to sleep/wake is a complete pain.

I do have a CCC from last Sunday so I can always roll back to that.

Thank you in advance for any/all responses.
 

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
Hi Everyone,

I was hoping that someone might have found a fix for the sleep/wake and screen brightness issues.

Everything had been working fine on my 2011 17” MBP running High Sierra, until I applied the last security update (2019-001).

I have tried all the usual SMC/PRAM/NVRAM resets, no luck. I could live with the screen brightness issues but not having it able to sleep/wake is a complete pain.

I do have a CCC from last Sunday so I can always roll back to that.

Thank you in advance for any/all responses.
My 2011 15 inch is running High Sierra fine. I followed the guide from MikeyN to the letter.
No problems with heat, screen brightness or sleep/wake/reboot.
But maybe I need to check which security version it is running...
 
  • Like
Reactions: pckrullenbol

Sennerstam

macrumors newbie
Jan 25, 2019
2
0
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


Thank you SO much for this guide!!
I still have one problem tho.. I've done the ArchLinux way, it worked, but everytime I reboot the Macbook I've got to type it all in again. Then I tried the "Easiest way" CMD+S and entering the codes. ALSO WORKED!
But unfornatly unfortunately I had to re-type that code every time as well.
Any ideas?

Thanks!
 

Spectrum

macrumors 68000
Mar 23, 2005
1,808
1,115
Never quite sure
Thank you SO much for this guide!!
I still have one problem tho.. I've done the ArchLinux way, it worked, but everytime I reboot the Macbook I've got to type it all in again. Then I tried the "Easiest way" CMD+S and entering the codes. ALSO WORKED!
But unfornatly unfortunately I had to re-type that code every time as well.
Any ideas?

Thanks!
In addition to entering the nvram codes, you also then need to remove the AMD kexts so that the system can reboot without the AMD being activated. To do this you need to first disable SIP (if enabled). The "Easiest way" has all the info needed.
 
  • Like
Reactions: Sennerstam

kwartel

macrumors newbie
Aug 5, 2017
1
0
I fixed my Macbook with the help of this guide on 5 August 2017. Until today my Macbook worked perfectly fine.

Today I used it all day. I turned it off and an hour later I tried to turn it on again but it gave a black screen. I can´t do anything, not even a Pram reset. It only shows a black screen (like when it is off). Battery is full and the light in front turns on. The mechanical startup sound is there but there is no ´dong´.

Any idea if I can do something to fix this? My second graphical card got broken?
 

Sennerstam

macrumors newbie
Jan 25, 2019
2
0
In addition to entering the nvram codes, you also then need to remove the AMD kexts so that the system can reboot without the AMD being activated. To do this you need to first disable SIP (if enabled). The "Easiest way" has all the info needed.

Thanks!

I guess I could follow this guide to disable SIP?
First Stage MikeyN method (move kext - Single User Mode)”

Cuz I think I did the “Simplest way” all the way through.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.