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.

nerowolfe19

macrumors member
Aug 16, 2018
93
34
Guys Please Help :(

@AppleMacFinder : Thanks a lot for your wonderful post. I have a 2011 Macbook pro with 10.9.5 (Mavericks) installed. I started getting this problem and tried very simple fix of yours
1) Reset SMC
2) Enter into Single user mode (Command + S)
3) nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
4) nvram boot-args="-v"
5) reboot

This worked flawlessly and I was able to boot my system (verified with gfxCardStatus and it shows integrated graphics "i").

BUT whenever I reboot my system, I am back in the same state as before and I have to run all of the above 5 steps again to get it to boot.

This works fine as long as I run all 5 steps every single time I start my macbook. This is a real pain. I do have a script that I can run at bootup for nvram settings but resetting SMC everytime is something not ideal.

Any ideas on why this setting is not persistent? I did not follow linux steps or .ktext steps, just ran nvram settings. Did I miss anything?

Please HELP :)

nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
does the same effect as nvram boot-args="agc=1" , only that it doesn't require disabling SIP. You could try the latter instead of the former as an experiment.

You could also give running sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 through terminal before restarting a try.

Some have fared better after upgrading to a newer OS like El Capitan or Yosemite. I have a different machine with a different chip, so what works on mine may not necessarily work on yours.

Also, consider doing a hardware mod like dosdude1's. Good luck!
 

ionsquantam

macrumors newbie
Nov 1, 2018
4
0
The answer was in this thread only , finally got it working after following below guide. No more kernel issues after reboot.

Force 2011 MacBook Pro 8,2 with failed AMD GPU to ALWAYS use Intel integrated GPU (EFI variable fix)

@BiggAW and @Dave111 : You guys can also follow the above post and it will work for you guys too. Just do the exact steps properly.

Big Thanks to @MikeyN for the guide, the key step for avoiding reboot problem was to rebuild the kext cache without AMDRadeonX3000.kext and loading this module later in the stage after bootup.

@MikeyN: I do however still feel like my macbook is getting hot. It did come down from 70 C (before loading AMDRadeonX3000) to 63 C after loading where GPU stands good at around 30 but my overall system temperature still shows 62 C. Is this normal ??
 

MikeyN

macrumors regular
Jul 26, 2017
129
75
@MikeyN: I do however still feel like my macbook is getting hot. It did come down from 70 C (before loading AMDRadeonX3000) to 63 C after loading where GPU stands good at around 30 but my overall system temperature still shows 62 C. Is this normal ??

That is about normal, although not ideal. Essential is that the GPU temp goes down quite a bit. But the CPU and all the other heat sources are not affected by this whole procedure.

With a managed GPU and acceptable ambient temps it looks like your machine temp at idle after reboot is a tiny bit too high, assuming you do not have excessive background processes active. If login items etc are excluded, then it looks as if it would be perhaps about time to open the case and clean the insides.

Go to ifixit.com for details but it is advisable to remove bottom, and both fans, then blow compressed air through the fans (hold the rotors tight so that they do not spin) and the heatpipe grills (those clog easily). Clean out all the dust you can see (or if you are comfortable with complete disassembly: remove really all the dust from the inside. Just giving it a good blow should be enough in most cases, though.)

