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. MikeyN macrumors regular


    Jul 26, 2017
    Indeed a low price. For such a procedure:
    Watch entirely and listen to his comments on the built quality Apple sold us.

    But reballing the old chip is not the same as swapping the old chip out for a new one. Might effect the price.

    Concerning the chip in question:

    Its pins might fit, but the chip model itself is no guarantee for success.
    You have to ask yourself: Where have you sourced the chip, is it "new" or salvaged? Tested to work?

    If the hack methods from here are not sufficient and there are no other problems apparent in your machine it might still be worth a shot.
    --- Post Merged, Jul 28, 2017 ---
    Way slow.
    I might try first to pacifist an installation. Or doing the install on an unaffected machine.
    But it's about a beta. Unless someone already confirms that there are notable improvements for the issues of this thread it' very low priority for me.
  2. cactux macrumors newbie

    Jun 18, 2017
    First off, thanks a lot to everyone who kept this thread alive and discovered the trick to lower the temps!

    Anyway, I think I screwed up...
    My MPB is running El Capitan, and up until yesterday, I used to load AMDRadeonX3000 manually to decrease my temps.
    However, yesterday while trying to fix the 'black screen after sleep mode' issue I overwrote the kexts in my AMD_kexts folder (with the one I load manually in it) with the ones in my /System/Library/Extensions/ folder (Yes, for some reason, there was a AMDRadeonX3000.kext in there, though it was never loaded at launch).
    Since then, when I try to load it from AMD_kexts, I get this error :

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

    The logs state this :

    Jul 28 20:30:01 MacBook-Pro-2[48]: /amd_kexts/AMDRadeonX3000.kext has no Info.plist file.
    Jul 28 20:30:01 MacBook-Pro-2[48]: Error: Kext /amd_kexts/AMDRadeonX3000.kext - not found/unable to create.

    I reset the NVRAM/PRAM and went through the whole process again (I even removed AMDRadeonX3000 from the Extensions folder), but to no avail...

    Any thoughts? Is it possible to create this Info.plist file ?

    At this point I'm not even sure that updating to Sierra would solve anything...
  3. nsgr, Jul 28, 2017
    Last edited: Jul 28, 2017

    nsgr macrumors 6502

    May 22, 2017
    High Sierra is an operating system under development yet. There are many bugs yet.
    --- Post Merged, Jul 28, 2017 ---
    You should have deleted this file or have not moved it (Info.plist). The operating system would hardly erase this file.

    It was probably when you moved the AMDRadeonX3000.kext.

    If you are having trouble loading a kext with a dependency message, then you should use the kextlibs command to see what the dependencies are.

    Example /DisableExtensions/AMDRadeonX3000.kext - Sierra 10.12.6

    cd /DisableExtensions

    kextlibs AMDRadeonX3000.kext

    For all architectures: = 311.14 = 515.3 = 2.9 = 159.9 = 16.7 = 16.7 = 16.7 = 16.7
  4. Audit13 macrumors 68040


    Apr 19, 2017
    Toronto, Ontario, Canada
    I couldn't find a FireWire cable to connect my late 15" 2011 and early 13" 2011 together so I installed the latest Sierra to a corsair neutron ssd and the latest El Capitan to a Samsung 850 evo.

    With either ssd in there 15", it takes about 20 seconds before the apple logo appears whereas it used to appear after a few seconds. The progress gets to about 66%, everything disappears and I'm left with a white screen just like before.

    Any idea why it now takes longer for the apple logo top appear?

    I'm in the process of trying the steps from there original post.
  5. cactux macrumors newbie

    Jun 18, 2017
    Apparently the info.plist missing is the one inside the kext (I opened another kext to compare, and this one had an Info.plist inside its Contents folder)
    Which, by the way, is preventing me to use kextlibs AMDRadeonX3000.kext
  6. nsgr macrumors 6502

    May 22, 2017
    The Info.plist file is essential for loading AMDRadeonX3000.kext.

    The system would not delete the Info.plist by itself. Some mistake you must have made during the process.

    I do not know which system and version you are using. Then you should get the last update combo for your system and extract this kext with the pacifist software.

    For example, if you are using Sierra 10.12.6 (installed hard disk), you should download this combo update, mount the dmg file and extract the pkg with the kexts (example folder/directory DisableExtensions).

    Then you will have an AMDRAdeonX3000.kext intact to be able to load.

    Download macOS Sierra 10.12.6 Combo Update
  7. MikeyN macrumors regular


    Jul 26, 2017

    Try booting while holding cmd-v at startup. Or:
    Next time in single user mode type nvram boot-args="-v"
    This enables verbose booting and will tell you a bit more on where it might hang.

    It is always possible that the machine completely dies under your fingers, since it is a lemon Apple sold you.

    My guess here is, that you screwed up a detail on the way.
    The first post in this thread is important. But it is by no means the easiest way to achieve success.
    Typing the long string by hand is error prone.
    If AMDRadeonX3000.kext is already out of the way, reset the smc and start over.
    Try #429 in this thread, but prepare the little .sh-file like I suggested.
    That way you have a much easier time getting the string right for writing into nvram.

  8. cactux macrumors newbie

    Jun 18, 2017
    Thanks, I'm gonna try that (I'm using 10.11.6).
    I don't know what happened with the info.plist in this kext. I didn't remove it myself, I guess it's been like this for a while since the kext was in the /Extensions folder but didn't try (failed?) to load at launch.
  9. MikeyN macrumors regular


    Jul 26, 2017
    You do not have to panic, yet.

    It is quite clear that if there was a X3000 kext present in /Sys/Lib/Ext that this kext was defective for a while now.
    Happened to me on Yosi when the latest sec-update wrote only a partial kext-package to that location.

    First of all: use the whole AMDRadeonX3000.kext-folder/package from your backup.
    If no backup is available, that's a pity in itself.
    But things happen, and even if it's just the info.plist that you are presented with or think as causing the trouble, always use everything that's under the AMD*.kext-hierarchy. This is less error prone compared to asking someone to mail you just that tiny little .plist-file or pasting its contents here and the like.

    Like nsgr said, extract from the latest combo-update,
    _but_ for your system (El Cap?) just this one kext with admin privileges to your desired location.
    That might take a while, the update is quite a huge archive.

    Oh. That means you should mv the kext back to /Sys/Lib/Ext before applying the latest sec-update again. After that's finished you then have to remove that kext from that location again.
    Only Apple knows what they fixed in that sec-update.
  10. Audit13 macrumors 68040


    Apr 19, 2017
    Toronto, Ontario, Canada
    My mistake, I had a drive with Sierra inside the laptop. I installed a drive with El Capitan and I see the gpu-power-prefs file but I cannot remove it.

    I followed these steps but the operation is not permitted:

    *) cd /
    *) umount /sys/firmware/efi/efivars/
    *) mount -t efivarfs rw /sys/firmware/efi/efivars/
    *) cd /sys/firmware/efi/efivars/

    I did not receive any error messages after entering each command.
  11. MikeyN macrumors regular


    Jul 26, 2017
    This doesn't add up. If the "operation is not permitted" then that is an error message.
    But I think I know what you mean.

    chattr -i "/sys/firmware/efi/efivars/gpu*"
    # to remove immutable flag
    rm "/sys/firmware/efi/efivars/gpu*"

    should eliminate your current problem, if you're still booted into some linux.

    But seriously, take another look at posts #528, #542.
    If you try again from a beginning (either method), first reset your smc, that also deletes the variable.
  12. Audit13, Jul 28, 2017
    Last edited: Jul 28, 2017

    Audit13 macrumors 68040


    Apr 19, 2017
    Toronto, Ontario, Canada
    Followed your commands and I was able to remove the gpu-power-prefs file. Unfortunately, upon reboot, the Macbook is stuck on the apple logo worth the progress bar stopped at roughly 33%.

    I'm at the point now where it will be used for parts.

    Thanks for all your help and advice.
  13. MikeyN macrumors regular


    Jul 26, 2017
    But I was officially requested to try it on that machine.
    And if it gets better in regard of our common situation with AMD power handling or default GPU on boot?
    I was really curious.

    We are far from finished here.

    1. the kext should be back in /System/Library/Extensions somehow

    2. if this will not be possible, autoloading it into a fully booted up kernel should somehow be accomplished

    3. We do not know for sure under which circumstances sleep is a troublemaker

    From what I gather here it looks to as if Yosi and El Cap are problematic per se, but some have trouble-free success with Sierra?

    4. How much control do we get over the temps from the GPU?

    My observation tells me that Yosi-X3000 brings it down the most.
    Yosi w/o X3000: 60–90°C (GPU-Diode readout)
    Yosi w X3000: 8–50°C
    Sierra w/o X3000: 70-90°C
    Sierra w X3000: 40-65°C
    --- Post Merged, Jul 28, 2017 ---
    Don't jump!
    Take deep breath and step back from that edge.
    Sounds like you were just a little bit impatient.
    Have you moved the offending AMDRadeonX3000.kext from its original location while the SSD now in your defective Macbook was in your working one?
  14. nsgr, Jul 28, 2017
    Last edited: Jul 28, 2017

    nsgr macrumors 6502

    May 22, 2017
    I also received the invitation to install the High Sierra. But after seeing the reports of several bugs, then I decided not to install.

    1 - Once I was able to go through the login screen with AMDRadeonX3000.kext inside the /System/Library/Extensions

    It was with nvram boot-args="-v agc=0". It was with Sierra 10.12.3

    I could not get it later.

    AGC option can only be set through the Recovery Mode (Command + R or Command + R + S)

    AGC = AppleGraphicsControl







    I did test with agc=1, agc=2 and agc=3 but temperatures did not drop much after loading AMDRadeonX3000.kext.

    The temperature only decreases greatly with (-v = verbose mode - no influence on temperature):

    nvram boot-args="-v agc=0"


    nvram boot-args="-v"

    The problem is that this option is not explained by Apple. So it goes in trial and error.

    It would have to see if the triangulation agc + pmset gpuswitch + System Preferences Automatic Graphics Switching has some relation.

    2 - The kexts are automatically loaded in:



    Maybe putting AMDRadeonX3000.kext in /Library/Extensions - do not freeze the Macbook Pro at boot time.

    3 - I use Macbook Pro as Desktop. I do not use sleep mode.
    Macbook Pro always on when I'm working. At most screen saver with Display Sleep after 15 minutes of screen saver.

    4 - I use the Istat Menu -> Sensors -> CPU Die Analog + GPU Die Analog (Sierra 10.12.6 clean install)

    Idle Mode with only open:
    Terminal - gfxcardstatus - Active Monitor - Istat Menu

    Without load AMDRadeonX3000.kext

    The temperatures are not always the same when loading the graphic environment screen.

    CPU Die Analog -> 70C or 45C -> decrease to 50C or 45C after 5 minutes in idle mode.

    GPU Die Analog -> 60C or 50C -> decrease to 45C or 30C after 5 minutes in idle mode.

    With load AMDRadeonX3000.kext

    CPU Die Analog -> 35C -> after 5 minutes in idle mode.

    GPU Die Analog -> zero or _ -> after 5 minutes in idle mode.
  15. MikeyN macrumors regular


    Jul 26, 2017
    Main OS being Yosi: same here with different agc options.
    But loading X3000: short spike in the temps, then dropping really beautifully.

    Is agc being overridden with loading X3000?

    Indeed, more official docs would be welcome. Regardless.

    Please explain.

    First line response: Alas, it didn't work here.
    In Yosi at least its no different to /Sys... compared to /Lib…

    I travel a lot, mainly very short distances.
    Having functional sleep better than linux in 2001 would be a treat.


    The numbers are just a general indication.
    My impression is, that GPU-diode is another pit of snakes – unreliable – from the start.
    But loading X3000 very clearly allows me to touch the machine, though still too warm/hot, compared to not loading it.
  16. Audit13 macrumors 68040


    Apr 19, 2017
    Toronto, Ontario, Canada
  17. MikeyN, Jul 29, 2017
    Last edited: Jul 29, 2017

    MikeyN macrumors regular


    Jul 26, 2017
    Looking through the HighSierra installer presents another problem:
    I do not have to remove AMDRadeonX3000.kext from the BaseSystem image.
    Apple did that already.
    AMDRadeonX3000.kext is not there.

    These are all there is now:

    Strangely the kext is present again in 10.13 Core.mpkg, so it will be installed.
    But that does not explain why the machine crashes on boot, even without X3000 present.

    Suggestions on how to proceed?
    --- Post Merged, Jul 29, 2017 ---
    Forcing the install manually from Yosemite to an external disk allowed me get all files from the High Sierra installer written to that disk.
    Removing X3000 from there doesn't help now.
    Even the fully installed system crashes on boot, just like the official installer, writing an extreme amount of info on screen while doing so.
    Too fast to read and it reboots automatically.
    There are no traces of that info left on disk, the log directores are all empty.
    But the nvram is now flooded with aapl,panic-info variables of an unusual length.

    Should the above not be warning enough,
    current info on Apple's site says:
    MacBookPro8,2 MBP81.0047.B2A (2015-001) 1.68f99 (SMC 1.6)
    But that install procedure brought a little surprise along the way, an unannounced hardware-patch (EFi?):
    Now it is: Boot ROM Version: MBP81.0049.B01 SMC Version (system): 1.69f4

    Thankfully 10.10 still boots.

    Booting HighSierra in safe-mode works, it respects the nvram setting and even tells you so while booting.
    "agc … policy disabled"
    There is hope again!

    Alas, I now borked /System/Library/Caches.
    It's empty, system won't boot from there "error loading prelinkedkernel"
    touch /Volumes/HighSierraHD/System/Library/Extensions
    kextcache -u /Volumes/HighSierraHD/

    does not repopulate it. kextcache shows up in top and uses cpu but fails silently.
  18. nsgr, Jul 29, 2017
    Last edited: Jul 30, 2017

    nsgr macrumors 6502

    May 22, 2017
    The agc option influences (or no) the temperature after manual loading of AMDRadeonX3000.kext.

    agc=0 - without influence - temperature decreases greatly

    agc=1 - has influence - temperature does not decrease much

    agc=2 - has influence - temperature does not decrease much

    agc=3 - has influence - temperature does not decrease much

    Normal operation of Macbook Pro (no AMD chip problem).

    1 - Boot with the AMD video card. Main video card.

    2 - Load kexts AMD6000Controller.kext.

    3 - If configured for Automatic Graphics Switching (system preferences), then the AMD6000Controller is unload and loaded AMDRadeonX3000.kext.

    I do not know if pmset gpuswitch is obsolete.

    AMD6000Controller.kext - AMD chip being main - power state up (AMD) - increase temperature

    AMDRadeonX3000.kext - Intel being main chip - power state down (AMD) - decrease temperature

    When you run the gpu-power-prefs (Arch Linux or sudo nvram GUID: Variable = Value) settings to force the Intel video chip as the primary, then you put a straitjacket on the Macbook Pro.

    So Mac OS does not work as designed and you have to make adjustments. Switch AMD to Intel - Switch Intel to AMD. Load/unload AMD6000Controller.kext - Load/unload AMDRadeonX3000.kext by system.

    Arch Linux or sudo nvram GUID: Variable = Value (gpu-power-prefs - lock to Intel) does not get along very well with AMDRadeonX3000.kext in a "normal" way.
    That's why you have to manually load AMDRadeonX3000.kext to not freeze at the boot screen (IOConsoleUsers: gIOScreenLockState 3).
    --- Post Merged, Jul 29, 2017 ---
    All Mac OS installers (pendrive - Lion, Yosemite, El Capitan, Sierra, High Sierra, etc.) do not have AMDRadeonX3000.kext. Recovery mode also does not have AMDRadeonX3000.kext.

    That's how I noticed that AMDRadeonX3000.kext was the problematic kext.

    For the installer of the Mac OS (pendrive) or Recovery mode, the boot did not freeze with the gpu-power-prefs for Intel video card. There is no AMDRadeonX3000.kext. I do not know if this was intentional by Apple or lucky.


    log show | grep AGC

    kernel: (AppleMuxControl) AGC: booted to IG, policy disabled!!

    kernel: (AppleMuxControl) AGC: 3.14.49, HW version=1.9.23, flags:1, features:20600, policy: 30

    IG = Integrated Graphics

    flags = agc option

    Change agc option number -> change flags number.

    log show | grep GPUDict

    kernel: (AppleGraphicsPowerManagement) [AGPM Controller] build GPUDict by Vendor1002Device6741

    Vendor1002Device6741 - AMD/ATI (1002) - AMD Radeon HD 6750M (6741)

    You can investigate the error error of AMDRadeonX3000.kext through the log command.

    First clear the log so it does not generate a very large file (text file). If you have a multi-day log, then the file will be about 500MB / 1GB.

    1 - Boot normal -> open Terminal

    sudo nvram boot-args="-v debug=0x14e"

    sudo log erase --all

    2 - Then reboot the system.

    3 - Enter Recovery Mode -> put back AMDRadeonX3000.kext to /System/Library/Extensions


    Boot normal

    After freeze (IOConsoleUsers: gIOScreenLockState 3 - AMDRadeonX3000.kext in /System/Library/Extensions) -> force shutdown power button.

    4 - Boot recovery mode -> move the AMDRadeonX3000.kext to folder DisableExtensions.

    5 - Boot normal (AMDRadeonX3000.kext -> /DisableExtensions)

    6 - Open Terminal

    log show > logshow.txt

    Open logshow.txt with .

    The logshow.txt file will have various information from the beginning of the boot. So it is good to clean the log before not having several days of boot log with several pages of text (sudo log erase --all).

    Update 2:

    log show | grep AGPM

    kernel: (AppleGraphicsPowerManagement) [AGPM Controller] build gpuDict by GPU IGPU.

    kernel: (AppleGraphicsPowerManagement) AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 15

    kernel: (AppleGraphicsPowerManagement) [AGPM Controller] build GPUDict by Vendor1002Device6741

    kernel: (AppleGraphicsPowerManagement) AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 8

    I edited the Info.plist file for max-power-state=0 but it did not work. FGuarani method with nano editor.

    /System/Library/Extensions/AppleGraphicsPowerManagement.kext/Contents/Info.plist -> IOKitPersonalities -> AGPM -> Machines -> MacBookPro8,2 -> Vendor1002Device6741 (my AMD chip) -> max-power-state = 0

    After reboot -> Boot normal -> The temperature remained high (without loading the AMDRadeonX3000.kext) and the AGPM continued to show:

    kernel: (AppleGraphicsPowerManagement) [AGPM Controller] build GPUDict by Vendor1002Device6741

    kernel: (AppleGraphicsPowerManagement) AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 8

    I thought by changing to max-power-state=0 in the Info.plist file, then the temperature would drop without having to manually load AMDRadeonX3000.kext. Unfortunately it did not work.

    Within the AMD6000Controller.kext and AMDRadeonX3000.kext executable files there are PowerStae configurations.

    I used software to view it for this information.


  19. MikeyN, Jul 30, 2017
    Last edited: Jul 30, 2017

    MikeyN macrumors regular


    Jul 26, 2017
    If X3000 is absent from all installers it is likely because installs happen rarely, and mostly on line-power, so they do not bother switching between different GPUs.

    Here, I do not see a difference whether agc is set to anything or not at all.
    Tried 0, 1, 2, 3.
    Current session is booted with only boot-args="-v".
    X3000 not yet loaded GPU-diode hovers between 40–45°C.
    I do not trust that sensor anymore.

    The log command seems unavailable in Yosi.
    I just grepped the log-files directly.

    The relevant device for me on Yosi seems to be here:


    Trying to read and deduce from:

    This might take a while.
    Next stop: to set the key in bold to "disabled" (the following two keys)?[/QUOTE]
  20. Audit13 macrumors 68040


    Apr 19, 2017
    Toronto, Ontario, Canada
    @MikeyN, just wanted to let you know that I decided to have the gpu replaced. I'll update my post when I get the unit back.

    Thanks to everyone for the excellent information regarding this laptop.

    I also have a 2010 15" with the nvidia gpu and capacitor issue :( At least with this unit, the software fix resolved the issue.
  21. RandyBoBandy macrumors newbie

    Jul 29, 2017
    I am also trying it from an arch linux dvd and it is not working saying operation not permitted.
    --- Post Merged, Jul 30, 2017 ---
    I'm having trouble deleting gpu-power-prefs,

    i'm running Yosemite, and following the steps through arch linux, It's just not permitting me to perform any action. also tried sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 but that didnt work either
  22. MikeyN, Jul 30, 2017
    Last edited: Aug 22, 2017

    MikeyN macrumors regular


    Jul 26, 2017
    First: deleting the variable is most easily accomplished by resetting the smc.
    Second: if you want to do it in linux go to #561

    Somehow your description sounds like you are trying the nvram command from within linux?
    Also, typing the nvram command is error prone.
    Redo that once more.

    ###__ If you have to re-apply the nvram variable: __###

    To make it easier and faster:
    Place the attached file at the root of your internal drive.
    sudo chmod a+x /

    Move AMDRadeonX3000.kext out of /System/Library/Extensions
    Reset smc.
    Boot single user.
    Follow onscreen instructions for fsck and mount.
    then execute

    sh /

    Attached Files:

  23. RandyBoBandy macrumors newbie

    Jul 29, 2017
    I've already done the fsck and mount, should i redo this step?
  24. burnbaby macrumors newbie

    Jul 31, 2017
    I had my discrete GPU dying on me a while ago but have had it repaired by an expert by him actually soldering a new GPU to the logic board. He had to do it twice because the first time he wasn't successful. I had the kext files removed by then because my macbook pro was stuttering and this fixed the issue. The second soldering attempt seems to have worked, however, the performance has decreased somewhat since then but I can live with that.

    However, I have now upgraded from El Capitan to macOS Sierra and apart from the upgrade taking almost 24 hours I since have kernel_task going wild on me sometimes on over 1,000 % CPU usage and as anyone can imagine performance is close to none.

    I went ahead and applied AppleMacFinder's efi fix because I thought this behaviour would be related to the GPU issue but it didn't solve the kernel_task issue.

    I am at a complete loss as to determine what causes this or if it is the GPU problem at all that is causing kernel_task to go mayhem.

    When in safe mode kernel_task only eats up to ~40 to 50% CPU which IMHO still is pretty much for just an App Store download (I am downloading El Capitan) but hey, it's far better than in normal mode.

    I did SMC and NVRAM resets and after that went ahead and applied the efi fix again - with the same result.

    Can anyone tell me please if a) I can revert the modifications to efi variables to the original state and b) how likely it is that my kernel_task problem is related to the previous GPU meltdown in conjunction with upgrading to macOS Sierra.

    Any help would be appreciated!
  25. MikeyN macrumors regular


    Jul 26, 2017
    If you just redid a smc-reset and are now still in single user with fsck and mount also already done:
    no. Jump to "Probable Answer:"

    (The state I just described means your EFI-variable for GPU power is not present now and you just barely managed to boot into single user – with distorted graphics, blue tint or scan-lines.)

    If this is not exactly your situation, power down your machine and redo every step in e.g. #572.

    Probable Answer:
    Now either execute the short script that I offered and that you have placed at the root-level of your internal drive.

    Or 'just' type carefully, still in single-user:
    nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

Share This Page