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.

pixelman1952

macrumors newbie
Mar 26, 2018
4
4
Florida
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=1522949735][/doublepost]is it possible to disable all of the AMD kexts after performing the arch Linux procedure...I currently have my mac working off the intel graphics and all is well ...however if I restart the computer it still reloads the AMD drivers and I am back to a non functional machine...is there a work around using terminal seeing as I have access to it right now...I have tried the other fixes on utube but none have worked to get me back to a working desktop...I don't have a lot of experience using terminal but if someone can give me a step by step procedure I would like to give it a try
 
  • Like
Reactions: AppleMacFinder

MikeyN

macrumors regular
Jul 26, 2017
129
75
Hello. I have the macbook pro early 2011 17" with ssd and high sierra. Both integrated and discrete gpus work fine. I would like to use only the integrated gpu. Is the most efficient way to use gfxCardStatus?

If both GPUs are still really working then it is indeed very strongly recommended – in my eyes – to use exactly this setup with gfxCardStatus to minimise the times dGPU is used and stressed.
Keep in mind that external monitors are almost taboo in this scenario if you want to keep the sick AMD functionally healthy for as long as possible.

After the modification, when I insert a cable for external display, mac understands it and the screen flashes but there is no output to the external display. Is it normal the screen flash?

That is normal. It tries to switch, therefor blinks, but external stays black since dGPU is not working correctly. Alas, using Thunderbolt still increases temperature of the whole system.
Also: my experience on several machine tells me that letting the system sleep with TB cable plugged in might trigger some of the sleep problems (not waking up properly).

-> Avoid TB as much as possible and do not let your system (just display is fine) go to sleep with TB plugged in.
Only if you are experiencing sleep trouble: do another round of SMC/NVRAM reset, then reapply NVRAM-variable
 
  • Like
Reactions: AppleMacFinder

Jinjocrew3

macrumors newbie
Apr 7, 2018
1
1
I already did all the step sucessfully, and my macbook is good now, but after restaring, it went back to the apple logo stuck again, anyone know why this happening ? Is it because of crsutil or something that rollback all the change on osx ? Pardon my english, thankss
 
  • Like
Reactions: AppleMacFinder

iphone2g&3gfan

macrumors regular
Jun 14, 2013
147
103
Orlando, Florida
Hi,

I have the same problem how do I stop the dGPU from kicking in when I run apps like Google Chrome. I would like the computer to totally ignore it.

Thank you
Look at the first post I believe, or one of them, which has the "outb 0x728, etc." solution. Basically, you use grub2 to chainload /system/library/coreservices/boot.efi and doing those 4 outb's completely disables the dgpu at the PCI-e LINK LEVEL, meaning that lspci, ioreg, etc. will not show it. Note that external monitors do not work with the dgpu disabled like that on macOS. On linux (with the i915 driver) it seems to work on 2010 (mine) not sure of 2011. However, on linux it appears that you sacrifice hdmi/dp audio when you do so. Still it's better than nothing. I personally use Ubuntu 100% and it works wonders with that trick. Hint: when you do the
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0

If you use the first three but LEAVE out the "outb 0x750 0" then you can boot into linux with the dgpu enabled but disconnected from any displays. (that last one is the one that disable the pie x16 link to the gpu die) I do this on my 2010 with Nvidia, and you can use DRI_PRIME to render games/opengl on the dgpu, but through the i915 frame buffer.... pretty cool stuff. Kinda like Optimus.
[doublepost=1523202434][/doublepost]
I already did all the step sucessfully, and my macbook is good now, but after restaring, it went back to the apple logo stuck again, anyone know why this happening ? Is it because of crsutil or something that rollback all the change on osx ? Pardon my english, thankss
Could you boot with Command-V? That enables verbose mode, hopefully it provides clues...
[doublepost=1523202512][/doublepost]
[doublepost=1522949735][/doublepost]is it possible to disable all of the AMD kexts after performing the arch Linux procedure...I currently have my mac working off the intel graphics and all is well ...however if I restart the computer it still reloads the AMD drivers and I am back to a non functional machine...is there a work around using terminal seeing as I have access to it right now...I have tried the other fixes on utube but none have worked to get me back to a working desktop...I don't have a lot of experience using terminal but if someone can give me a step by step procedure I would like to give it a try
Yep. Just look up how to chainload macOS from grub2... You have to boot grub2 on EFI mode, legacy boot will not work. Once done, just before the "chainload (hd?,?)/system/library/coreservices/boot.efi" add in the:
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
 
  • Like
Reactions: AppleMacFinder

sodbileg

