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

Discussion in 'MacBook Pro' started by AppleMacFinder, Mar 18, 2017.

  1. rlebleu macrumors member

    rlebleu

    Joined:
    Jul 1, 2017
    #526
    Right. The before image shows the defective dGPU trying to boot the system. The after image displays the result of having forced the iGPU to handle the display in the gpu-power-prefs command. But this is only step one of the process.

    Using nsgr's findings, GBDO created a guide to doing the whole job. The trick is to remove a critical driver, AMDRadeonX3000.kext from it's default location folder /System/Library/Extensions and moving (hide) it to a folder you create called backup. the boot process then cannot find the driver to reload the defective AMD graphics chip that you saw in your 'before' image.

    The AMDRadeonX3000.kext is still required however to reduce power to the now unused dGPU and reduce current being drawn by the the dGPU and overheating the motherboard. The trick is to load this driver with Terminal AFTER login and the gpu-power prefs settings have been changed to use the iGPU all the time.

    You might like to have a look at post #429 where GDBO documented a step by step guide using nsgr's findings...
     
  2. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #527
    Having lobotomized the dGPU on boot with the instructions here it still leaves two things to be desired:

    After boot these kexts are loaded:
    com.apple.kext.AMDSupport (1.3.2) <124 94 12 11 7 5 4 3 1>
    com.apple.kext.AMD6000Controller (1.3.2) <125 94 12 11 5 4 3 1>
    com.apple.kext.AMDFramebuffer (1.3.2) <125 94 12 11 7 5 4 3 1>

    After manually loading X3000 this is added:
    com.apple.AMDRadeonX3000 (1.3.2) <152 94 12 7 5 4 3 1>

    1. how to automate the kext loading of X3000 after boot?


    2. since loading the kext is desirable it presents you with another problem:

    Sleep is now broken where it works without loading the kext.

    Is there anyone who knows how to cleanly unload the kext before the machine goes to sleep?
    Trying that via kextunload: result sends the machine into immediate panic and reboot.
    Leaving X3000 active results in a computer stuck in the login screen after wake.

    For linux there seems to be a kind of solution documented here:
    http://blog.tkassembled.com/364/intel-graphics-on-a-2011-macbook-pro-in-linux/
    (one last step: disable-ati.c)
    I know of login-hooks but not of sleep-hooks.
    Any idea on how to adapt this?
     
  3. SirMeowington5, Jul 26, 2017
    Last edited: Jul 26, 2017

    SirMeowington5 macrumors member

    Joined:
    May 21, 2017
    #528
    GBDO's method has too many extra steps which most people won't need to do. It'd probably be better to go back to recommending people do part 3.1 of Fguarini's updated instructions, I have no idea why people continue rewriting existing instructions in more complicated ways.

    Here is the least complicated method which I have used time and time again while testing out Kext combinations, re-installing OS X, updating OS X and restoring from Time Machine backups. It's a combination of nsgr's method for modifying the NVRAM without using Arch Linux and Fguarini's method for moving Kexts without having to disable SIP.




     
  4. rlebleu macrumors member

    rlebleu

    Joined:
    Jul 1, 2017
    #529
    Interesting. I only use sleep as my main way to shut down. Just close the lid, and open it when I want to use it.

    I see your kexts are older than the ones I use... v 1.3.2...

    After updating to macos 10.12.6, my kexts are v 1.5.1.8... Don't know if that is an issue with respect to sleep mode??? Also AMDSupport is replaced with AMDLegacySupport, and AMDFrameBuffer is replaced with AMDLegacyFramebuffer...
     
  5. SirMeowington5 macrumors member

    Joined:
    May 21, 2017
    #530
    I would like to add that since removing all of the unnecessary AMD Kexts from /Extensions I have not had the black screen issue return.

    The only Kexts I have in the /Extensions folder now are 10.12.6 v1.5.1 Support, LegacySupport, Framebuffer, LegacyFramebuffer and 6000Controller. I have not had any more black screens when opening the lid or restarting since removing all of the extra AMD Kexts which don't get loaded.
     
  6. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #531

    The kexts are older and my whole story describes the situation on Yosemite 10.10.5 plus latest security update (which modified a few of the AMD-kexts without bumping the version numbers).

    While experimenting I initially moved all AMD kexts out and then moved them all back. Then learned that X3000 has to go while booting but had to be put back into the kernel afterwards.

    Sleep and hibernation work with the otherwise dreaded Sierra setup?
    Up until now I checked that on an external drive and had the impression that it's worse in all respects and doesn't help with radeongate either (including with the methods of this thread), just complicating things.

    Anyone here tried to mix and match AMD kexts from different OSes instead of point releases?
     
  7. rlebleu macrumors member

    rlebleu

    Joined:
    Jul 1, 2017
    #532
    Good news! And you are now happy with your temps?
     
  8. SirMeowington5 macrumors member

    Joined:
    May 21, 2017
    #533
    Not really unfortunately. They're a lot better than running without any Kexts, but I'm still running about 8-10C higher than before the update.

     
  9. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #534
    Hm.
    Current boot situation is Yosemite with FrankenKexts kextstat:

    97 1 0xffffff7f82c1a000 0x122000 0x122000 com.apple.kext.AMDLegacySupport (1.5.1) <96 12 11 7 5 4 3 1>
    119 0 0xffffff7f82d49000 0x12e000 0x12e000 com.apple.kext.AMD6000Controller (1.5.1) <97 96 12 11 5 4 3 1>
    121 0 0xffffff7f82ab5000 0x156000 0x156000 com.apple.kext.AMDSupport (1.5.1) <120 96 12 11 7 5 4 3 1>
    152 0 0xffffff7f8304b000 0x453000 0x453000 com.apple.AMDRadeonX3000 (1.3.2) <151 96 12 7 5 4 3 1>

    I swapped in all of the AMD-kexts from Sierra and traced most of the errors on boot to also swap out
    AppleGraphicsControl.kext
    AppleGraphicsPowerManagement.kext
    from Sierra.

    That gives me still some errors and warnings on boot and loading kexts.

    But excluding Sierra-X3000 on boot gives me a working machine.

    Manually loading Sierra-X3000 mysteriously results in this error:
    AMDRadeonX3000-S.kext failed to load - (libkern/kext) link error; check the system/kernel logs for errors or try kextutil(8). (Which I failed to locate)

    But manually loading Yosi-X3000 works, the temps go down and the machine now wakes successfully from sleep.
    But now kext-dependencies break backlight control, it's always at 100%.


    Remaining errors on boot:
    kxld[com.apple.driver.AppleMuxControl]: The following symbols are unresolved for this kext:
    kxld[com.apple.driver.AppleMuxControl]: __ZN30AppleBacklightParameterHandler21interpolatePanelTableEPKtttjPttfsevents: watcher RansomWhere (pid: 101) - Using /dev/fsevents directly is unsupported. Migrate to FSEventsFramework
    kxld[com.apple.driver.AppleMuxControl]: __ZN30AppleBacklightParameterHandler30loadScaledMobileBacklightTableEtPPtS0_AirPort: Link Down on en1. Reason 8 (Disassociated because station leaving).
    en1::IO80211Interface::postMessage bssid changed
    kxld[com.apple.driver.AppleMuxControl]: _gIODisplayBrightnessProbeKey
    kxld[com.apple.driver.AppleMuxControl]: _gIODisplayLinearBrightnessProbeKey
    Can't load kext com.apple.driver.AppleMuxControl - link failed.
    Failed to load executable for kext com.apple.driver.AppleMuxControl.
    Kext com.apple.driver.AppleMuxControl failed to load (0xdc008016).
    Failed to load kext com.apple.driver.AppleMuxControl (error 0xdc008016).
    kxld[com.apple.kext.AMDLegacyFramebuffer]: The super class vtable '__ZTV13IOFramebuffer' for vtable '__ZTV20AMDLegacyFramebuffer' is out of date. Make sure your kext has been built against the correct headers.
    kxld[com.apple.kext.AMDLegacyFramebuffer]: The super class vtable '__ZTV13IOFramebuffer' for vtable '__ZTV20AMDLegacyFramebuffer' is out of date. Make sure your kext has been built against the correct headers.
    Can't load kext com.apple.kext.AMDLegacyFramebuffer - link failed.
    Failed to load executable for kext com.apple.kext.AMDLegacyFramebuffer.
    Kext com.apple.kext.AMDLegacyFramebuffer failed to load (0xdc008016).
    Failed to load kext com.apple.kext.AMDLegacyFramebuffer (error 0xdc008016).
    kxld[com.apple.driver.AGPM]: The following symbols are unresolved for this kext:
    kxld[com.apple.driver.AGPM]: _gpu_fceiling_cb_register
    Can't load kext com.apple.driver.AGPM - link failed.
    Failed to load executable for kext com.apple.driver.AGPM.
    Kext com.apple.driver.AGPM failed to load (0xdc008016).
    Failed to load kext com.apple.driver.AGPM (error 0xdc008016).

    en2: promiscuous mode enable succeeded
     
  10. rlebleu macrumors member

    rlebleu

    Joined:
    Jul 1, 2017
    #535
    If I understand your post, you are continuing to use Yosemite macOS with Sierra kexts? That's beyond my knowledge and experience... Perhaps someone else can step in here. My experience was only based on originally installing a combo update Sierra 10.12.5 to start with a known set of kexts, executing the nvram gpu-power-prefs switch, removing AMDRadeonX3000 from /System/Library/Extensions folder into a backup folder and kextloading it after login. It worked right away. Repeated the same steps after updating to Sierra 10.12.6, with the same results.

    I see from your log that AMDLegacyFrameBuffer failed to load... In my case, it loaded replacing AMDFrameBuffer and AMDLegacySupport replaced AMDSupport. But using Sierra Kexts with Yosemite may not play? When we started this fix with nsgr's findings, we used older kexts (1.48) with Sierra with some success, but that might not work as well newer kexts and Yosemite...

     
  11. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #536
    It looks as if quite a few Sierra-kexts work under older OSes. Just their interdependencies get confused.
    Copying the kernel and all kexts over seemed too radical at the moment.

    I try to stay on Yosemite since Sierra brings up the temperature too much.

    In Sierra these are loaded:
    132 2 0xffffff7f82e0c000 0x122000 0x122000 com.apple.kext.AMDLegacySupport (1.5.1) 0670744B-B64C-3424-B186-FD972A37E78E <108 12 11 7 5 4 3 1>
    142 0 0xffffff7f8317b000 0x12e000 0x12e000 com.apple.kext.AMD6000Controller (1.5.1) 2015FD1C-294C-3C71-AEB5-C1EE0E65BD46 <132 108 12 11 5 4 3 1>
    150 0 0xffffff7f83342000 0x155000 0x155000 com.apple.kext.AMDSupport (1.5.1) 86E4A4D6-A270-3BF3-AE81-A27F35EEC4D9 <146 108 12 11 7 5 4 3 1>
    154 0 0xffffff7f834a8000 0x22000 0x22000 com.apple.kext.AMDLegacyFramebuffer (1.5.1) 930A7077-5EBD-3FA5-A023-415A1438E132 <132 108 12 11 7 5 4 3 1>
    165 0 0xffffff7f835b6000 0x571000 0x571000 com.apple.AMDRadeonX3000 (1.5.1) F6F37414-893B-3F66-8AB7-F3327DE6AC55 <164 157 108 12 7 5 4 3 1>

    And temperature is ~ 20°C higher than under Yosemite. Fans are constantly running on a clean and settled install. (Spotlight etc. is finished. No obvious CPU-using offenders.)
     
  12. tbkeese macrumors newbie

    Joined:
    Jul 25, 2017
    #537
    Thank you for directing me to all the right posts! My MBP is now working again! Thanks!
     
  13. rlebleu macrumors member

    rlebleu

    Joined:
    Jul 1, 2017
    #538
    You're welcome! But the people we all need to thank are AppleMacFinder, Fguarini, nsgr, GBDO and others who generously gave their time to make it possible for us to convert our expensive paperweight into a useful laptop!
     
  14. Audit13 macrumors 601

    Audit13

    Joined:
    Apr 19, 2017
    Location:
    Toronto, Ontario, Canada
    #539
    I just picked up a good condition late 2011 15" Macbook for parts but I thought I would try to get it going.

    Since I can't install an OS to an internal or external drive, would it be okay to start with a fresh install on an early 2011 13" and put the drive into the 15"?

    Any information would be appreciated.
     
  15. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #540

    Should work without the slightest issue.

    Also, these Macs are so old, they still feature Target-Disk-Mode and FireWire!
    I do not know if the GPU issue also affects this, but:
    Boot your 13" as normal.
    Try holding "t" on startup on your latest acquisition.
    The 15" will now act as an oversized external drive enclosure.
    Connect both macs with a fantastic FireWire-cable.
    The drive in the 15" should show up as just a regular external drive.
    Now just clone the old installation to the 15".
    If the GPU doesn't interfere then you do not need to fetch the screw drivers.

    Official docs for that:
    https://support.apple.com/en-us/HT201462
     
  16. Audit13 macrumors 601

    Audit13

    Joined:
    Apr 19, 2017
    Location:
    Toronto, Ontario, Canada
    #541
    @MikeyN , thanks for the tip.

    I'm not that conversant with terminal commands and I see places that advertise gpu repair. Is it possible for these radeon chips?
     
  17. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #542
    Possible? Yes!
    Cost effective? Likely not.
    Better value then a whole new logic board? Hm, yes, with headaches attached.

    There are reballing services, reflowing services, and chip swaps offered.
    Prices differ. They are cheaper than a whole logic board, but not really cheap either.

    IMHO none of these options are really sufficient.
    The whole system is simply fatally flawed in its thermal design.
    Later generations have air intakes on the side. For a reason.
    These 2011 models just cannot cool AMD chips adequately. These chips aren't as thermally robust as the Intel ones.
    A way to cap their frequency, thereby keeping the temps manageable with the heated air recycler above the keyboard is unknown to me. I saw something for NVidias.

    Drilling holes into the underside might help.
    Applying high quality thermal paste might help.

    Apple said officially to me I should book a flight to either California or Turkey, since there they are bound by law to still provide you with spare parts and are required to service that little monster.


    Concerning the Terminal commands:
    You didn't specify the OS you plan on using.

    To keep it minimal: With Yosemite at least, this is enough:

    While in TargetDiskMode you can and should move the AMDRadeonX3000.kext from /Volumes/NAME_OF_15"sHD/System/Library/Extensions
    to a different folder on the 15" – this should work from Finder.

    While in TargetDiskMode you can and should save a simple text file at the 15"'s root directory.
    name it "forceIntelOnBoot.sh"

    copy the following into that file:

    #/bin/sh
    nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00



    save it,
    then make that executable with typing into Terminal; do not hit enter, yet:

    sudo chmod a+x

    then drag in Finder from the 15"s root directory the file "forceIntelOnBoot.sh" and drop it into the Terminal window.
    This should supply the correct path to your new nvram-GPU cure. Hit Enter and supply your password to authorize the change. (Final command should look like "sudo chmod a+x /Volumes/YOUR15"Disk/forceIntelOnBoot.sh")

    When you now boot the 15" into single user mode (cmd-s on boot), follow the two instructions on screen for fsck and mounting the internal drive read/write.
    Then execute

    /forceIntelOnBoot.sh


    Reboot.

    Now decide if your temperatures are tolerable.
    If it's running too hot:
    Open Terminal and
    sudo kextload /THE_PATH_YOU_CHOSE_TO_MOVE_IT_TO/EARLIER/AMDRadeonX3000.kext

    In case you or one of those hapless Geniuses from The_Bar happen to reset the SMC/PRAM, the file you created will come in very handy.
     
  18. Audit13, Jul 27, 2017
    Last edited: Jul 27, 2017

    Audit13 macrumors 601

    Audit13

    Joined:
    Apr 19, 2017
    Location:
    Toronto, Ontario, Canada
    #543
    @MikeyN, thanks for the write up.

    I'll have to find some FireWire cables and test it out.

    I would prefer to use Sierra 10.12.5 as I have a usb installer.

    Hmm, I'll be flying to San Francisco. Wonder what the apple store would do, if anything, for me.
     
  19. Maglalangfrancis macrumors newbie

    Maglalangfrancis

    Joined:
    Jul 28, 2017
    #544
    I have a question,
    I have a MacBook Pro 2011 15' with an Radeon 6490m.
    I'm gonna have it reballed.
    Can I buy a 6750m chip and upgrade my old one? Here's the new chil.
    --- Post Merged, Jul 28, 2017 ---
    More info : I already tried the method, I opened gFX and it want transferring to the AMD 6490m gpu anymore even in system report, LCD was using Intel HD 3000, but the distortion still happened
     

    Attached Files:

  20. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #545
    As long as you install Sierra on a trouble-free machine first and clone/copy from there you should be good.
    But I believe the following 10.12.6 update might reintroduce AMDRadenX3000.kext into your system.
    Watch out for that.

    While trying to install High Sierra directly I found the machine stuck in an endless loop of panic-reboots.
    My guess: the image for the base system would need to be hacked and the X3000 stripped out. Haven't tried that.
    Anybody done that? Using a direct fresh install of any system directly?
    Checksums or ceritficates in the way?

    Good luck down there and be sure to wear some flowers in your hair.
    https://support.apple.com/en-us/HT201624
    --- Post Merged, Jul 28, 2017 ---
    Reset your smc and try again with the methods developed here.
    Since it's a thermal problem after all, other parts in your machine might be damaged by now.

    My advice is to go either reball, reflow or the new chip.
    Only if you already have the chip and someone doing that replacement procedure for a very low cost it might be worthwhile.

    But ultimately your time and money will be better spent by writing to magazines, Greenpeace, blogs, forums, visiting lawyers and pestering Apple directly about this unacceptable behavior they displayed over this issue.
     
  21. Maglalangfrancis macrumors newbie

    Maglalangfrancis

    Joined:
    Jul 28, 2017
    #546

    I found someone who can reball here for only $50. Will the chip 6750m work to replace my old 6490m? thanks!
     
  22. SirMeowington5 macrumors member

    Joined:
    May 21, 2017
    #547
    Yes, you just have to to boot into recovery mode after install is complete and move the AMDRadeonX3000 Kext.

     
  23. Audit13 macrumors 601

    Audit13

    Joined:
    Apr 19, 2017
    Location:
    Toronto, Ontario, Canada
    #548
    Wow, that price seems very low. Let us know if you get it done and the final result. Thanks.
     
  24. MikeyN macrumors regular

    MikeyN

    Joined:
    Jul 26, 2017
    #549
    But the install never finishes. It won't even start properly installing. It crashes way before.
    After the installer copied itself to the HighSierra partition, the machine reboots to continue installation from the minimal High Sierra system. Creating ram-disks along the way there is only one folder left under root:
    /Volumes/HighSierraHD/macOS\ Install\ Data where the images BaseSystem.dmg and InstallESD.dmg are waiting to be manipulated. A recovery partition for HS does not yet exist.
     
  25. SirMeowington5 macrumors member

    Joined:
    May 21, 2017
    #550
    Can you use internet recovery?

     

Share This Page