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.

Rob Wood

macrumors newbie
Sep 14, 2017
8
2
Hi thx for reply,
I repeated it now for the 3rd time and it finally worked ;) (I hope my MBP lasts now 1-2 yrs longer until i can replace it). Strange although i triple checked the exact command for typos - I assume it's voodoo. I always thought that there must be some kind of software-mod for not using the dGPU and after years finally AppleMacFinder et al. found a possibility. Kudos! u should make a donation option, so that every relieved MBP owner can donate 1$ :D

OK, glad it worked!

So, to stabilize things for now, I have disabled sleep and set all power options to always on, no hard drive spin-down, no screen saver, etc. and to shut down I go to the terminals screen and use the "shutdown -h now" and give the password to shut down the computer. This is inconvenient, but keeps the MBP from resetting the NVRAM back to the invidia gpu. If someone would like to weigh in with options here please feel welcome. There are some shell scripts mentioned up-thread to automate the loading of the x3000 kext file at boot and perform the gpu-power-prefs variable setting. The other thing I did was install the smcfancontrol version 2.4 to start the fans at about 3300 rpm, which keeps the temp at about 40 degrees C under light load. You may not have to do all these things but based on reports of the fix kicking out after waking from sleep or using the apple menu shutdown, I have had no problems after implementing the above. I rarely use the MBP on battery for extended times, though, almost always on AC power.
 
  • Like
Reactions: shotters-nation

cZr

macrumors newbie
Sep 26, 2017
1
0
I have a MacBook Pro Late 2011 which I'm looking to sell with EFI fix applied - therefore still usable. Thanks to OP this machine is now fully working again.

Concern being that if it reverts back the buyer will be screwed. And normal users aren't likely to be able to follow the guide in Post 1 easily.

Am I missing anything in this thread that has a more user friendly fix - or a way to retain the EFI fix?
 

monofase

macrumors member
Sep 26, 2017
72
22
Italy
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



*)
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"

Hi, i tried several times with Arch Linux and finally I got it booted using the Ubuntu 16 Live DVD. Integrated graphic card is fully working!
I run successfully all the commands, but now I'm stuck to this command:

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

It says "permission denied"
Tried also with sudo but same problem.

I also deleted the old gpu-power-prefs file without problems, but now I can't go further and write the new file because of permission issues. Can somebody help me?

Thanks.
 

Fenderman2

macrumors newbie
Sep 26, 2017
4
2
I just updated to High Sierra and now during booting in "Single User Mode" I get the following error:

"Attempting system restart...MACH Reboot"

Is anyone experiencing a similar behaviour?
 

Photoflavours

macrumors newbie
Sep 27, 2017
1
0
Hi AppleMacFinder ,

I have applied and followed the steps but still its keep crashing.
I have mac book pro early 2013 keep crashing with GPU Panic.
System details:
Model: MacBookPro10,1, BootROM MBP101.00EE.B18, 4 processors, Intel Core i7, 2.7 GHz, 16 GB, SMC 2.3f36
Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In
Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB
Os:macOS Sierra 10.12.6

Here are few of crash logs.
anic(cpu 3 caller 0xffffff7fa4025705): "GPU Panic: mux-regs 3 0 a0 d9 9 8 severity 3 switch-state 0 IG FBs 0 EG FBs 1:0 power-state 0 3D idle HDA idle : \n"@/Library/Caches/com.apple.xbs/Sources/AppleGraphicsControl/AppleGraphicsControl-3.14.49/src/AppleMuxControl/kext/GPUPanic.cpp:149
Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB

Attached the logs.

Even tried gfxCardStatus but wont work.

Thanks
 

Attachments

  • crash_log2.txt
    10.9 KB · Views: 238

Ufok

macrumors newbie
Oct 24, 2012
3
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. Download the latest Arch Linux ISO image from this page - https://www.archlinux.org/download/ , at the time of writing it is archlinux-2017.03.01-dual.iso . 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!
[doublepost=1506604287][/doublepost]Hi,

Are these changes can be rolled back ?
 

TomLopez

macrumors newbie
Mar 26, 2011
24
0
France
Hello all! I followed the instructions and got my Late 2011 15in MacBook working again. However, my idle temperatures when there is no CPU load are around 70C and the battery life is much lower than before, almost like the dGPU is constantly active (even though MacOS isn't using it and gfxCardStatus shows that it's using the iGPU). Is this just a side effect of disabling it, or is it fixable as well?

Hi Justin,

Same problem here with early 2011 MBP!! Idle temps are now around 50 compared to 35/40 before implementing the fix.

Any thoughts guys?

