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.

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
I can perfectly boot... but if I boot in verbose more this is the first thing I get:

IMG_4435.JPG


I don't know if it's related though.

Regarding temps... I have smcFanControl for long...

Screen Shot 2017-12-10 at 23.14.42.png

I don't think those temps are low. I've had 50 or less before when I wasn't using the dGPU, and I don't know why the dGPU temp is so high. Any idea of how to fix it? Perhaps it isn't totally disconnected?

Another shot with a lower temp, but this is the lowest I've seen it lately.

Screen Shot 2017-12-10 at 23.20.58.png


It's rather interesting that the dGPU is hotter than the CPUs. HOW and WHY?
[doublepost=1512941627][/doublepost]You are probably right about the problem in disk... perhaps it's because I still have the EFI partition:

Code:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         1000.0 GB  disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh SSD           441.1 GB   disk1s1
   2:                APFS Volume Preboot                 20.3 MB    disk1s2
   3:                APFS Volume Recovery                506.6 MB   disk1s3
   4:                APFS Volume VM                      1.1 GB     disk1s4

Does any of you know how to get rid of this without need to reinstall?
[doublepost=1512942247][/doublepost]PS/ before I installed High Sierra I have El Capitan with a fusion drive. Just before I installed High Sierra, I removed the fusion drive, physically, and installed just a SSD.

Installed High Sierra and brought everything from time capsule back. I don't know if it has anything to do with this, it's odd to see efi_fusion_pairing.
 

nsgr

macrumors 6502
May 22, 2017
317
117
I can perfectly boot... but if I boot in verbose more this is the first thing I get:

View attachment 741350

I don't know if it's related though.

Regarding temps... I have smcFanControl for long...

View attachment 741351
I don't think those temps are low. I've had 50 or less before when I wasn't using the dGPU, and I don't know why the dGPU temp is so high. Any idea of how to fix it? Perhaps it isn't totally disconnected?

Another shot with a lower temp, but this is the lowest I've seen it lately.

View attachment 741354

It's rather interesting that the dGPU is hotter than the CPUs. HOW and WHY?
[doublepost=1512941627][/doublepost]You are probably right about the problem in disk... perhaps it's because I still have the EFI partition:

Code:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         1000.0 GB  disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh SSD           441.1 GB   disk1s1
   2:                APFS Volume Preboot                 20.3 MB    disk1s2
   3:                APFS Volume Recovery                506.6 MB   disk1s3
   4:                APFS Volume VM                      1.1 GB     disk1s4

Does any of you know how to get rid of this without need to reinstall?

1 - The first picture is normal in boot verbose - line codes APFS.

2 - Your AMD GPU temperature is high because you do not kextload AMDRadeonX3000.kext after login - normal boot.

AMD6000Controller.kext - full power AMD GPU - increase temperature
AMDRadeonX3000.kext - decrease AMD GPU temperature - Intel GPU is primary GPU

Normal boot - without GRUB - only nvram fa4ce...:gnu-power-prefs=%01%00%00%00

/System/Library/Extensions - load on boot - necessary to decrease temperature
AMD6000Controller.kext
AMDLegacyFramebuffer.kext
AMDLegacySupport.kext

/DisableExtensions - kextload after login - necessary to power minimum AMD GPU temperature
AMDRadeonX3000.kext

3 - Do not touch in EFI partition. I have the same partition in High Sierra with APFS.

System Information -> SATA/SATA Express
Code:
Volumes:
EFI:
  Capacity:    209,7 MB
  File System:    MS-DOS FAT32
  BSD Name:    disk0s1
  Content:    EFI
  Volume UUID:    XXXXXX-XXXXX-XXXXX-XXXX
 

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
1 - The first picture is normal in boot verbose - line codes APFS.

2 - Your AMD GPU temperature is high because you do not kextload AMDRadeonX3000.kext after login - normal boot.