[Extreme measure: disassemble the heatpipe from CPU and GPU and replace the thermal grease with fresh, thin and more efficient paste. Most MBPs I've seen idle at 20°C ambient with almost exactly 60°C CPU temp. Fresh and efficient thermal paste might bring that down a few degrees in idle. Unless you enjoy these kind of 'repairs' that is not really worth it now.]
 

BiggAW

macrumors 68030
Jun 19, 2010
2,563
176
Connecticut
The answer was in this thread only , finally got it working after following below guide. No more kernel issues after reboot.

Force 2011 MacBook Pro 8,2 with failed AMD GPU to ALWAYS use Intel integrated GPU (EFI variable fix)

@BiggAW and @Dave111 : You guys can also follow the above post and it will work for you guys too. Just do the exact steps properly.

I might try that after this trimester of grad school is over. For now, the manual re-entering of the code does work, even if it's a bit tedious. I also can't follow the advice to not push the machine too hard, as I have to run multiple VMs at the same time, and often get the CPU close to 90 degrees, which is terrifyingly hot for anything, but it just doesn't have that great of a cooling system.

At least I know what replacement machine I'd get now if I did get a new Mac- the MBA 512GB/16GB looks like an amazing machine and it would fill the role of super portable machine and Mac for me very well.
 

ionsquantam

macrumors newbie
Nov 1, 2018
4
0
@MikeyN : Thanks for the info, I actually tried with another temperature monitor iStats and it seems like the temperatures are in normal range. Right now with one VM and browser activity, I am at 40-50 C. TGPro always show 10-15 C higher overall even though i don't feel that hot when I am working on it.
 

Dave111

macrumors newbie
Nov 1, 2018
24
4
The answer was in this thread only , finally got it working after following below guide. No more kernel issues after reboot.

Force 2011 MacBook Pro 8,2 with failed AMD GPU to ALWAYS use Intel integrated GPU (EFI variable fix)

@BiggAW and @Dave111 : You guys can also follow the above post and it will work for you guys too. Just do the exact steps properly.

Big Thanks to @MikeyN for the guide, the key step for avoiding reboot problem was to rebuild the kext cache without AMDRadeonX3000.kext and loading this module later in the stage after bootup.

@MikeyN: I do however still feel like my macbook is getting hot. It did come down from 70 C (before loading AMDRadeonX3000) to 63 C after loading where GPU stands good at around 30 but my overall system temperature still shows 62 C. Is this normal ??


@ionsquantam Thank you for your reply! Ok I just recently realized there's another solution, which is MikeyN's by removing the Kexts. As I kept reading the thread, I found another solution so-called the "GRUB" solution. By the way, THANK YOU ALL who take the time and effort to contribute to this this thread and don't mind sharing your knowledge!! Greatly appreciated by us noobs :) OK so, like I said I tried the original solution with ArchLinux and my mac works but with issues (sleep, bad shutdowns, etc.) so I was looking for some fixes. From what I've gathered so far, in short:

*ArchLinux fix: Sleep/wake problems, no ability to reboot/shutdown from apple menu, system freezes/crashes if using a program that uses intensive graphics.
*Kexts fix: Temperature issues. Mac gets really hot because of messing with dGPU's power management. There's a workaround provided (loading kext manually) but it seems that temp still rises nonetheless.
*GRUB fix: Some people report Mac working flawlessly (except for external monitor capability) while others report issues of failure to boot, black screens, kernel panics, etc. There are workarounds but you have to be very careful with this option.

This is obviously a dumbed-down summary from my perspective. I still have over 40 pages to read to gather more intel before I proceed with any other solution. This is only meant to be for us newbs who just got here to this thread and are trying to make sense of it all. Wish me luck in my journey. Good luck to all!
Special shoutout to @AppleMacFinder, @nsgr, @MikeyN, @brainshutdown!!!
 
Last edited:
  • Like
Reactions: giapson

Revelled

macrumors newbie
Oct 25, 2018
3
0
Thanks all for the work that has gone into this and especially @MikeyN for the step by step guide.

My Late 2011 15" MacBook Pro is now working again!

One of the Dev. guys at work helped me, we found a couple of bits confusing, which I think may have been
something like exiting verbose (kept on going round in loops) and whether to type reboot as a command.

Haven't set up the preventive measure section yet, bit afraid to as it is working well.... it's not even getting hot!

Thanks Again

Reed
 

ionsquantam

macrumors newbie
Nov 1, 2018
4
0
@ionsquantam Thank you for your reply! Ok I just recently realized there's another solution, which is MikeyN's by removing the Kexts. As I kept reading the thread, I found another solution so-called the "GRUB" solution. By the way, THANK YOU ALL who take the time and effort to contribute to this this thread and don't mind sharing your knowledge!! Greatly appreciated by us noobs :) OK so, like I said I tried the original solution with ArchLinux and my mac works but with issues (sleep, bad shutdowns, etc.) so I was looking for some fixes. From what I've gathered so far, in short:

*ArchLinux fix: Sleep/wake problems, no ability to reboot/shutdown from apple menu, system freezes/crashes if using a program that uses intensive graphics.
*Kexts fix: Temperature issues. Mac gets really hot because of messing with dGPU's power management. There's a workaround provided (loading kext manually) but it seems that temp still rises nonetheless.
*GRUB fix: Some people report Mac working flawlessly (except for external monitor capability) while others report issues of failure to boot, black screens, kernel panics, etc. There are workarounds but you have to be very careful with this option.

This is obviously a dumbed-down summary from my perspective. I still have over 40 pages to read to gather more intel before I proceed with any other solution. This is only meant to be for us newbs who just got here to this thread and are trying to make sense of it all. Wish me luck in my journey. Good luck to all!
Special shoutout to @AppleMacFinder, @nsgr, @MikeyN, @brainshutdown!!!

Actually, if you follow exactly MikeyN's guide, you should be able to see the temperature in normal zone. Only one file which is the key in this ptocess is AMDRadeon3000.kext which needs to be loaded when ur mac is up and running, (later in the boot process). This file if you remove from Extensions folder and rebuild your cache should get you a working mac with integrated gpu and the load this file with a startup script as MikeyN suggested.

You can even try kextload AMDRadeon3000.kext to check ur temperature. It will drop as soon as u load this module. Also check temperature with istat which is good because for me TGPro always showed high temperature which was decieving but istat was real.
[doublepost=1541365569][/doublepost]
Thanks all for the work that has gone into this and especially @MikeyN for the step by step guide.

My Late 2011 15" MacBook Pro is now working again!

One of the Dev. guys at work helped me, we found a couple of bits confusing, which I think may have been
something like exiting verbose (kept on going round in loops) and whether to type reboot as a command.

Haven't set up the preventive measure section yet, bit afraid to as it is working well.... it's not even getting hot!

Thanks Again

Reed

If you follow exact steps what he posted then you will have no problems at all, can u paste what step is getting confusing for you?
 

ndimeski

macrumors newbie
Nov 4, 2018
1
0
Hi everyone,
First of all thank you very much for this thread it was very helpful.
I have the same amd radeon issue and I tried the MacOS method not the Linux one. After entering the commands suggested here for MacOS method the Mac rebooted bit it got stucked to the apple screen and doesn’t want to load the OS. Then, I tried to boot in safe mode and in safe mode my Mac works, the amd radeon is disabled and it works on the intel graphics.
Can anyone help me how can I fix this issue now and have my Mac also work in normal mode as well.
Thank you so much!
 

Dave111

macrumors newbie
Nov 1, 2018
24
4
Actually, if you follow exactly MikeyN's guide, you should be able to see the temperature in normal zone. Only one file which is the key in this ptocess is AMDRadeon3000.kext which needs to be loaded when ur mac is up and running, (later in the boot process). This file if you remove from Extensions folder and rebuild your cache should get you a working mac with integrated gpu and the load this file with a startup script as MikeyN suggested.

You can even try kextload AMDRadeon3000.kext to check ur temperature. It will drop as soon as u load this module. Also check temperature with istat which is good because for me TGPro always showed high temperature which was decieving but istat was real.
[doublepost=1541365569][/doublepost]

If you follow exact steps what he posted then you will have no problems at all, can u paste what step is getting confusing for you?

@ionsquantam Hey! Thanks for the reply. OK but isn't the GRUB method the most reliable solution for long-term use and stability? At least that's what I understood from most of the responses, but correct me if I'm wrong please. I'm just trying to gather as much info before I decide what to do, especially because right now I have a partially working machine and I don't wanna screw things up for the worse. Cheers.
 

josels

macrumors newbie
Nov 4, 2018
1
0
Myanmar
I was able to boot the Mac and everything works fine. But GPU still switches. When it switches, it would go to blue screen and won't boot. How can I disable this auto switching? Thanks
 

saqibhasan

macrumors regular
Oct 10, 2007
114
122
thank you al for allowing men continued use of the 2011 MBP - I am refusing to buy the Mickey Mouse laptops that Apple are currently churning out.

After the fix, I'm having an odd issue - my bluetooth has suddenly stopped working. Any idea why?
 

Dave111

macrumors newbie
Nov 1, 2018
24
4
Does System Preferences, Energy Saver, Automatic Graphics Switching helps?

I would suggest to not click that “automatic switching” button. If I click it on mine then my Mac freezes and have to reboot and do the whole process again. I still wonder if there’s a true permanent solution other than changing the logic board
 

dosdude1

macrumors 68030
Feb 16, 2012
2,776
7,409
I would suggest to not click that “automatic switching” button. If I click it on mine then my Mac freezes and have to reboot and do the whole process again. I still wonder if there’s a true permanent solution other than changing the logic board
There is... Wrote all about it on my thread here. This is the best solution, by FAR, for this issue currently. I am in the process of developing a custom board to use instead of the bodge wires, which I should get working relatively soon. Once I get this board done, the permanent gMux IC bypass will be MUCH easier to perform.
 

Dave111

macrumors newbie
Nov 1, 2018
24
4
Another thing, it’s been said that by doing the Linux fix and then removing the R8911 resistor, any Mac with OS Sierra or below should regain complete functionality except for the external monitor option. Anyone can attest this is true?? If that’s the case I think that would be the best route to go, since it seems the less complicated/prone to error way.
Thank you guys!
 

jgonzo5154

macrumors newbie
Nov 7, 2018
3
0
Can't get past printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9. Says not found. Any ideas?
 

dosdude1

macrumors 68030
Feb 16, 2012
2,776
7,409
Can't get past printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9. Says not found. Any ideas?
Just boot OS X into single user mode (Command + S at startup), and enter the following at the prompt:

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

No need to mess around with any of that Linux stuff, this does the exact same thing.
 
  • Like
Reactions: pckrullenbol

jgonzo5154

macrumors newbie
Nov 7, 2018
3
0
Just boot OS X into single user mode (Command + S at startup), and enter the following at the prompt:

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

No need to mess around with any of that Linux stuff, this does the exact same thing.

Dude! That totally worked! Looked like it didn't do anything, but when I rebooted it came up as normal and I am able to login. Thanks!
 

Bodo777

macrumors newbie
Jan 11, 2017
2
0
Hi all

First i would like to thanks AppleMacFinder for this post, i have saved multiple macbook pro 2011 using the simpler method (moving the .kext file into another folder, ...)

Recently i got a new macbook pro 2011, and this method is not really working, in fact the macbook boots when i move the AMDRadeonX3000.kext file , but when i change the nvram settings:
" nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 ", the mac boots into a black screen. i turned on and off the multiple time and the mac screen stays black although i hear the dong sound. resetting the pram ( cmd+alt+p+r) solves the issue but the problem is that the nvram setting is back to its default settings that means that the " nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 " command cannot be validated, and without it the mac is unusable.

Can somebody help me?

many thanks


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
 

dolpi

macrumors newbie
Nov 9, 2018
1
0
Dear,

How are you? I see that many people are afflicted by this problem. I'm from Argentina, and I'd like to see if you can help me.

I have the same problem as the vast majority, the mac apple appears, loads to a certain point, and the white screen. Already realize the cleaning of the chips, with the different commands. It did not work

I can enter command + r + s (text mode) and run nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 then restart and the mac starts correctly. Until here and arrived.

The problem is this, I have the Captain installed. When I want to start some application (chrome, ableton) the mac automatically changes to the amd video card, and it freezes again. If I turn it off again I have to run nvram, since the configuration of that command is deleted.

Try to disable sip protection, but it does not allow it in recovery mode. I do not recognize the command 'csrutil disable'.

I have 2 question to solve. One that when turning off the equipment, do not lose the configuration and the second that when opening a program does not automatically change the video card.


I would really appreciate it if you can help me. Since I'm fighting 2 days ago with my mac.


Thank you very much to all!
 

giapson

macrumors newbie
Apr 7, 2017
6
1
Just boot OS X into single user mode (Command + S at startup), and enter the following at the prompt:

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

No need to mess around with any of that Linux stuff, this does the exact same thing.
more problems after editing with mac A1286 mid 2010 of me.
1. Well it only worked until my computer went to sleep. Now back at gray screen
2. sometime broken image
3. When booting the machine has 15-30s load code system same as editing in command + S
What need I to do ? Please !
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.