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.

xanderx007

macrumors 6502
Nov 7, 2017
262
140
I had similar experiences, but after going through this a few times, I seem to have resurrected my machine so that it will survive reboots. By the way, my machine is a 15”, late 2011 Mcbook Pro running High Sierra. My thanks to all who have pioneered this process and even more importantly, took the time to document it and share with all of us.

I do have 2 questions for others who have succeeded with this process:

1. Can you sleep your machine? Shutting the lid or manually trying to put mine to sleep via the Apple menu seems to have no effect.

2. My brightness keys on the keyboard no longer seem to have any effect. My screen is bright enough to be usable, but since I can’t “sleep” it, I thought i’d Use the brightness keys to turn off the screen. No dice, hitting the keys, either increase or decrease has no effect.

Are others experiencing this and if so, has anyone found aa fix for either. Note that if this is discussed in one of the earlier 56 pages and I have missed it, I apologize.

This was addressed in the Grub solution discussion. High Sierra has that brightness issue regardless if you're using the EFI or GRUB fix (if I am not mistaken). The best thing for you to do is downgrade to Sierra, since there's nothing really new with High Sierra anyway.
[doublepost=1516246920][/doublepost]
is it possible to run the the install cd without getting the grey screen?
I think I have a corrupted filesystem that won't boot anymore after I messed around with the kexts but I can't run the el capitan installation usb/cd
Same goes for recovery mode or timemachine disk

Try this first: Boot into Single User Recovery Mode (Cmd-S-R) or Single User Mode (Cmd-S) and fix the disk via command line.

http://www.everythingmacintosh.com/tech-notes/repair-your-hard-disk-in-single-user-mode/

This should repair/rebuild the hard disk if the only problem is the OS. If the repair fails, then consider reinstalling the OS. If you can't reinstall the OS, it's probably the hard drive.
 

clement.wahl

macrumors newbie
Jan 18, 2018
1
0
Hey Guys,

First of all, i intend to thank you all for the time you spent fixing this graphic card issue. I started to try to fix my macbook pro late 2011 17 inches this morning.

First of all: trying to do this: 2.2) 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).
I get: cd:cd:6: string not in pwd: /sys/firmware/efi/efivars

I decide to ignore it

In a second time i do: *) rm gpu-power-prefs-…
i get: cannot remove because no such file directory
My guess is I have not the gnu power prefs file so i get to step 2.3) Create a new gpu-power-prefs-… file (Original credit mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch, Credits to AppleMacFinder):

I get: operation not permitted so i do the step:

To remove “gpu-power-prefs-..." variable it is necessary first of all to unmount efivars:

*) umount /sys/firmware/efi/efivars/

then mount efivars in read/write mode:

*) mount –t efivarfs rw /sys/firmware/efi/efivars/

*) chattr -i /sys/firmware/efi/efivars/gpu-power-prefs-[press TAB to autocomplete]

*) rm /sys/firmware/efi/efivars/gpu-power-prefs-[press TAB to autocomplete]

then i was able to do

2.3) Create a new gpu-power-prefs-… file (Original credit
mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch, Credits to AppleMacFinder):

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


2.4) Add immutability to the gpu-power-prefs-… file (Credits to AppleMacFinder):

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


*) chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"

and then:

2.5) Unmount efivars and reboot (Credits to AppleMacFinder):

Could not unmount efivars if you are inside this directory, so change to the root directory

*) cd /

*) umount /sys/firmware/efi/efivars/

Guarantees that your EFI variables are flushed to efivarfs filesystem, please unmount it safely before rebooting)

*) reboot

All my code lines i did step by step was in the root:

root@archiso / #

I don't know if its ok

I so Reboot into recovery mode and do this: I need to precise that i have a SSD drive one partition



*) Start Terminal
ok

*) Boot into recovery mode (Command + r)
ok

*) Start Terminal
ok

*) diskutil cs list (find UUID for drive)
i get: no CoreStorage logical volume found

*) diskutil coreStorage unlockVolume UUID
i get: UUID is not a CoreStorage Logical Volume UUID

*) cd /Volumes/Macintosh\ HD
I get: no such file or directory

*) mkdir AMD_Kexts
i get: Read-Only file system

*) mv System/Library/Extensions/AMD*.* AMD_Kexts/
I get: No such file or directory

*) reboot
I can reboot and get my old macbook pro 2011 late back. Youpiiiii. I use it couple minutes and tried to restart it and I got my screen scratched ....

I a very welcoming ideas to fix it? I think it is the last step i do wrong but i don't know how to fix it.

Again thank you very much for your help.
Great day to all of you

Clément.Wahl

 

spinko

macrumors regular
Sep 16, 2003
162
0
N hemisphere
Hi,
Is anyone else having problems with the Macbook not waking from sleep after the EFI vars patch ? My MbP refuses to activate itself after sleep. Is there a work around ?
thank's

(running High Sierra)
 

xanderx007

macrumors 6502
Nov 7, 2017
262
140
Hi,
Is anyone else having problems with the Macbook not waking from sleep after the EFI vars patch ? My MbP refuses to activate itself after sleep. Is there a work around ?
thank's

(running High Sierra)

Again, issues with High Sierra (screen brightness, sleep and shutdown problems) are discussed with the GRUB solution thread. High Sierra is problematic, with no clear advantage over earlier OS. You don't really need it, so it's suggested you downgrade to Sierra at most.
 
  • Like
Reactions: AppleMacFinder

halfmoonjaw

macrumors newbie
Jan 18, 2018
1
1
MT, Malta-EU
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=1516298464][/doublepost]Thank you AppleMacFinder and totoe84 for bringing this solution via Arch Linux to us orphaned MBP 2011 owners. It's a relief to manage to tweak the firmware to bypass the defunct AMD GPU.