AMD6000Controller.kext - full power AMD GPU - increase temperature
AMDRadeonX3000.kext - decrease AMD GPU temperature - Intel GPU is primary GPU

Normal boot - without GRUB - only nvram fa4ce...:gnu-power-prefs=%01%00%00%00

/System/Library/Extensions - load on boot - necessary to decrease temperature
AMD6000Controller.kext
AMDLegacyFramebuffer.kext
AMDLegacySupport.kext

/DisableExtensions - kextload after login - necessary to power minimum AMD GPU temperature
AMDRadeonX3000.kext

3 - Do not touch in EFI partition. I have the same partition in High Sierra with APFS.

System Information -> SATA/SATA Express
Code:
Volumes:
EFI:
  Capacity:    209,7 MB
  File System:    MS-DOS FAT32
  BSD Name:    disk0s1
  Content:    EFI
  Volume UUID:    XXXXXX-XXXXX-XXXXX-XXXX


Ok!!!!

I think I solve the problem.

You where totally right, the AMD kext weren't loading on boot, only the one in /DisableExtensions. The problem was a ownership problem. Since I've been moving then around seems that I changed the ownership. So I just did
Code:
sudo chown -R root:wheel AMD*
on /System/Library/Extensions and now all load.

Screen Shot 2017-12-11 at 10.09.32.png

I have even brightness again!!!!!!

If I also load the AMDGPUWakeHandler I can even sleep and wake up normally.

Screen Shot 2017-12-11 at 10.26.50.png

However, even if I set

Code:
sudo pmset -a hibernatemode 25

It does't hibernate, but sleeps... WEIRD!

PS/ As you see I don't know why after I loaded the AMDGPUWakeHandler the AMDLegacyFramebuffer is not loaded anymore.
[doublepost=1512981473][/doublepost]The temps now, are much more normal... but they still needs to go down.
Screen Shot 2017-12-11 at 10.36.39.png
 

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
Another question... the AMD Radeon appears in the system report... is this correct? or there is something wrong?

Screen Shot 2017-12-11 at 12.53.43.png
Screen Shot 2017-12-11 at 12.53.46.png
 

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
You are entirely correct and identified a shortcoming in my original guide:

Before an update you should move X3000 kext back to the default /System/Library/Extensions/ folder.
After an update X3000 has to be moved back to Extensions-off.

If a functional X3000 kext is present in its default location it will hang the system upon reboot in a system with the hack applied.

I only kept SIP disabled because it presents a huge hassle when moving kexts around. As long as there are no updates coming along from Apple SIP might also be (re-)enabled.
[doublepost=1512753058][/doublepost]