macrumors newbie
May 23, 2017
4
6
Updated my working Sierra to High Sierra and messed things up. Sleep function and brightness controls didn’t work and tried resetting NVRAM and things got out of control. Going to downgrade to Sierra again. I wouldn’t recommend High Sierra if you really don’t need it. I needed the latest Xcode, so it was kind of necessary for me, and now I regret it.
 
  • Like
Reactions: AppleMacFinder

andrewbender_

macrumors newbie
Apr 9, 2018
1
1
I have a Late 2011 MBP and I completed all the steps in the first post in this thread and now all the green lines are gone and stuff but I'm having a different issue now.. it won't let me boot up my MacBook. it gets about halfway through loading on the boot up apple screen then turns off. It does however let me boot it up in safe mode. while in safe mode it performs very sluggish like. what seems to be the issue? was there a step I seemed to of missed?
 
  • Like
Reactions: AppleMacFinder

AppleMacFinder

macrumors 6502a
Original poster
Dec 7, 2009
796
152
I have a Late 2011 MBP and I completed all the steps in the first post in this thread and now all the green lines are gone and stuff but I'm having a different issue now.. it won't let me boot up my MacBook. it gets about halfway through loading on the boot up apple screen then turns off. It does however let me boot it up in safe mode. while in safe mode it performs very sluggish like. what seems to be the issue? was there a step I seemed to of missed?
Maybe you forgot to remove the AMD drivers? It is mentioned at some part of this instruction, how to move them to another location or remove completely - to prevent them from being loaded
[doublepost=1523399032][/doublepost]
I already did all the step sucessfully, and my macbook is good now, but after restaring, it went back to the apple logo stuck again, anyone know why this happening ? Is it because of crsutil or something that rollback all the change on osx ? Pardon my english, thankss
Its because for some people the original fix from my instruction is quite permanent (thats until you manually reset NVRAM or discharge a battery to zero) but for other people this fix survives only until the reboot. So, you will need to follow the alternative instructions posted at the later pages of this thread - and hopefully they will work for you. At least now you see its possible to bring your MBP to life. Just need to follow the alternative instructions
[doublepost=1523399286][/doublepost]
I have the same problem how do I stop the dGPU from kicking in when I run apps like Google Chrome. I would like the computer to totally ignore it
I think that, when you have installed an app like Google Chrome and ran it for the first time, it detected that your MBP has a dGPU and wrote somewhere to the app configuration files (.plist ?) that its okay to use the dGPU graphics acceleration on your laptop. How to solve? Remove this app completely, including the config files (maybe use some software like CleanMyMac to easily spot the application config files hidden deep in your system, because just dragging your app to trash doesnt remove the configs). Then you install this app again, it sees that you've got an integrated only, writes about it somewhere to its new configs, and now its all good
[doublepost=1523399520][/doublepost]
After the modification, when I insert a cable for external display, mac understands it and the screen flashes but there is no output to the external display. Is it normal the screen flash?
If you need an external display after a fix from this thread, perhaps you will need USB --> HDMI adapter or something similar. People have tested some adapters and posted their results somewhere to this thread (use the thread search tool to find)

[doublepost=1522949735][/doublepost]is it possible to disable all of the AMD kexts after performing the arch Linux procedure...I currently have my mac working off the intel graphics and all is well ...however if I restart the computer it still reloads the AMD drivers and I am back to a non functional machine...is there a work around using terminal seeing as I have access to it right now...I have tried the other fixes on utube but none have worked to get me back to a working desktop...I don't have a lot of experience using terminal but if someone can give me a step by step procedure I would like to give it a try
Sorry for late reply, I was away for a while... If you would look at original instruction, you will see how to move the AMD drivers from their original place to some other directory, so that OS X will not find them while booting and would not load. Its even possible to delete them completely, although it is better to move them just in a case you would need them later

Hope that helps you to advance. By the way, if after completing my original instruction this fix wouldnt be permanent for you (for some people its permanent, for others its not) you would have to complete the alternative instructions posted at the later pages of this looong thread. But I hope you will have a permanent fix since the beginning. Have a nice day
[doublepost=1523399822][/doublepost]
I'm afraid that 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). Can this be the problem that it keeps saying "Operation not permitted"?
sorry for the late reply, could advice three things 1) reset your PRAM / NVRAM / SMC just in case 2) could also fix your corrupted HFS+ partition by some commands like fsck or fsck.hfs although it shouldnt matter 3) try some alternative instructions posted at the later pages of this thread (use a thread search tool at the top of a page to find them)
 

Whaleyland