Following this procedure brought back some stability(abt 60%) to my work environment as due to my being a regular user of the Adobe CC suite of applications, which call up the accelerated graphics procssing engine, when I load LR Classic or PS, AE, or PPro, the MBP first freezes then crashes needing a recovery process. To solve some of the crashes, in the preferences tab of each of these CC apps, i have had to disable the use of accelerated graphcis engine but somehow the About pop-up still showed that the AMD is active when a CC app is running. Does anyone have a software based nuclear option to kill the machine calls from the CC apps to a dead chip?

I use the Adobe CC daily and have done so for 6 uniniterrupted years on my 17 Inch, i7-2.2 GHz, Anti-Glare, early 2011 MBP which way back then cost me over $3k.

I think that it is a real shame that Apple have declared this series as obsolote (no service, parts or support) even if paradoxically it is termed by Apple as compatible with macOS High Sierra. The least we should expect is a revival of the logic board replcement program for another 3 years, when the issue is just the GPU.

This one-sided product lifecyle policy does not bode well for Apple users like me who are considering a tech refresh.

#orphanedbyApple
 
  • Like
Reactions: AppleMacFinder

MenloMan

macrumors newbie
Jan 20, 2018
3
0
Hi there, this may be a silly question, but how do I know it’s the AMD GPU that is the problem and not the Intel one? Is it always the AMD that’s the problem?

I have a Late 2011 17” MBP (two of them actually), and they are not booting properly. Most often, boot hangs at the Apple logo with the progress bar at about 25-33%. Sometimes I get a horizontal stipe about a quarter inch wide above the Apple logo. One time, I got a black screen with white pinstripes.

I had a feeling it was the GPU (I had a similar problem years ago with my 2008 17” MBP), but thought it was odd that this would happen to two computers a day apart.

I took them to the Apple Store, and they said both have bad GPU’s (said both failed the “vst” test) and that I have to replace the logic board at about $600 per computer. [Oddly, the person next to me at the Genius Bar also brought in his 17” MBP with the same problem.]

If the logic board needs to be changed, doesn’t that indicate that the integrated Intel GPU is the problem not the discreet AMD? Or is logic board replacement the recourse for a bad AMD GPU as well.

Do you think the instructions in the original post here will help me? Can I “undo” the changes if they cause problems?

Thanks you!
 

Djfremen

macrumors newbie
Apr 3, 2013
16
1
Is it always the AMD that’s the problem?
Yes. It's always the soldered connection and poor thermal design of the AMD chip - similar situation with the 2008 nVidia chip.

If the logic board needs to be changed, doesn’t that indicate that the integrated Intel GPU is the problem not the discreet AMD? Or is logic board replacement the recourse for a bad AMD GPU as well.
Since Apple's standard warranty procedure is to replace boards (main components) and not troubleshoot integrated chips, to fix the AMD GPU, the board is entirely replaced. Interestingly, even if you did pay the 600, the replacement is a ticking time-bomb and the issue would repeat at a future date. The replacement still contains the defect.

Do you think the instructions in the original post here will help me?

Yes. However, I had some issues creating the archlinux USB and removing the efivars preference (I needed to remount a few times)

Can I “undo” the changes if they cause problems?

Yep. I went a step further and removed the resistor to completely disable the nVidia chip. Google "r8911 removal" to use in conjunction.

Keep in mind, if you're running High Sierra (10.13), you'll break hibernate / sleep and display brightness adjustment. No work around as of yet... Stay tuned though, checking with the hackintosh community for a deviceID fix.
 
  • Like
Reactions: AppleMacFinder

xanderx007

macrumors 6502
Nov 7, 2017
262
140
If the logic board needs to be changed, doesn’t that indicate that the integrated Intel GPU is the problem not the discreet AMD? Or is logic board replacement the recourse for a bad AMD GPU as well.

It's often always the dGPU that has problems, as proven by majority of those experiencing the same symptoms as your MBP. The Intel iGPU is rather efficient and reliable. If the iGPU is faulty, your MBP won't probably start up, since the OS search of the iGPU primarily during boot up.

Do you think the instructions in the original post here will help me? Can I “undo” the changes if they cause problems?

You wouldn't know until you try, won't you? I mean, what else is there for you to worry about. If you've read through the responses, a lot of people have applied the fix successfully.

As far as undoing the process, a simple SMC reset undoes everything you've done. The EFI fix, in my case, is unstable, after doing it a few times. The Grub fix is more reliable and stable.
 
Last edited:
  • Like
Reactions: AppleMacFinder

AppleMacFinder

macrumors 6502a
Original poster
Dec 7, 2009
796
152
Just out of interest can anyone speculate how easy it would be for Apple to create some sort of preference pane to select integrated only graphics? I mean cost in terms of man hours to write the code?
I am not familiar with OS X source code, do not know how its easy/difficult to make such changes, perhaps it should be about 1 hour to do it carefully and correctly, then maybe a couple of hours to test it at various macs. But apple hopes you buy a new mac when your old dies, and its not economically efficient for them to add such a preference pane ;)
 

dapmaz

macrumors newbie
Jan 21, 2018
1
1
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=1516536931][/doublepost]MY COMPUTER WAS READY FOR THE BIN!! YOU SAVED IT!! THANKS SOOOO MUCH FOR SHARING THIS!
 
  • Like
Reactions: AppleMacFinder

MenloMan

macrumors newbie
Jan 20, 2018
3
0
If the iGPU is faulty, your MBP won't probably start up, since the OS search of the iGPU primarily during boot up.

Thank you all for your replies. Of note, my computer doesn’t boot up.

The GRUB fix can be reversed easily as well?

Does it have High Sierra sleep problems too? [edit: looks like the answer to my last question is yes on sleep issues for GRUB as well]
 