Just found solution in page 38. Thanks a lot :)
 
Last edited:

bicycleforthemind

macrumors newbie
Sep 14, 2017
12
5
Hi Justin,

Same problem here with early 2011 MBP!! Idle temps are now around 50 compared to 35/40 before implementing the fix.

Any thoughts guys?

Just found solution in page 38. Thanks a lot :)

This would indicate you haven't completed steps 10 and 11 (referencing my post on page 38). You MUST manually load the dGPU kext in order to have proper power management. Note that this does not re-enable the faulty GPU.
[doublepost=1506685389][/doublepost]

Forget the Arch Linux route; there are much better methods. You're running 10.12, so reference MikeyN's guide on page 35: https://forums.macrumors.com/thread...fi-variable-fix.2037591/page-35#post-24956091
[doublepost=1506685846][/doublepost]
OK, glad it worked!

So, to stabilize things for now, I have disabled sleep and set all power options to always on, no hard drive spin-down, no screen saver, etc. and to shut down I go to the terminals screen and use the "shutdown -h now" and give the password to shut down the computer. This is inconvenient, but keeps the MBP from resetting the NVRAM back to the invidia gpu. If someone would like to weigh in with options here please feel welcome. There are some shell scripts mentioned up-thread to automate the loading of the x3000 kext file at boot and perform the gpu-power-prefs variable setting. The other thing I did was install the smcfancontrol version 2.4 to start the fans at about 3300 rpm, which keeps the temp at about 40 degrees C under light load. You may not have to do all these things but based on reports of the fix kicking out after waking from sleep or using the apple menu shutdown, I have had no problems after implementing the above. I rarely use the MBP on battery for extended times, though, almost always on AC power.

Did you complete steps 10 and 11 (referencing my post on page 38)? My MBP has been shut down/restarted and put to sleep dozens of times since I posted on 9/14/17. I haven't had to take any of the extra steps you listed and it has worked flawlessly.
 
  • Like
Reactions: o_0

Fenderman2

macrumors newbie
Sep 26, 2017
4
2
I just updated to High Sierra and now during booting in "Single User Mode" I get the following error:

"Attempting system restart...MACH Reboot"

Is anyone experiencing a similar behaviour?