macrumors newbie
Dec 29, 2008
20
12
So I did everything in this step-by-step guide and my old early 2011 MacBook Pro is technically working now, but it has two interesting new quirks: 1) when it starts up, it displays the code initially before switching to the standard Mac load screen. This doesn't bother me much, but it is a bit strange. 2) I can't shut the Mac down – it just crashes on a black screen (with the cursor still visible). I have had to force shut down the computer every time I have used it since disabling the discrete GPU.

Any tips on how to resolve these issues, especially the second one? The computer is useful now, but I really don't like forcing shut downs if I can avoid it.
 
  • Like
Reactions: AppleMacFinder

AuricBlue

macrumors member
Jan 3, 2007
67
36
My 2011 MacBook Pro recently developed this fault. (I was lucky that it hadn’t happened yet, but I used a laptop cooler under it until about a year ago and I suspect that forestalled the problem...) I found these instructions but they seemed complicated. I eventually stumbled across the following instructions and they were simple and could be done using just single-user mode and single-user recovery mode. They are easily reversed with a file move and a nvram zap.

They even let the dGPU enter low-power mode. I don’t recall having any issues with shutdown.

Also the instructions have you add -v to the boot-args to show the boot text but once it’s working you can remove the -v.

I hope they help:

https://apple.stackexchange.com/questions/267581/gpu-problem-boot-hangs-on-grey-screen/295805#295805
 
  • Like
Reactions: AppleMacFinder

nsgr

macrumors 6502
May 22, 2017
317
117
So I did everything in this step-by-step guide and my old early 2011 MacBook Pro is technically working now, but it has two interesting new quirks: 1) when it starts up, it displays the code initially before switching to the standard Mac load screen. This doesn't bother me much, but it is a bit strange. 2) I can't shut the Mac down – it just crashes on a black screen (with the cursor still visible). I have had to force shut down the computer every time I have used it since disabling the discrete GPU.

Any tips on how to resolve these issues, especially the second one? The computer is useful now, but I really don't like forcing shut downs if I can avoid it.

1 - Finder -> Applications -> Utilities -> Terminal -> shutdown command to restart ou halt/power off Macbook Pro:

Restart Macbook Pro:
Code:
sudo shutdown -r now


Halt / Power off Macbook Pro:
Code:
sudo shutdown -h now


2 - Alternative Restart or Power Off Macbook Pro without freeze black screen (my tests with Sierra and High Sierra):

Apple button (left up corner screen) -> Logout -> back to login screen -> click on Restart button or Shutdown button.

I use this method when I update from the Apple Store or by downloading a .DMG file from the Apple website.

When you start an update, the installation program asks if you want to restart automatically after installation phase 1. Choose "NO".

After the initial installation phase 1, the Restart window will appear -> Do not touch this window -> Apple Logo -> Logout -> back to login screen -> click Restart button and wait 1 minute -> a window will appear saying that has a pending installation -> choose to continue the installation instead of Restart -> start installation phase 2.
 
  • Like
Reactions: AppleMacFinder

Clockwise7

macrumors newbie
Apr 13, 2018
6
4
Barcelona
Hello Everybody....
Another victim here. I have a late 2011 MBP and mine died about a week ago after doing a software update from the app store (dont remenber which one excactly).
It seems some people, especially AppleMacFinder, have spend a lot of time on this. Your work is appreciated a lot.
I will be trying to go through all mentioned steps over the next few days. Problem is my computer does not boot at all (single user mode does work) however i happen to have a partition with windows7 that i can boot in safe mode, screen looks distorted, but it is workable I think.

Is it possible to create the cd/ usb needed with win7 in safe mode(with network capabilities)

Sorry if the question has already been asked before, so far i only had time to read the first 6 pages of this thread.

Thanks in advance!
Tim
 
  • Like
Reactions: AppleMacFinder

GeneralN00b

macrumors newbie
Apr 13, 2018
1
1
Thanks for everyone's contributions to this thread!