xanderx007

macrumors 6502
Nov 7, 2017
262
140
Thank you all for your replies. Of note, my computer doesn’t boot up.

The GRUB fix can be reversed easily as well?

Does it have High Sierra sleep problems too? [edit: looks like the answer to my last question is yes on sleep issues for GRUB as well]

Both EFI and GRUB solutions have issues with High Sierra, but frankly, there's really nothing significan't different between HS and Sierra. In fact, since I don't really need it, my MBP is still on El Capitan. I didn't bother upgrading since all the apps I need still works.

Simply removing the GRUB entry should reverse the process, but, I'm wondering why would you want to?
 
  • Like
Reactions: AppleMacFinder

druwin

macrumors newbie
Jan 22, 2018
3
2
open

File%20Jan%2022%2C%208%2056%2003%20AM.jpeg

HELP!

I’ve got two MBP on that is not even booting anymore and on that is going out.
2011 and even a 2010 doing the same thing.

I was lucky to get the 2011 under apples recall or whatever they called it and got maybe a year out of the logic board replacement and now I’m in the same place as everyone in this board.

The confusing part of the solution is there is three different concepts with the final one being a Linux code solution.

Thing is for the layman who has no coding it’s very Greek! No offense as it seems helpful to most but not as simple for me.

If someone can please look at my screen shot and help me with what I might be doing wrong? FYI I’m using. USB thumb drive so I’m not certain why I would use CD/ ?? I tried that as well but did not seem to do anything.
I did reboot from Linux and checked and nothing happened GFX still offers Discreet!

I did do the pref ls and see I did seem to have that preference already in one computer.

If someone can really speak very simple to me and actually copy and or paste and or write a very simple code steps so that I might actually record a video on how this is actually done so that everyone else can have a better visual of how it’s done.

FYI

With the current Linux ISO it seems to go directly into coding interface so the steps to press e or c and the nocodeset seem confusing as well.

Please could use some help here and again if I can get some walk thru advice based on my current screenshot I will for sure do a video of fixing this MBP!
 

Attachments

  • 86177457-2501-402E-92D5-C0CDFF1CF1E0.jpeg
    86177457-2501-402E-92D5-C0CDFF1CF1E0.jpeg
    1.9 MB · Views: 767
  • Like
Reactions: AppleMacFinder

dpostelnicu

macrumors newbie
Jan 22, 2018
1
0
open

File%20Jan%2022%2C%208%2056%2003%20AM.jpeg

HELP!

I’ve got two MBP on that is not even booting anymore and on that is going out.
2011 and even a 2010 doing the same thing.

I was lucky to get the 2011 under apples recall or whatever they called it and got maybe a year out of the logic board replacement and now I’m in the same place as everyone in this board.

The confusing part of the solution is there is three different concepts with the final one being a Linux code solution.

Thing is for the layman who has no coding it’s very Greek! No offense as it seems helpful to most but not as simple for me.

If someone can please look at my screen shot and help me with what I might be doing wrong? FYI I’m using. USB thumb drive so I’m not certain why I would use CD/ ?? I tried that as well but did not seem to do anything.
I did reboot from Linux and checked and nothing happened GFX still offers Discreet!

I did do the pref ls and see I did seem to have that preference already in one computer.

If someone can really speak very simple to me and actually copy and or paste and or write a very simple code steps so that I might actually record a video on how this is actually done so that everyone else can have a better visual of how it’s done.

FYI

With the current Linux ISO it seems to go directly into coding interface so the steps to press e or c and the nocodeset seem confusing as well.

Please could use some help here and again if I can get some walk thru advice based on my current screenshot I will for sure do a video of fixing this MBP!
 

hillsy80

macrumors newbie
Jan 23, 2018
1
0
London
@AppleMacFinder
I've just completed the fix on my 17" MBP 2011 and it has saved my machine! Thank you so much for sharing this - it's the second time my GPU has gone and this time Apple wouldn't replace the logic board as the replacement programme is over.
One question I did have - I'm running High Sierra and there is a new update available. If I update it will I need to run the fix again or is it a permanent change to the hardware?
Yours gratefully,
Pete
 

salmanhudaya

macrumors newbie
Jan 24, 2018
1
1
OMG !! It's working !! Thank you very much !!

MacBook Pro 8,3

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...

===
 
  • Like
Reactions: AppleMacFinder

hdn.hrt

macrumors newbie
Jan 23, 2018
2
1
Hey Guys,

First of all, i intend to thank you all for the time you spent fixing this graphic card issue. I started to try to fix my macbook pro late 2011 17 inches this morning.

First of all: trying to do this: 2.2) 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).
I get: cd:cd:6: string not in pwd: /sys/firmware/efi/efivars

I decide to ignore it

In a second time i do: *) rm gpu-power-prefs-…
i get: cannot remove because no such file directory
My guess is I have not the gnu power prefs file so i get to step 2.3) Create a new gpu-power-prefs-… file (Original credit mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch, Credits to AppleMacFinder):

I get: operation not permitted so i do the step:

To remove “gpu-power-prefs-..." variable it is necessary first of all to unmount efivars:

*) umount /sys/firmware/efi/efivars/

then mount efivars in read/write mode:

*) mount –t efivarfs rw /sys/firmware/efi/efivars/

*) chattr -i /sys/firmware/efi/efivars/gpu-power-prefs-[press TAB to autocomplete]

*) rm /sys/firmware/efi/efivars/gpu-power-prefs-[press TAB to autocomplete]

then i was able to do

2.3) Create a new gpu-power-prefs-… file (Original credit
mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch, Credits to AppleMacFinder):

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


2.4) Add immutability to the gpu-power-prefs-… file (Credits to AppleMacFinder):

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


*) chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"

and then:

2.5) Unmount efivars and reboot (Credits to AppleMacFinder):

Could not unmount efivars if you are inside this directory, so change to the root directory

*) cd /

*) umount /sys/firmware/efi/efivars/

Guarantees that your EFI variables are flushed to efivarfs filesystem, please unmount it safely before rebooting)

*) reboot

All my code lines i did step by step was in the root:

root@archiso / #

I don't know if its ok

I so Reboot into recovery mode and do this: I need to precise that i have a SSD drive one partition



*) Start Terminal
ok

*) Boot into recovery mode (Command + r)
ok

*) Start Terminal
ok

*) diskutil cs list (find UUID for drive)
i get: no CoreStorage logical volume found

*) diskutil coreStorage unlockVolume UUID
i get: UUID is not a CoreStorage Logical Volume UUID

*) cd /Volumes/Macintosh\ HD
I get: no such file or directory

*) mkdir AMD_Kexts
i get: Read-Only file system

*) mv System/Library/Extensions/AMD*.* AMD_Kexts/
I get: No such file or directory

*) reboot
I can reboot and get my old macbook pro 2011 late back. Youpiiiii. I use it couple minutes and tried to restart it and I got my screen scratched ....

I a very welcoming ideas to fix it? I think it is the last step i do wrong but i don't know how to fix it.

Again thank you very much for your help.
Great day to all of you

Clément.Wahl

Hi there ! Had the same problem with the kexts. I don't know if it's a safe way to do it, but i executed the same commands within macos, because I was able to boot and quickly activate Gfxcardstatus. It did the trick, but I had to do the whole Archlinux process again afterwards.
 

hdn.hrt

macrumors newbie
Jan 23, 2018
2
1
Hi everyone, it's my second message on this forum, I first wanted to thank all the people involved in this thread. Thanks to AppleMacFinder's magic trick, my 2011 MacBook Pro is working again.
I do still have a question, though. I followed AppleMacFinder's solution, but experience since then the overheating issue, raised by nsgr. MikeyN's guide states that the only necessary kext to move is AMDRadeonX3000, but i did move all the AMD kexts like the original post recommended. Like I said in my previous post, I moved them while logged in my session, which apparently messed with the permissions (I already had problems moving the kext in Safe User Mode). I tried to move back the AMD kexts but faced a system error. In the Terminal, I get this message when I want to perform "kextload" :

/System/Library/Extensions_off/AMDRadeonX3000.kext failed to load - (libkern/kext) not privileged; check the system/kernel logs for errors or try kextutil(8).

Does anyone, by chance, know how I could solve this problem and lower the temperature of my machine ?
Thanks again for all your help.
Cheers,
Hadrien
 
  • Like
Reactions: AppleMacFinder

MrAverigeUser

macrumors 6502a
May 20, 2015
895
397
europe
Hi everyone, it's my second message on this forum, I first wanted to thank all the people involved in this thread. Thanks to AppleMacFinder's magic trick, my 2011 MacBook Pro is working again.
I do still have a question, though. I followed AppleMacFinder's solution, but experience since then the overheating issue, raised by nsgr. MikeyN's guide states that the only necessary kext to move is AMDRadeonX3000, but i did move all the AMD kexts like the original post recommended. Like I said in my previous post, I moved them while logged in my session, which apparently messed with the permissions (I already had problems moving the kext in Safe User Mode). I tried to move back the AMD kexts but faced a system error. In the Terminal, I get this message when I want to perform "kextload" :

/System/Library/Extensions_off/AMDRadeonX3000.kext failed to load - (libkern/kext) not privileged; check the system/kernel logs for errors or try kextutil(8).

Does anyone, by chance, know how I could solve this problem and lower the temperature of my machine ?
Thanks again for all your help.
Cheers,
Hadrien
download and install MacFanControl (I use this, but there might be other apps as well)

Then adjust both the PECI CPU core which is the hottest and PECI GPU to:

minimum temp. about 49°C and a max of about 60°C

normally, the fans will start very soon to go up in rpm and so PREVENT higher temp. they will sooner go up to higher rpm but as a result of prophylactic settings also definitely prevent higher temps and very soon fall back to nearly normal temperatures and rpm...
I did this about a year ago and I am very pleased by this method.It works for each 15" MBP 2009, MBP 2011 and also MBP 2012
BTW: the idle rpm is about 2000 rpm, but even 3000 rpm is absolutely silent!
 

nsgr

macrumors 6502
May 22, 2017
317
117
Hi everyone, it's my second message on this forum, I first wanted to thank all the people involved in this thread. Thanks to AppleMacFinder's magic trick, my 2011 MacBook Pro is working again.
I do still have a question, though. I followed AppleMacFinder's solution, but experience since then the overheating issue, raised by nsgr. MikeyN's guide states that the only necessary kext to move is AMDRadeonX3000, but i did move all the AMD kexts like the original post recommended. Like I said in my previous post, I moved them while logged in my session, which apparently messed with the permissions (I already had problems moving the kext in Safe User Mode). I tried to move back the AMD kexts but faced a system error. In the Terminal, I get this message when I want to perform "kextload" :

/System/Library/Extensions_off/AMDRadeonX3000.kext failed to load - (libkern/kext) not privileged; check the system/kernel logs for errors or try kextutil(8).

Does anyone, by chance, know how I could solve this problem and lower the temperature of my machine ?
Thanks again for all your help.
Cheers,
Hadrien

"MikeyN's guide states that the only necessary kext to move is AMDRadeonX3000, but i did move all the AMD kexts like the original post recommended."

MikeyN did not write that by "accident". This procedure is highly necessary to lower the temperature of Macbook Pro.

These AMD kexts need to be loaded during boot so that the temperature of the Macbook Pro decreases properly.