An upgrade to Sierra is imho quite commendable (but *only* because we have to hack around Apple's quality issues; a certain decline in over-all quality is also already present in Sierra, alas).

The upgrade is quite smooth sailing. It leaves the NVRAM hack in place. But it places a new X3000 kext in its default location -> System freeze on first full reboot -> disable SIP -> move kext in Single User -> presto. That also applies to High Sierra. (But being the train wreck HS is I won't upgrade to that.)


With Sierra I now have *no* issues with shutdown or sleep/waking.

Your minor issue might be mitigated?
Yosemite was problematic for me, Sierra improved on that on its own but below's addition makes it round again [I never tested the 'force' switch on 10.10]:
But that involved adding another command to the LoginHook, which is now:

#!/bin/bash
kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
pmset -a force gpuswitch 0
exit 0



And after letting that load on boot one time; performing once again a complete reset/ re-application of the NVRAM hack: the machine doesn't mind what happens to the lid or how it is told to sleep or shutdown.

[The pmset command was discovered by @nsgr and @pvllo in #1066; 1000x kudos to you two!]


I would like to ask if pmset -a force gpuswitch 0 is also applicable to loginghook in High Sierra.

thanks!
 

nsgr

macrumors 6502
May 22, 2017
317
117
Another question... the AMD Radeon appears in the system report... is this correct? or there is something wrong?

View attachment 741436 View attachment 741437

Boot with GRUB -> AMD GPU disappears from System Information.

Boot without GRUB -> AMD GPU appears in System Information.

The temperature of the Macbook Pro 15" Early 2011 during the boot (without GRUB) is about 65 to 70 degrees Celsius (CPU Die Analog) and 50 to 60 degrees Celsius (GPU Die Analog).

After login -> kextload AMDRadeonX3000.kext -> Only Active Monitor and Terminal open -> Leave in idle for 5 minutes without ScreenSaver -> the temperature drops to 38 to 40 degrees Celsius (CPU Die Analog) and zero (GPU Die Analog).
 

Attachments

  • IstatMenu-SystemInformation-Kextload.png
    IstatMenu-SystemInformation-Kextload.png
    276.4 KB · Views: 376

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
Boot with GRUB -> AMD GPU disappears from System Information.

Boot without GRUB -> AMD GPU appears in System Information.

The temperature of the Macbook Pro 15" Early 2011 during the boot (without GRUB) is about 65 to 70 degrees Celsius (CPU Die Analog) and 50 to 60 degrees Celsius (GPU Die Analog).

After login -> kextload AMDRadeonX3000.kext -> Only Active Monitor and Terminal open -> Leave in idle for 5 minutes without ScreenSaver -> the temperature drops to 38 to 40 degrees Celsius (CPU Die Analog) and zero (GPU Die Analog).
Great great great!!
Thanks a lot for the info and all the work to fix the issue!
 

nsgr

macrumors 6502
May 22, 2017
317
117
Great great great!!
Thanks a lot for the info and all the work to fix the issue!

Update:
After login, Spotlight consumes a lot of energy. I've disabled everything in System Preferences -> Spotlight and it still consumes power.

Active Monitor -> Energy tab

That's why you need to stay idle for 5 to 10 minutes after login -> kextload AMDRadeonX3000.kext. Only with Active Monitor and Terminal open -> measure temperature.
 

valenzulu

macrumors newbie
Dec 11, 2017
1
0
A BIG THANK YOU
Can't believe my 2011 MBP is now running after 2 failed "repairs" by apple.
(last GPU drama happened just this weekend 12/9/17 ), and was
totally discouraged since apple is no longer taking 2011 models
Cannot express my gratitude Enough​
to AppleMacFinder, and all of You brilliant people.
there is hope for humanity that despite this corporation's greed and dishonest handling of user's needs,
there are smart generous fellows working on a solution and sharing it for good.
I'm unfamiliar with command lines and hacks but finally managed to implement the 100% working solution,
while keeping all extensions but AMDX3000.kext to improve power management via delayed loading,
as i found on the thread.

Best!
Sergio


 

Djeje33380

macrumors newbie
Dec 10, 2017
2
1
1 - Press Option key at boot -> show boot volumes -> select your HD / SSD with your Mac OS System.

If you can boot correctly -> System Preferences -> Start up Disk.

2 - If step 1 does not work, then boot the installation disk of your Mac OS (USB stick) -> after loading the graphical environment -> choose Disk Utility -> select the disk you want to repair - > First Aid.

3 - If you do not have the Mac OS installation disc, then try Recovery Mode (Command + R) -> Disk Utility -> select the disk you want to repair -> First Aid.

Remember:
You have the AMD GPU problem, so the Intel GPU has to be properly configured for gpu-power-prefs.
Otherwise, the Macbook Pro will freeze on the gray screen because of the AMD6000Controller.kext (installation disk or Recovery Mode).

-----

Thanks for your quick answer ...

Number 1 fails with the prohibited sign ... See pic.
I went to number 3 and try the check and repair / disk and permissions .. Everything seem right there ... See pic.
I tried to check the GPT Table with the link you've provided. Does't look corrupted, ... but you may check. ... See pic.

I also tried ro reset SMC and PRAM with the startup keys ... As soon as I do that, at startup time the screen becomes blurry again and the mac won't boot (which I think is normal because if I understand correctly the gpu-power-prefs file is then removed).

I've then re-applied the procedure you've proposed (creating the gpu-power-prefs file) ... As soon as I reboot, I get the prohibited sign again... :-( ...

Any other idea ?
 

Attachments

  • IMG_1379.JPG
    874.2 KB · Views: 277
  • IMG_1380.JPG
    IMG_1380.JPG
    1.4 MB · Views: 367
  • IMG_1381.JPG
    IMG_1381.JPG
    1.1 MB · Views: 306
  • IMG_1382.JPG
    IMG_1382.JPG
    1.8 MB · Views: 375

nsgr

macrumors 6502
May 22, 2017
317
117
1 - Press Option key at boot -> show boot volumes -> select your HD / SSD with your Mac OS System.

If you can boot correctly -> System Preferences -> Start up Disk.

2 - If step 1 does not work, then boot the installation disk of your Mac OS (USB stick) -> after loading the graphical environment -> choose Disk Utility -> select the disk you want to repair - > First Aid.

3 - If you do not have the Mac OS installation disc, then try Recovery Mode (Command + R) -> Disk Utility -> select the disk you want to repair -> First Aid.

Remember:
You have the AMD GPU problem, so the Intel GPU has to be properly configured for gpu-power-prefs.
Otherwise, the Macbook Pro will freeze on the gray screen because of the AMD6000Controller.kext (installation disk or Recovery Mode).

-----

Thanks for your quick answer ...

Number 1 fails with the prohibited sign ... See pic.
I went to number 3 and try the check and repair / disk and permissions .. Everything seem right there ... See pic.
I tried to check the GPT Table with the link you've provided. Does't look corrupted, ... but you may check. ... See pic.

I also tried ro reset SMC and PRAM with the startup keys ... As soon as I do that, at startup time the screen becomes blurry again and the mac won't boot (which I think is normal because if I understand correctly the gpu-power-prefs file is then removed).

I've then re-applied the procedure you've proposed (creating the gpu-power-prefs file) ... As soon as I reboot, I get the prohibited sign again... :-( ...

Any other idea ?

In your photo with the prohibited sign appears a progress bar below the signal. I think you did not put the boot verbose (mandatory to know what the error).

sudo nvram boot-args="-v"

It showed a "still waiting for root device" message.

If you were able to load Recovery Mode and make First Aid, then it probably would not be a problem on Flat Cable or the whole disk with a problem.

This may be a kext storage that is corrupted.


0 - Use Apple Hardware Test first (see if exist hardware problem):

Turn on your Mac, then immediately press and hold the D key on your keyboard. Keep holding the D key until you see the Apple Hardware Test icon.
https://support.apple.com/en-us/HT201257

1 - Boot in Single User (Command + S).

2 - Verify file system:
Code:
/sbin/fsck -fy

3 - Mount system partition with Read / Write (see if exist orphan files) and do not forget the final Slash "/":
Code:
/sbin/mount -uw /

4 - Add boot verbose in normal boot.
Code:
sudo nvram boot-args="-v"

5 - Restart the system.
Code:
reboot

6 - Boot in Safe Mode (press SHIFT key at boot).
In Safe Mode some kexts are changed to not freeze the system.
If you normally load Safe Mode, then it is probably a corrupted kext.

7 - Or you reinstall the last security update combo to see if the problematic kext is replaced or you reinstall the system.

From the photo, Yosemite was written. It would probably be this combo update:
https://support.apple.com/kb/DL1832?viewlocale=en_US&locale=en_US
https://support.apple.com/downloads/yosemite

Problems with "still waiting for root device" message:
https://forums.macrumors.com/threads/still-waiting-for-root-device-please-help.843410/
http://www.mac-forums.com/apple-notebooks/177899-forbidden-screen-error-waiting-root-device.html

About the screens you see when your Mac starts up - Prohibitory symbol
https://support.apple.com/en-us/HT204156
 

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
Boot with GRUB -> AMD GPU disappears from System Information.

Boot without GRUB -> AMD GPU appears in System Information.

The temperature of the Macbook Pro 15" Early 2011 during the boot (without GRUB) is about 65 to 70 degrees Celsius (CPU Die Analog) and 50 to 60 degrees Celsius (GPU Die Analog).

After login -> kextload AMDRadeonX3000.kext -> Only Active Monitor and Terminal open -> Leave in idle for 5 minutes without ScreenSaver -> the temperature drops to 38 to 40 degrees Celsius (CPU Die Analog) and zero (GPU Die Analog).
Thanks a lot. My temps now are really normal and cold. Which I'm really pleased.
If this hack continue working I think the computer behaves much much better without the dGPU. The only thing I miss is be able to connect to a external monitor, which I've been doing extensively lately. But it's great this way too.
 

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
Boot with GRUB -> AMD GPU disappears from System Information.

Boot without GRUB -> AMD GPU appears in System Information.

The temperature of the Macbook Pro 15" Early 2011 during the boot (without GRUB) is about 65 to 70 degrees Celsius (CPU Die Analog) and 50 to 60 degrees Celsius (GPU Die Analog).

After login -> kextload AMDRadeonX3000.kext -> Only Active Monitor and Terminal open -> Leave in idle for 5 minutes without ScreenSaver -> the temperature drops to 38 to 40 degrees Celsius (CPU Die Analog) and zero (GPU Die Analog).
I called complete victory too early...

are you able to sleep normally in High Sierra? I have the wakeuphandle in place but it doesn't work and when I wake up I get the grey screen of death.
 

Lloyd22

macrumors newbie
Apr 28, 2017
8
3
Hi again

I really need your help guys, new problems now..
.
My MBP was working well under 10.11 for a while with the EFI removal (more than 6 months). Yesterday I did some security updates (pretty sure it wasn't os x updates) then installed them and at reboot, the mac was stuck on a black screen. After another reboot, screen was completely distorted, had all the colors in stripes possible, couldn't see anything on the screen but i'm pretty sure nothing loaded. Same thing with several reboots, tried smc and nvram, nothing, sometimes the mac rebooted constantly with millions of chimes...
I managed to see cmd+s once, didn't have the time to try fsck and stuf, but now can't even access it. Same thing with option held, nothing, and recovery mode isn't working either... I don't know what happened, if the amd gpu came back or something. But I can't do anything right now. I'm trying to overheat the mac so that i can try to reboot with the intel gpu but it doesn't look like it will change anything.

If you guys have an idea for my issue, I'd be super grateful. Thanks!
 
Last edited:

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
Update:
After login, Spotlight consumes a lot of energy. I've disabled everything in System Preferences -> Spotlight and it still consumes power.

Active Monitor -> Energy tab

That's why you need to stay idle for 5 to 10 minutes after login -> kextload AMDRadeonX3000.kext. Only with Active Monitor and Terminal open -> measure temperature.
one question... I've fixed the problem of hibernation... It was too many com.apple.PowerManagement.plist on /Library/Preferences, so I delete all and reconfigure.

However, I get the similar result when I sleep or then I hibernate. And it's quite funny.

If I sleep, I just get the grey screen of death on wake up.

If I hibernate, I see on screen how it reads the sleepimage as it should, but when the desktop comes, I just get a black screen.

I tried with and without the AMDGPUWakeHandler.kext in place and more or less it's the same.

@nsgr can you sleep / hibernate?
 

nsgr

macrumors 6502
May 22, 2017
317
117
one question... I've fixed the problem of hibernation... It was too many com.apple.PowerManagement.plist on /Library/Preferences, so I delete all and reconfigure.

However, I get the similar result when I sleep or then I hibernate. And it's quite funny.

If I sleep, I just get the grey screen of death on wake up.

If I hibernate, I see on screen how it reads the sleepimage as it should, but when the desktop comes, I just get a black screen.

I tried with and without the AMDGPUWakeHandler.kext in place and more or less it's the same.

@nsgr can you sleep / hibernate?

AMDGPUWakeHandler.kext must be used with GRUB as kext developer's guidance.

"WARNING: This kext should only be used with the GRUB solution in place, otherwise it will kernel panic."

https://forums.macrumors.com/thread...-on-a-2011-macbook-pro-grub-solution.2087527/

I use Macbook Pro only as Desktop. I do not use Sleep or Hibernate.

You will have to do the tests with pmset and gpuswitch. Pages 37 and 43 of this thread.

#919 and #1066

You can see the settings in System Information -> Power -> System Power Settings.
 
  • Like
Reactions: lpuerto

lpuerto

macrumors regular
Mar 4, 2014
144
37
Europe
AMDGPUWakeHandler.kext must be used with GRUB as kext developer's guidance.

"WARNING: This kext should only be used with the GRUB solution in place, otherwise it will kernel panic."

https://forums.macrumors.com/thread...-on-a-2011-macbook-pro-grub-solution.2087527/

I use Macbook Pro only as Desktop. I do not use Sleep or Hibernate.

You will have to do the tests with pmset and gpuswitch. Pages 37 and 43 of this thread.

#919 and #1066

You can see the settings in System Information -> Power -> System Power Settings.
Thanks a lot for the insights!!

I've tried the pmset config to gpuswitch 0 and seems that doesn't work. Rigth now I have it on 2.

what seems to work is to have gfxCardStatus on only integrated. But I think you have to change it every time you reboot the computer.

As seems it has been commented on the forum gpuswitch option on pmset isn't really documented. So I'm not sure that 0 is to keep things on integrated.
 

elixir

macrumors newbie
Dec 22, 2011
9
0
Hi all

I've been lurking this thread for a while now, trying to fix my Macbook, which i thought was a lost cause, until discovering this thread. I'm about to give up on it, but before I do, I just want to make a last go at it with this post, in the hope, that someone has an idea for a fix. Here goes:

I was able to get my Macbook Pro 2011 to boot with integrated gfx, thanks to MacProFinders amazing guide. I do have one issue though. The laptop currently has no OS installed, and I've tried reinstalling OSX with Internet Recovery, with no luck. It simply freezes after the loading bar, when the spinning wheel starts.

I also tried installing from a USB-dongle, and here is where the "interesting" part starts. When I boot up holding the alt key, the option to select USB shows up. But when I move the cursor to select the USB-boot, it moves very slowly and lags a lot...
Selecting the USB-recovery, it takes forever to load, and after loading, the lagging continues, to the point, where it's hard to even select the language for the OS-install.

I managed to get through it all, and to start the install process itself, but again, the system was so slow, that I had to leave it overnight to install. The install failed the next morning, with some timeout error, i believe.

I tried switching the hdd with the one from my windows laptop, and same thing happens, when I try to install OSX, so it leads me to belive it's not a faulty hdd. If i leave the macbook to boot with the windows hdd inside, it works perfectly well. It boots to windows, and the mouse does not lag at all.

I have no idea what the issue here might be, so if anyone has a clue, please don't hold back.. Any help is much apreciated! Also i do apologise for the long post, i just wanted to include as many details as possible.

Thanks a lot in advance!
 

EyeDoc1

macrumors newbie
Dec 2, 2017
17
2
Batavia, IL
Try:https://realmacmods.com

Worked on my white screen! Still need to remove the resistor, but I am typing on the MBP now!













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!
 

raptfly

macrumors newbie
Dec 13, 2017
1
0
Question for 'AppleMacFinder' or anyone that can assist. Downloaded the .iso file and burned to a CD. Put the CD into affected 2011 MacBook Pro then powered off. Powered on MBP holding 'option' key and 'EFI Boot' won't appear...only seeing 'Macintosh HD'. Tried multiple times. Any help to get past this point and see 'EFI Boot' is much appreciated!
 

chrisfixingMBP

macrumors newbie
Dec 13, 2017
1
0
Hi AppleMacFinder - I was able to make this fix work, but every time I reboot my MBP it reverts back to the bad GPU. I am using the command
chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"
And it works. I've tried removing that gpu-power-prefs and recreating it and doing the printf about 5 times. It always works for 1 startup, but now every time I reboot after it works it reverts to my bad GPU. Any idea what I could try to lock the GPU-power-prefs better? Chattr +i seems to work and doesn't give me any errors.... except it doesn't actually work.
Chris
 

nsgr

macrumors 6502
May 22, 2017
317
117
Thanks a lot for the insights!!

I've tried the pmset config to gpuswitch 0 and seems that doesn't work. Rigth now I have it on 2.

what seems to work is to have gfxCardStatus on only integrated. But I think you have to change it every time you reboot the computer.

As seems it has been commented on the forum gpuswitch option on pmset isn't really documented. So I'm not sure that 0 is to keep things on integrated.

There is a BootFlag called darkware that is placed in nvram boot-args.

1 - Download XNU 4570.1.46
https://opensource.apple.com/release/macos-1013.html

2 - Extract xnu-4570.1.46.tar.gz file.

3 - Use grep darkwake -> directory "xnu-4570.1.46"

Example:
Code:
grep -iRn darkwake xnu-4570.1.46 | more
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:303:// gDarkWakeFlags
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:305:    kDarkWakeFlagHIDTickleEarly      = 0x01, // hid tickle before gfx suppression
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:306:    kDarkWakeFlagHIDTickleLate       = 0x02, // hid tickle after gfx suppression
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:307:    kDarkWakeFlagHIDTickleNone       = 0x03, // hid tickle is not posted
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:308:    kDarkWakeFlagHIDTickleMask       = 0x03,
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:309:    kDarkWakeFlagAlarmIsDark         = 0x0100,
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:310:    kDarkWakeFlagGraphicsPowerState1 = 0x0200,
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:311:    kDarkWakeFlagAudioNotSuppressed  = 0x0400
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:332:static uint32_t         gDarkWakeFlags = kDarkWakeFlagHIDTickleNone;
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:1051:static SYSCTL_INT(_debug, OID_AUTO, darkwake, CTLFLAG_RW, &gDarkWakeFlags, 0, "");
xnu-4570.1.46/iokit/Kernel/IOPMrootDomain.cpp:1121:    PE_parse_boot_argn("darkwake", &gDarkWakeFlags, sizeof(gDarkWakeFlags));

Reference:

https://opensource.apple.com/source/xnu/xnu-3789.51.2/iokit/Kernel/IOPMrootDomain.cpp.auto.html

https://www.reddit.com/r/hackintosh/comments/2t09fb/what_do_darkwakeno_and_darkwake010_do_for_you/

http://www.insanelymac.com/forum/to...id-wake-from-sleep-for-skylake-iris-graphics/

https://medium.com/sfbayhacker/macbook-gets-hot-with-lid-closed-12fc0e7e7016
 
  • Like
Reactions: lpuerto

xanderx007

macrumors 6502
Nov 7, 2017
262
140
Question for 'AppleMacFinder' or anyone that can assist. Downloaded the .iso file and burned to a CD. Put the CD into affected 2011 MacBook Pro then powered off. Powered on MBP holding 'option' key and 'EFI Boot' won't appear...only seeing 'Macintosh HD'. Tried multiple times. Any help to get past this point and see 'EFI Boot' is much appreciated!

Your optical drive might not be working anymore. Use a USB drive instead.
 

rcmcfe

macrumors newbie
Jul 15, 2017
16
2
The GFX CardStatus fix worked for me. My question is, has anyone found a way to use an external display with this fix (or any other fix)?

Thanks!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.