I started off with SirMeowington5's method (#528) then finished with Martinaude's steps 8 and higher (#1566) which saved me some time from the longer first-gen solutions. Now my late-2011 El Capitan MBP boots fine, the RadeonX3000.kext automatically loads, and my temps are significantly lowered.

The only issue I have is the computer hangs on a black screen at shutdown. Anyone find a fix for this other than the known terminal commands?

EDIT: The computer also doesn't wake up from sleep closing the lid even after adding pmset -a force gpuswitch 0 to LoginHook.
 
Last edited:
  • Like
Reactions: AppleMacFinder

SkyLinx

macrumors member
Mar 24, 2018
51
11
Espoo, Finland
I have a mid-2010 MBP that had a problem with kernel panics due to the GPU since Mountain Lion I think - before that there was no problem. With some research I found that it was a known problem which for some reason surfaced with newer OS, while the laptop came with Snow Leopard installed. Unfortunately I didn't manage to get the motherboard etc replaced out of warranty... so I have been using this laptop (just to watch videos and nothing else when I am in the kitchen) with Ubuntu Linux installed in BIOS mode (not UEFI), which disables the discrete GPU forcing the use of the Intel integrated GPU only. I can't remember if I had to do something else other than installing in BIOS mode but since then it has been working great for just that usage, with no crashes etc.

However it would be nice to use macOS on it. Would this fix work with this MBP too? What about OS updates? Would I need to do this fix every time? Thanks.
 
  • Like
Reactions: AppleMacFinder

tucpasquic

macrumors newbie
Aug 28, 2009
1
1
Hello

I just the steps and I still have issues.
Note that I just removed my battery a few days ago since it inflated and deformed the case.
The GPU issue is here since a couple of weeks.

So, when I boot on arch Linux, my screen is perfect.
After doing the steps and doing a reboot, I still have the bad display.
Note that while I do not have a battery, I do not unplug between the steps.
(The fact that I lose the setting if I unplug is not so much of a problem as I am first testing if the Intel / display is a working combination for me)

When I go to system preferences, i still have the performance switch, and clicking on it is still changing from Intel to AMD and vice versa.

However, if I alternate the setting, the screen is changing from really bad with a lot of colour artefacts to limited artefacts of only vertical lines. These two kind of artefact can actually happen on both GPUs.

The fact that ArchLinux has a clean display is puzzling me.
 
  • Like
Reactions: AppleMacFinder

Clockwise7

macrumors newbie
Apr 13, 2018
6
4
Barcelona
Hello,
I managed to boot linux in terminal. Here a pic of what I did so far, but i do not find anything related to AMD to removed(i have reset the PRAM before) so I dont know what to remove..
Also when typing reboot&enter, it did not reboot...
Any help very much appreciated...

Tim
AF0480C0-8833-4A14-A10A-A44500CC2A91.jpeg
 
  • Like
Reactions: AppleMacFinder

Dindinmk

macrumors newbie
Apr 16, 2018
3
1
I have follow all instructions and it looks like the problem solved until system boot hang halfway and it works only in safe boot.

what should i do? please help.

Im using macbook pro 17" late 2011 with amd gpu.
[doublepost=1523868140][/doublepost]It all works until steps 3, it hang halfway and only works in safe boot


3) Eliminate AMD Kexts (Credits to newfield),
Note: You might need to do this every time you do an OS updates, since each update normally writes the AMD Kexts again.


(His words and this also happened to me!: After disabling the dGPU using Arch, normal boot would hang halfway. Although safe boot would work. I wound up having to remove all the AMD kext files in the Terminal in Recovery Console)


Trying to remove them in Single User just gave me sandbox errors. (Summary -> Don’t do it in Single User Mode the one that you boot with Cmd + S)


3.1) So what you have to do is:

If you have FileVault Unlock it first:

Unlock first.

Then Boot into Recovery (“cmd + r”, it will boot without failing, if it fails then repeat step 2 and then after that boot directly into recovery with command + R, I had to do this once because the dGPU got active again after booting into the os with AMD kexts)

*) Boot into recovery mode (Command + r)

*) Start Terminal

*) diskutil cs list (find UUID for drive)

*) diskutil coreStorage unlockVolume UUID

*) cd /Volumes/Macintosh\ HD

*) mkdir AMD_Kexts

*) mv System/Library/Extensions/AMD*.* AMD_Kexts/

*) reboot


The Result just like the pict i enclosed,

What should i do next? please
 

Attachments

  • IMG_20180416_132546.jpg
    IMG_20180416_132546.jpg
    330.9 KB · Views: 150
  • Like
Reactions: AppleMacFinder

horatiocox

macrumors newbie
Apr 16, 2018
3
3
My macbook gpu is dead to the point where I get a white screen shortly after booting and consequently am unable to boot to a bootable usb or disk. Have you got any recommendations for how I can get round this to switch of the AMD gpu?
 
  • Like
Reactions: AppleMacFinder

Clockwise7

macrumors newbie
Apr 13, 2018
6
4
Barcelona
Hello again,

Im making progress, I think.....

I can not use the chattr command, reply is “sh: chattr: not found”, see my picture below.

I think mayby arch linux is not booting correctly, because there are some error messages like:sh: can’t access tty; job control turned off