Inside /System/Library/Extensions:

AMDLegacySupport.kext
AMDSupport.kext
AMDLegacyFramebuffer.kext
AMDFramebuffer.kext
AMD6000Controller.kext

Inside /System/Library/Extensions_off (Loaded manually or by LoginHook):
AMDRadeonX3000.kext

kextload require sudo command first (loaded manually in Terminal). Read The Guide MikeN.
Code:
sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

"Like I said in my previous post, I moved them while logged in my session"
Why? -----> Follow The Guide MikeN. (boot Single User Mode -> Command + S)

The Guide MikeN - #875

When you boot into Single User Mode you are logged in as the root user (system administrator).
Then when you move the AMDRadeonX3000.kext, permissions are maintained properly.

Restore permissions - example AMDRadeonX3000.kext

owner: root
group: wheel

Code:
sudo chmod -R 755 /System/Library/Extensions_off/AMDRadeonX3000.kext
sudo chown -R root:wheel /System/Library/Extensions_off/AMDRadeonX3000.kext
 
Last edited:
  • Like
Reactions: AppleMacFinder

TheQL

macrumors newbie
Jun 16, 2009
5
2
Germany
I was successful in the past by booting into single user mode and removing the kext and setting the nvram parameter
Code:
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00"

Now during the latest additional update to 10.13.2 all got messy. The Mac hung during the update and all my following efforts went awry. "cmd s + r" did work and I disabled csrutil. But then in single user mode "cmd s" mode it couldn't mount / and I was stuck in some mounted dmg, so mostly rescue mode again, no real FS access. Not sure if that was caused by the updated being half complete. I didn't dare to try to boot single user mode right now, because it's currently running.

Anyway, I tried to set the nvram parameter nevertheless, but it never showed with "nvram -p". I could of course not remove the kext again, as / was not available. I got lucky then and on reboot it just booted, using the discrete graphics. Which was pretty nice, because automatic brightness control now works again, but the machine crashes if you open Photoshop, for example. Probably because it tries to use OpenCL or something. Yet it survived a reboot and is still running on the AMD graphics.

Now I am afraid of the 10.13.3 update. csrutil is still disabled. Not sure if I should remove the kext while the system is running, which it is or if that would even work. Try to set nvram again while booted, which should work, it shouldn't be required to be in single user mode for that. If anybody could hint how to proceed in the current situation, I'd be grateful!
 
Last edited:
  • Like
Reactions: AppleMacFinder

xanderx007

macrumors 6502
Nov 7, 2017
262
140
I was successful in the past by booting into single user mode and removing the kext and setting the nvram parameter
Code:
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00"

Now during the latest additional update to 10.13.2 all got messy. The Mac hung during the update and all my following efforts went awry. "cmd s + r" did work and I disabled csrutil. But then in single user mode "cmd s" mode it couldn't mount / and I was stuck in some mounted dmg, so mostly rescue mode again, no real FS access. Not sure if that was caused by the updated being half complete. I didn't dare to try to boot single user mode right now, because it's currently running.

Anyway, I tried to set the nvram parameter nevertheless, but it never showed with "nvram -p". I could of course not remove the kext again, as / was not available. I got lucky then and on reboot it just booted, using the discrete graphics. Which was pretty nice, because automatic brightness control now works again, but the machine crashes if you open Photoshop, for example. Probably because it tries to use OpenCL or something. Yet it survived a reboot and is still running on the AMD graphics.

Now I am afraid of the 10.13.3 update. csrutil is still disabled. Not sure if I should remove the kext while the system is running, which it is or if that would even work. Try to set nvram again while booted, which should work, it shouldn't be required to be in single user mode for that. If anybody could hint how to proceed in the current situation, I'd be grateful!


If you've read the other, most recent comments here (around 5 pages or so ago), and the GRUB solution thread, you would have seen comments regarding High Sierra. It's not friendly to both EFI and GRUB fixes, for one, there's the screen brightness issue. I've also mentioned that if you're already in Sierra, or still in El Capitan (as I am) there's really no need to upgrade to HS since it offers no clear benefit and advantage.

Also, HS might be coded a little bit differently that the usual fixes no longer work, as shown with the GFXcardStatus issues.

If you can, downgrade to Sierra. You don't need HS, especially with an old MBP.
 
  • Like
Reactions: AppleMacFinder

hprueba

macrumors newbie
Jan 26, 2018
2
0
If you don't have time to read my story (which also describes some interesting technical approaches) just scroll down this thread until a "100% WORKING SOLUTION" text

Discrete AMD GPU of my 2011 MacBook Pro 8,2 has finally failed because of the reasons mentioned here ( http://logicboardmac.blogspot.ru/ ) and there ( https://www.macrumors.com/2015/02/19/2011-macbook-pro-repair-program-apple/ ) . It has been working perfectly for 6 years under quite a high load, even tried SETI@HOME mining at background! So I was confident that my MBP is not affected by bad solder / bad soldering quality and didn't want to bring it to Apple for a free repair program - partially because couldn't find the time to pause my important software projects, partially because I was afraid that Apple might give me a less reliable logic board or refuse a free repair because of the several unrelated repairs that I did manually by myself earlier to save money: changed thermal paste a few times, replaced the internal battery 2 times, replaced a keyboard with broken buttons, etc. But it finally broke down last week: laptop's screen image became distorted, it refused to boot OS X (always freezing half-way), and - Apple free repair program has already ended! I know there are affordable solutions like $50 BGA resoldering at unofficial local repair shop and that its possible to get a new replacement HD 6750M chip from AliExpress for $35 or cheaper ( http://www.aliexpress.com/item/DC-2...0028-216-0810028-BGA-Chipset/32764872143.html or https://www.aliexpress.com/item/DC-2015-New-216-0810001-216-0810001-Graphic-Chipset/32718112928.html , because don't know if this is true - https://www.rossmanngroup.com/board...0604-replace-216-0810005-gpu-with-216-0810028 ) to guarantee a successful repair, so the total price of repair would be either $50 or $50+$35=$85 - less than $100 in any case. But I don't like investing money to the old computers, so I have thought - what if there is some hack to force MBP to use integrated graphics ALL THE TIME, even while booting ? And then started to explore the possible solutions...

===

First of all, it is possible to successfully boot a MBP to OS X while still using the failed GPU, after you remove the AMD drivers by booting in command line mode (CMD+S) and entering these commands:
1) fsck -fy (to check a disk)
2) mount -uw / (mount a root filesystem with read/write permissions)
3) sudo mkdir /AMD_Kexts/ (make a directory to store the AMD drivers in case you'll need them in future)
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ (move the AMD drivers)
5) sudo rm -rf /System/Library/Caches/com.apple.kext.caches/ (remove the AMD drivers cache)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/ (just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X)
7) sudo touch /System/Library/Extensions/ (to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt)
8) sudo umount / (umount a partition to guarantee that your changes are flushed to it)
9) sudo reboot