Is nobody having the same issue?
After installing High Sierra I cannot boot into Single User mode anymore :(

With the ArchLinux method I can at least boot into MacOS again but only once.
After rebooting it gets stuck again on the boot screen.
Probably because the AMDRadeon*.kext files are still there.

Is there any other way to remove the AMDRadeonX3000.kext than by using single user mode?
 

Rob Wood

macrumors newbie
Sep 14, 2017
8
2
This would indicate you haven't completed steps 10 and 11 (referencing my post on page 38). You MUST manually load the dGPU kext in order to have proper power management. Note that this does not re-enable the faulty GPU.
[doublepost=1506685389][/doublepost]

Forget the Arch Linux route; there are much better methods. You're running 10.12, so reference MikeyN's guide on page 35: https://forums.macrumors.com/thread...fi-variable-fix.2037591/page-35#post-24956091
[doublepost=1506685846][/doublepost]

Did you complete steps 10 and 11 (referencing my post on page 38)? My MBP has been shut down/restarted and put to sleep dozens of times since I posted on 9/14/17. I haven't had to take any of the extra steps you listed and it has worked flawlessly.
Yes, but not all MBPs are the same. I have read probably 90% of this thread and would always point out to recent posters who have only gone to page 1 and then posted their problems that they should look at your post with the summarized procedure. Nonetheless, the extra steps I mention give me a greater margin of stability. Outside of a glitch or two coming out of extended (overnight) sleep, the main problem that I have not entirely solved is that a traditional shutdown using the apple menu leaves the computer hanging with a black screen. So I usually do a manual shutdown from the command line, shutdown -h now. My main logic board was replaced towards the end of the extended service program and went for a year and a half before fritzing out. I am not contradicting your recommendations.
 

bicycleforthemind

macrumors newbie
Sep 14, 2017
12
5
Yes, but not all MBPs are the same. I have read probably 90% of this thread and would always point out to recent posters who have only gone to page 1 and then posted their problems that they should look at your post with the summarized procedure. Nonetheless, the extra steps I mention give me a greater margin of stability. Outside of a glitch or two coming out of extended (overnight) sleep, the main problem that I have not entirely solved is that a traditional shutdown using the apple menu leaves the computer hanging with a black screen. So I usually do a manual shutdown from the command line, shutdown -h now. My main logic board was replaced towards the end of the extended service program and went for a year and a half before fritzing out. I am not contradicting your recommendations.


It's all good man; I wasn't responding negatively to your post. Just wanted to make sure that the last couple of steps had been completed (my Mac would very quickly shut down if not).

What OS are you running? I mainly referenced MikeyN's post but had to do a few things differently because I'm on 10.10.5.

What specific MacBook Pro do you have? Mine is an Early 2011 with Intel HD Graphics 3000 512 MB/AMD Radeon HD 6750M 1GB. The only things non-stock (which shouldn't make a difference anyway) are 16GB of OWC RAM and a third party SSD. My LB was also replaced under Apple's Repair Extension Program in March of 2016 and only lasted until this month.
 

Rob Wood

macrumors newbie
Sep 14, 2017
8
2
It's all good man; I wasn't responding negatively to your post. Just wanted to make sure that the last couple of steps had been completed (my Mac would very quickly shut down if not).

What OS are you running? I mainly referenced MikeyN's post but had to do a few things differently because I'm on 10.10.5.

What specific MacBook Pro do you have? Mine is an Early 2011 with Intel HD Graphics 3000 512 MB/AMD Radeon HD 6750M 1GB. The only things non-stock (which shouldn't make a difference anyway) are 16GB of OWC RAM and a third party SSD. My LB was also replaced under Apple's Repair Extension Program in March of 2016 and only lasted until this month.
Cool. Well, mine's a late 2011 running El Capitan and pretty sure it's the same eGPU. When mine came back from Apple they took out the 16GB of third-party RAM and swapped out the SSD for a 1TB HDD. So I re-installed the RAM and SSD we had but after the third trip back I didn't re-install the RAM and just left their 8GB. Runs fine. Tuned up the SMCFanControl to 3500 rpm and keeps the temp around 38-40 degs, idle.
 

bicycleforthemind

macrumors newbie
Sep 14, 2017
12
5
Cool. Well, mine's a late 2011 running El Capitan and pretty sure it's the same eGPU. When mine came back from Apple they took out the 16GB of third-party RAM and swapped out the SSD for a 1TB HDD. So I re-installed the RAM and SSD we had but after the third trip back I didn't re-install the RAM and just left their 8GB. Runs fine. Tuned up the SMCFanControl to 3500 rpm and keeps the temp around 38-40 degs, idle.

Did you disable SIP? I didn't include that step in my post as I am running Yosemite and SIP is El Capitan and up.
 

bobonight

macrumors newbie
Sep 30, 2017
1
0
There is not *one* guide to write up. Many roads lead to Rome. The best option would be if AppleMacFinder would update the first post of this thread pointing to the best alternatives.

Anyway. Even if this post now will quickly drown in the sheer length of this thread, I think this is currently one of the better guides:

#####__ 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

This setup has now one kext in a place Apple's installers do not expect. That is why in this guide SIP has not been reenabled. If an update that contains changes to the AMD drivers is about to take place it is advisable to move back the AMDRadeonX3000.kext to its default location before the update process. Otherwise the updater writes at least another kext of a different version to its default location or at worst you end up with an undefined state of partially non-matching drivers.

After any system update the folder /System/Library/Extensions has to be checked for the offending kext. Its presence there will lead to e.g. a boot hang on Yosemite and Sierra, an overheating boot-loop in High Sierra.

Further: this laptop is overheating, no matter what you do. The cooling system is inadequate and the huge number of failing AMD chips are just proof of that.

To prolong the life of this now hacked machine it is advisable to abstain from really heavy lifting over prolonged stretches of time. Strictly follow the usual recommendations for laptops: use on hard surfaces, keep the fans and fins inside it clean. Using any fancontrol software with relatively aggressive settings should also help: like smcFanControl, MacsFanControl, or TGPro (the latter both commercial).


This is fairly complete and what I do recommend to everyone asking me.
Nevertheless. We're not done here, yet. Improvements are welcome. Share them!
[doublepost=1506825497][/doublepost]Before upgrading to High Sierra, I had the black screen problem. I would have to open and shut the screen about 5 times to get it to work. After upgrading to High Sierra, I have only been able to get the screen to open once. I tried your method and the ArchLinux method. Neither work. I can't even get to a screen to type in the code instructions. My boot ArchLinux drive works on a working Mac so I know it's not the USB drive. But I still get a black screen when I try to boot from the USB or if I used your method.
 

skipjump

macrumors newbie
Oct 1, 2017
1
0
I think I got it to work, following the first post on page 1. -I removed the kexts first (#1-#9), then I skipped to the 100% WORKING SOLUTION. burn the disk, e nomodeset, then the *) parts. no need to remove power prefs, it disappeared since I removed the kexts first. osx 10.10.5 17" late 2011 2.5 i7. I've rebooted, so far so good. Thanks AppleMacFinder
 

E.Amrol

macrumors newbie
Oct 2, 2017
4
0
Hi. I’m stuck at cd /sys/firmware/efi/efivars and 1s when I entered nothing happened, something like command not exist. Any ideas whats wrong? Maybe I should try burn another version of arch linux.

Edit: lol the reason for the above because I typed 1s not ls. But when I followed steps from post no 1, I still didn't able to boot successfully. My computer only can boot successfully when I combined steps from post no 875 then later post no 65. I need to use steps from both each time, if I skip one, i will stuck at white screen.
 
Last edited:

gvd

macrumors newbie
Oct 3, 2017
2
3
Hello everyone! Is anybody here brave enough to try High Sierra? =) Any luck?


I upgraded on Monday night, I had to use safe boot mode to get around the now restored AMD kexts, install HS on another drive, boot with that and remove the AMD kexts, then boot properly and normally and only the intel HD 3000 is being used.

As I had already followed the 100% steps all was well and did not need to do them again.

I couldn’t do them again tho when I tried, chattr was not found and so. So all going well, once it’s done it doesn’t need to be done again. Good luck!
 

Rob Wood

macrumors newbie
Sep 14, 2017
8
2
Did you disable SIP? I didn't include that step in my post as I am running Yosemite and SIP is El Capitan and up.
Sorry for the late reply, yes I disabled SIP. Somewhere in the process you would boot holding [CMD]+[R]+, then type "csrutil disable". Hat tip to nsgr . I also set it back to hopefully prevent someone or something making changes, but I'm not much of an OS expert to know how it all works.

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

bicycleforthemind

macrumors newbie
Sep 14, 2017
12
5
Sorry for the late reply, yes I disabled SIP. Somewhere in the process you would boot holding [CMD]+[R]+, then type "csrutil disable". Hat tip to nsgr . I also set it back to hopefully prevent someone or something making changes, but I'm not much of an OS expert to know how it all works.

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

I don't know if this has anything to do with your situation, but it's worth noting:

This setup has now one kext in a place Apple's installers do not expect. That is why in this guide SIP has not been reenabled. If an update that contains changes to the AMD drivers is about to take place it is advisable to move back the AMDRadeonX3000.kext to its default location before the update process. Otherwise the updater writes at least another kext of a different version to its default location or at worst you end up with an undefined state of partially non-matching drivers.

BTW, I took your advice and installed SMC fan control. I keep the fans at 4200rpm minimum and it has made a HUGE difference.
 

davideu26

macrumors newbie
Oct 6, 2017
1
0
Europe
hi! Thank you for all of you, this thread is really useful! I have a 15 inch Late 2011 MacBook Pro with the same issue. Currently it's running Ubuntu Linux but it's really slow. It has 8GB of ram, 500GB HDD and a 2.0GHz Intel i7 so it shouldn't be this slow. Someone has uploaded a video to YouTube and fixed this issue with the ArchLinux method so now I'm going to do that too on the weekend but there is something which may prevent me from doing this.

My MacBook's battery has almost exploded so I took it out several months ago. It got so big that it pushed out the trackpad so there wasn't any option other than throwing it away. So now it's like a desktop computer and it must be plugged in at all times.

I'm not a technical expert but I read this thread and the two working solutions are the ArchLinux trick and another one which modifies the nvram or something like that. My question is that would any of these work considering that my MacBook has no battery in it or it would forget the hack and I'd have to reapply it every time I boot the laptop?

And assuming that it would work, how can I reinstall mac OS on my MacBook? Currently it's running Ubuntu Linux only. So even if I would do the ArchLinux hack, how can I get the mac OS back to laptop? Is it even possible to successfully install the mac OS Sierra or High Sierra considering that the dedicated gpu is not working?
 
Last edited:

Alex Crane

macrumors member
Jul 8, 2013
84
15
Moscow, Russia
I upgraded on Monday night, I had to use safe boot mode to get around the now restored AMD kexts, install HS on another drive, boot with that and remove the AMD kexts, then boot properly and normally and only the intel HD 3000 is being used.

As I had already followed the 100% steps all was well and did not need to do them again.

I couldn’t do them again tho when I tried, chattr was not found and so. So all going well, once it’s done it doesn’t need to be done again. Good luck!


Hello.

Several hours ago tried to install HS to external drive. But no luck, black screen, stripes and so on. Could you provide step by step instructions to upgrade S to HS please?
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.