I can create the printf “\x07.......
When I check ls, I can see the new gpu-power-pref.....
But for some reason I can not use the chattr command...

Time to make a new boot cd maybe?
 

Attachments

  • 4A60B9EB-71A7-4E68-B328-85B33DBE5E4F.jpeg
    4A60B9EB-71A7-4E68-B328-85B33DBE5E4F.jpeg
    902.5 KB · Views: 145
  • Like
Reactions: AppleMacFinder

nsgr

macrumors 6502
May 22, 2017
317
117
I have follow all instructions and it looks like the problem solved until system boot hang halfway and it works only in safe boot.

what should i do? please help.

Im using macbook pro 17" late 2011 with amd gpu.
[doublepost=1523868140][/doublepost]It all works until steps 3, it hang halfway and only works in safe boot


3) Eliminate AMD Kexts (Credits to newfield),
Note: You might need to do this every time you do an OS updates, since each update normally writes the AMD Kexts again.


(His words and this also happened to me!: After disabling the dGPU using Arch, normal boot would hang halfway. Although safe boot would work. I wound up having to remove all the AMD kext files in the Terminal in Recovery Console)


Trying to remove them in Single User just gave me sandbox errors. (Summary -> Don’t do it in Single User Mode the one that you boot with Cmd + S)


3.1) So what you have to do is:

If you have FileVault Unlock it first:

Unlock first.

Then Boot into Recovery (“cmd + r”, it will boot without failing, if it fails then repeat step 2 and then after that boot directly into recovery with command + R, I had to do this once because the dGPU got active again after booting into the os with AMD kexts)

*) Boot into recovery mode (Command + r)

*) Start Terminal

*) diskutil cs list (find UUID for drive)

*) diskutil coreStorage unlockVolume UUID

*) cd /Volumes/Macintosh\ HD

*) mkdir AMD_Kexts

*) mv System/Library/Extensions/AMD*.* AMD_Kexts/

*) reboot


The Result just like the pict i enclosed,

What should i do next? please


The answer is in your photo. The name of the Volume is "Mindasari HD".

cd /Volumes/Macintosh\ HD -> no such file or directory. Does not exist on your hard disk the name/label "Macintosh HD"


cd /Volumes/Mindasari\ HD

mkdir AMD_Kexts

mv System/Library/Extensions/AMD*.* AMD_Kexts/

reboot
[doublepost=1523905133][/doublepost]
Hello,
I managed to boot linux in terminal. Here a pic of what I did so far, but i do not find anything related to AMD to removed(i have reset the PRAM before) so I dont know what to remove..
Also when typing reboot&enter, it did not reboot...
Any help very much appreciated...

Tim View attachment 758461

Your ArchLinux is full of I / O Error. The ISO image (ArchLinux) you downloaded is corrupted or you did some wrong procedure when making a bootable disc.


After download archlinux-2017.03.01-dual.iso 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 may freeze at boot time (Safe Mode). There were changes in the HighSierra in relation to the AMD kexts loaded during the Safe Mode.

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


3 - Follow this Guides:

Follow The Guide MikeyN to deacrese AMD GPU and System temperature - Page 35 - #875

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
 
Last edited:

CatapultJesus

macrumors newbie
Aug 17, 2017
6
1
I performed this on my 2011 awhile back when this thread was just 12 pages long. Recently I had the thought to turn this Macbook into a minimalist thing and get rid of all the software bloat that has accumulated over a while, so I kind of want to do an Erase and Install (to Sierra) and start over. But...

After erasing, will the install process want to use my dGPU and crash the whole thing before I can even get it going?

And I see there's been a lot of amendments as everyone has worked on this over the last 55 pages since I was last here... has there been any kind of definitive "easiest way to do this" guide developed since then?
 
  • Like
Reactions: AppleMacFinder

Vincente_S

macrumors newbie
Aug 27, 2017
2
1
Quick question, used MikeyN's tutorial for over a year now, my laptop runs without a hitch. However, I recently purchased some software via Apple and must be on the latest version of OS X to redeem my software via the App Store. Does updating the OS to 10.13.2 revert any of these efi changes made? I'm currently on 10.12.6.
 
  • Like
Reactions: AppleMacFinder

Christopfhe

macrumors newbie
Mar 10, 2018
19
14
Paris
Since I made this fix, my mbpro is usable, I can see the AMDRadeonX3000.kext in the "extensions-off" directory, however, I can also seeing this file in the extensions directory : AMDRadeonX3000GLDriver.bundle, should I move this file away from the extension's directory ? thanks a lot
 
  • Like
Reactions: AppleMacFinder
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.