The degree of your inconvenience while doing these steps - strongly depends on how heavily a screen's image is distorted in your case. In my case it was even more difficult because the OS X partition became a "read-only" partition (because of too many emergency shutdowns I did while desperately trying to boot OS X with a failed GPU) so I had to remove a hard drive from MacBook Pro and (using a USB to SATA 2.5" adapter taken from my portable HDD) attached it to a computer with Linux, then followed these instructions:

https://superuser.com/questions/961401/mounting-hfs-partition-on-arch-linux (1st answer) - carefully executed a number of commands, calculated a sizelimit for my parition layout, and finally ran sudo mount -t hfsplus -o force,rw,sizelimit=YOURNUMBER /dev/sdb2 /mnt to mount this HFS+ partition to /mnt directory in read-write mode. Then I performed these "1)-7)" steps you see above, and also repaired a filesystem by running sudo fsck.hfsplus -f /dev/sdb2 before unmounting a partition with sudo umount /mnt and putting a hard drive back to MBP...

===

This gave me a MBP which could boot to OS X although STILL using a broken AMD GPU: so it screen's image is very distorted (could browse the Internet but quite inconvenient to read a text), Launchpad is super laggy, and you can't switch to Integrated GPU using gfxCardStatus because: without AMD drivers (which we had to remove to successfully boot to OS X) Macbook Pro thinks its' internal screen is External Display and gfxCardStatus tells it is impossible to switch because External Display is using AMD GPU. Somewhere I found a suggestion that it is possible to rebuild a gfxCardStatus from the source code - https://github.com/codykrieger/gfxCardStatus - with removed or commented out 156-166 lines in the ./gfxCardStatus/Classes/GSProcess.m to make it to ignore the external display:

// find out if an external monitor is forcing the discrete gpu on
CGDirectDisplayID displays[8];
CGDisplayCount displayCount = 0;
if (CGGetOnlineDisplayList(8, displays, &displayCount) == noErr) {
for (int i = 0; i < displayCount; i++) {
if ( ! CGDisplayIsBuiltin(displays))
[list addObject:[NSDictionary dictionaryWithObjectsAndKeys:
Str(@"External Display"), kTaskItemName,
@"", kTaskItemPID, nil]];
}
}


So I rebuilt a gfxCardStatus using the instructions from the last reply of this issue -
https://github.com/codykrieger/gfxCardStatus/issues/229
(also had to download a MacOSX10.11.sdk from here - https://github.com/phracker/MacOSX-SDKs/releases - unpack and copy it to XCode's /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk - because of the Apple's stupidity the latest XCode for El Capitan does not include SDK for El Capitan!) However, it still didn't work - gfxCardStatus only pretended that it has switched to Integrated GPU, while in reality OS X did not let it switch! Even after I edited ./gfxCardStatus/Classes/GSGPU.m file to enable the mysterious "Nuke it from orbit switching" option, it still couldn't switch...

===

Then I discovered this interesting repository - https://github.com/0xbb/gpu-switch - which is partially similar by its' source code to gfxCardStatus but also has the "Login Hooks" (install_hooks.sh) to "automate the switching process for login/logout". Sadly it didn't work for me... However, there is a very interesting gpu-switch text file right at the root of this repository, which describes the EFI variables!

https://github.com/0xbb/gpu-switch/blob/master/gpu-switch

After studying it and also reading this issue's comments - https://github.com/0xbb/gpu-switch/issues/11 - I became confident to try this solution, but found out that my MacBook Pro 2011 8,2 with OS X El Capitan 10.11.6 is in a VERY problematic situation:

1) rEFInd is not installed, and to install it - must disable SIP protection. But I cannot boot to Recovery mode (Command+Option+R) or to OS X Installation DVD/USB (hold Option), (to disable SIP), because they freeze while booting! - although I removed AMD kexts from my system, of course these recovery tools are using AMD kexts integrated to their design. Also cannot use Rootfool hack ( https://github.com/gdbinit/rootfool ) to disable SIP during runtime, because it works only at OS X version older than 10.11.4

2) Tried overheating my Macbook Pro on purpose (forcing CPU usage to 100% and putting it to a tightly closed bag) to force it to shutdown from overheating and then quickly reboot so that Integrated graphics will be enabled during the boot time - making it possible to boot to Recovery. But because of the wonderful high end thermal paste I have applied not so long ago - cannot overheat it even after waiting for a long time! At this point I thought that could either: a) remove AMD kexts from Installation media, or b) to connect MBP's hard drive to a Linux machine again and run a bunch of chmods to remove the SIP flags from the directories mentioned here ( http://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really ) which could potentially make a system unbootable, or c) to try installing rEFInd to HFS+ partition directly from a Linux machine with root rights because it will bypass SIP --- but have not explored these options, although some of them might have worked...

3) Wanted to boot a Linux LiveCD to edit the EFI variables from there, but no matter what I did: tried booting straight without GRUB option modifications, tried editing GRUB boot options (with "e" key) to add nomodeset / remove quiet splash / or both in every combination , or like suggested in this article ( https://wiki.archlinux.org/index.php/MacBookPro8,1/8,2/8,3_(2011) ) also add i915.modeset=0 radeon.modeset=0 or radeon.modeset=0 i915.modeset=1 i915.lvds_channel_mode=2 ; and then pressed Fn+F10 or Shift+Ctrl+Fn+F10 to boot with these options: but the Linux boot process always failed at different boot stages, no matter what popular user-friendly Linux distribution or what version of it I am trying: tried many releases of Ubuntu / Lubuntu / Fedora , even the old "AMD64 Mac" and "Alternate AMD64 Mac" images, but they always failed - either at the very beginning of boot process (black screen, or a black screen with a blinking or stuck _ character at the left upper corner) or failed at the very end of it - right before it is supposed to show a graphical desktop environment...

Later, totoe_84 wrote that he was able to boot Ubuntu in graphical mode using the following setup for GRUB:
  • To disable the AMD graphics card I added the following lines after set gfxpayload=keep
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0

  • Next I added the following after quiet splash
    i915.lvds_channel_mode=2 i915.modeset=1 i915.lvds_use_ssc=0
(based on https://ubuntuforums.org/showthread.php?t=2157775 )

===

Then I remembered that there are not-mainstream Linux distributions for advanced users, which have a LiveCD without any graphical interface: you are dropped to a pure console and you are supposed to install the system along with only those graphical interfaces and software packages / groups of packages which you explicitly select. For example: Arch Linux (https://www.archlinux.org/) and Gentoo Linux (https://gentoo.org/) . Because their LiveCD does not have a graphical interface, they could be booted without a problem to a pure Linux console and there you could edit the EFI variables ! So here is a...

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


1) Create the Arch Linux LiveCD/LiveUSB :

You need a working computer for that and a spare CD/DVD/USB drive. 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!

Thanks for the solution. I've tried to make all and I think I didn't make something...
The first time I've tried to make all from:
=== 100% WORKING SOLUTION
part... I didn't have the gpu-power... so I've created the new one.. but I don't have chattr not chflags... So I couldn't run the chattr... After all I've tried to reboot and didn't reboot. I powered down and up again... The mac starts... Installed the gfxstatus and tried to change and in any of the options the mac hangs... (reboots just fine.. but hangs on discrete or integrated). I've install some updates from the app store.. and then tried to run the same process... from
=== 100% WORKING SOLUTION
... now I have the gpu-power, but couldn't deleted... first I've tried to umount and mount.. but after that I couldn't... I didn't have chattr so I couldn't run that...

what's going on? what am I doing wrong?
I have a MacBook Pro 15' 2011... and download the archlinux archlinux-2018.01.01-x86_64.iso

Thanks!
 

nsgr

macrumors 6502
May 22, 2017
317
117
I was successful in the past by booting into single user mode and removing the kext and setting the nvram parameter
Code:
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00"

Now during the latest additional update to 10.13.2 all got messy. The Mac hung during the update and all my following efforts went awry. "cmd s + r" did work and I disabled csrutil. But then in single user mode "cmd s" mode it couldn't mount / and I was stuck in some mounted dmg, so mostly rescue mode again, no real FS access. Not sure if that was caused by the updated being half complete. I didn't dare to try to boot single user mode right now, because it's currently running.

Anyway, I tried to set the nvram parameter nevertheless, but it never showed with "nvram -p". I could of course not remove the kext again, as / was not available. I got lucky then and on reboot it just booted, using the discrete graphics. Which was pretty nice, because automatic brightness control now works again, but the machine crashes if you open Photoshop, for example. Probably because it tries to use OpenCL or something. Yet it survived a reboot and is still running on the AMD graphics.

Now I am afraid of the 10.13.3 update. csrutil is still disabled. Not sure if I should remove the kext while the system is running, which it is or if that would even work. Try to set nvram again while booted, which should work, it shouldn't be required to be in single user mode for that. If anybody could hint how to proceed in the current situation, I'd be grateful!

These procedures are mandatory:
Code:
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
nvram boot-args="-v"

The HighSierra update happens in two stages. And with the Meltdown and Spectre problem (Intel processor), the updates should be frequent.

Update: High Sierra update 10.13.4 has 5 restarts to complete the update.



1) First Stage MikeyN method (move kext - Single User Mode):

1 - New AMDRadeonX3000.kext put back in /System/Library/Extensions .

2 - Macbook Pro reboot, rebuild kext cache, then freeze with new AMDRadeonX3000.kext .

3 - Power off MacBook Pro -> press power button.

4 - Enter Recovery Mode Single User -> disable SIP (El Capitan, Sierra and HighSierra).

Press Command + R + S keys at boot.

Verify SIP status (Enable or Disable) - Enable = lock /System/Library/Extensions -> move kext =
Operation not permitted.
Code:
csrutil status

System Integrity Protection status: enabled.


Disable SIP:
Code:
csrutil disable


5 - Restart Macbook:
Code:
reboot


6 - Enter Single User Mode:

Press Command + S key at boot.


7 - Verify SIP status (disable)
Code:
csrutil status

System Integrity Protection status: disable.


8 - My example -> old AMDRadeonX3000.kext in /System/Library/Extensions-off/ .

9 - Rename old AMDRadeonX3000.kext to AMDRadeonX3000.kext.old-1 (There can not be two directories with the same name inside folder /System/Library/Extensions-off. The AMDRadeonX3000.kext is a directory.

You will have these kexts names within the /System/Library/Extensions-off directory at every repeat of this procedure with new updates.

AMDRadeonX3000.kext.old-0 (from first clean system installation)
AMDRadeonX3000.kext.old-1 (from first update)
AMDRadeonX3000.kext.old-2 (from second update)
AMDRadeonX3000.kext (from third update)

AMDRadeonX3000.kext is the latest kext made by the latest update.

Use ls command to list files (kexts) inside /System/Library/Extensions-off/ directory:
Code:
ls -l /System/Library/Extensions-off/
total 0
drwxr-xr-x@ 3 root  wheel  96 Mar 16 02:07 AMDRadeonX3000.kext
drwxr-xr-x@ 3 root  wheel  96 Dec 20 23:33 AMDRadeonX3000.kext.old-0


10 - Rename the last AMDRadeonX3000.kext inside /System/Library/Extensions-off/:
Code:
mv -v /System/Library/Extensions-off/AMDRadeonX3000.kext /System/Library/Extensions-off/AMDRadeonX3000.kext.old-1


11 - Move the new AMDRadeonX3000.kext (new update) inside /System/Library/Extensions to /System/Library/Extesions-off/ .
Code:
mv -v /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/AMDRadeonX3000.kext


12 - Let the system update its kextcache:
Code:
touch /System/Library/Extensions/


13 - Wait for the kextcache process to finish (2 minutes) - then reboot:
Code:
reboot


Second Stage:

1 - After reboot -> second stage of the update will be executed.

2 - Login screen -> enter user password -> open Terminal and load the new AMDRadeonX3000.kext -> decrease system temperature.
Code:
sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

.
.
.
Complete update.


Enable SIP again:

1 - Restart Macbook Pro -> Finder -> Applications -> Utilities -> Terminal
Code:
sudo shutdown -r now


2 - Enter Recovery Mode Single User -> Enable SIP (El Capitan, Sierra and HighSierra).

Press Command + R + S keys at boot.
Code:
csrutil status

System Integrity Protection status: disable.


Enable SIP:
Code:
csrutil enable


5 - Restart Macbook and boot normal:
Code:
reboot


6 - Login screen -> enter user password -> open Terminal and load the new AMDRadeonX3000.kext -> decrease system temperature.
Code:
sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

Manually load AMDRadeonX3000.kext or use LoginHook:
Follow The Guide MikeN to deacrese AMD GPU and System temperature - Page 35 #875

- - - - - - - - - - - - - - - - - - - - - - - - - - -

1) First Stage FGuarani method (move kext - Recovery Mode Graphical):

1 - New AMDRadeonX3000.kext put back in /System/Library/Extensions .

2 - Macbook Pro reboot, rebuild kext cache, then freeze with new AMDRadeonX3000.kext .

3 - Power off MacBook Pro -> press power button.

4 - Enter Recovery Mode Graphical (Command + R) -> Disk Utility -> mount MacOS partition -> /Volumes/MacOS -> Open Terminal in Utilities menu.

5 - My example -> partition MacOS system label is MacOS -> old AMDRadeonX3000.kext in
/System/Library/Extensions-off/ .

6 - Rename old AMDRadeonX3000.kext to AMDRadeonX3000.kext.old-1 (There can not be two directories with the same name inside folder /System/Library/Extensions-off. The AMDRadeonX3000.kext is a directory.

You will have these kexts names within the /System/Library/Extensions-off directory at every repeat of this procedure with new updates.

AMDRadeonX3000.kext.old-0 (from first clean system installation)
AMDRadeonX3000.kext.old-1 (from first update)
AMDRadeonX3000.kext.old-2 (from second update)
AMDRadeonX3000.kext (from third update)

AMDRadeonX3000.kext is the latest kext made by the latest update.

Code:
mv -v /Volume/MacOS/System/Library/Extensions-off/AMDRadeonX3000.kext /Volume/MacOS/System/Library/Extensions-off/AMDRadeonX3000.kext.old-1


7 - Move the new AMDRadeonX3000.kext to /System/Library/Extesions-off/
Code:
mv -v /Volume/MacOS/System/Library/Extensions/AMDRadeonX3000.kext /Volume/MacOS/System/Library/Extensions-off/AMDRadeonX3000.kext


8 - Exit Terminal in Recovery Mode Graphical.

9 - Open Disk Utility in Recovery Mode Graphical -> unmount MacOS system partition -> close Disk Utility.

10 - Reboot the system.

Second Stage:

1 - After reboot -> second stage of the update will be executed.

2 - Login screen -> enter user password -> open Terminal and load the new AMDRadeonX3000.kext -> decrease system temperature.
Code:
sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext


Enable SIP again:

1 - Restart Macbook Pro -> Finder -> Applications -> Utilities -> Terminal
Code:
sudo shutdown -r now


2 - Enter Recovery Mode Single User -> Enable SIP (El Capitan, Sierra and HighSierra).

Press Command + R + S keys at boot.
Code:
csrutil status

System Integrity Protection status: disable.


Enable SIP:
Code:
csrutil enable


5 - Restart Macbook and boot normal:
Code:
reboot


6 - Login screen -> enter user password -> open Terminal and load the new AMDRadeonX3000.kext -> decrease system temperature.
Code:
sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

Manually load AMDRadeonX3000.kext or use LoginHook:
Follow The Guide MikeN to deacrese AMD GPU and System temperature - Page 35 #875


Update 1:

High Sierra update 10.13.4 has 5 restarts to complete the update.


Update 2 - Shutdown or Restart Macbook Pro - avoid black screen freeze:

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