Permanently Disable 2011 15"/17" MacBook Pro Dedicated GPU - gMux IC Bypass

Discussion in 'MacBook Pro' started by dosdude1, Aug 25, 2018.

  1. mikegasche, Jan 22, 2019
    Last edited: Jan 22, 2019

    mikegasche macrumors newbie

    mikegasche

    Joined:
    Jan 21, 2019
    #151
    Here are my 5 cents back: I have a solution in place that works perfectly without any hardware modification so far!

    Here's my setup:
    • MacBook Pro (17-inch, Late 2011) [MD386LL/A] [A1297]
    • I changed the HDD to a SSD Samsung 840 EVO 1TB
    • I changed the battery to a LMP (95 Wh)
    • I changed the memory to 16 GB Corsair
    • macOS High Sierra 10.13.6 (17G4015)
    As far I can conclude, I have no limitations except of course the power & acceleration from the dedicated AMD GPU. I even can run programs that would need the dedicated GPU such as Shotcut (https://shotcut.org). The temperatures of the dedicated GPU are extremely low: 40 degrees celsius. The GPU diode shows very strange low temperatures such as from 7 degrees celsius to 20 degrees celsius when the system is not used. Even the CPU is below 50 degrees celsius. The temperature management seems pretty good; fans are almost never running high and if you touch the aluminium case right under the screen it is never getting hot as this has been before.
    Furthermore, the battery runs of course longer and I would like to mention here, that the backlight of the keyboard works as designed as well the brightness range of the screen that can be adjusted with F1/F2 as designed to.

    For me it is unclear yet, what I would lose when I would remove the R8911 diode from the motherboard that seems to power the dedicated GPU. Hence, the GPU is still powered, but I can accept this, since this solution doesn't limit functionalities (yet)!

    One personal note: I love my MacBook Pro, even it's old. I love it, because it is the last MacBook that has a 17" matte screen; I still have no idea who in the world really wants a *sorry* ****** glossy screen - glossy screens are the biggest nonsense ever invented - I can see NADA when I'm in a train or when daylight is reflecting on the screen & furthermore, for me it still is the only system I can do all with: to develop, compose, have a secure & save system, a UNIX shell & still enough performance to create everything I want. So, actually it is a great compliment to the Steve Jobs era of Apple & its employees, despite the fatal engineering error with this dedicated GPU. But as a long-time Apple-user (in different areas and products) I condemn Apple's behaviour towards users that have this GPU problem. It stays a fatal engineering error without any real solution for the users. This is not the way to make a business, never! It has nothing to do with "THINK different." but unfortunately more with "You’ll see why 2018 is like “1984”."

    Before I list the modifications, I need to point out a circumstance that I had, since I have updated to High Sierra and converted my SDD to APFS:

    • Since the conversion and a certain system security update from Apple (Can't remember the version), my MacBook always booted into prohibited sign. I'm using the Chameleon SSD Optimizer to turn on TRIM and I had SIP enabled. I assumed it had something to do with the unsupported Samsung SSD in combination with TRIM, possibly SIP & APFS too; an unholy combination! I recommend everyone to stay on HFS+ instead APFS. APFS is not a bad filesystem, but you might be happier later whenever you need to mount your SSD/HDD from an external system. There are foreign filesystem protocols out there to mount APFS, but it is annoying.
    • Anyway, to be able to boot my MacBook, I had to first boot into recovery mode, chose there the Startup-Volume and reboot, then AND ONLY THEN the system started up from my APFS SSD volume. (Note: Surprisingly, this problem has been gone after this solution!)
    • So when my dedicated GPU finally died - the second time after the official nonsense Apple repair program that doesn't do anything good - I had the problem, that I even couldn't boot into recovery mode nor in the single user mode, because somehow the defect GPU hanged up the system in both cases ! So I was in big trouble.

    The following steps show my way of bringing the system back, with the above conditions and it is a combination of many solutions out there already provided by some power users (see references below). I haven't approached the solution in these exact steps, but this is the conclusion of my solution:


    Step 1: Boot from Arch Linux

    Reference: https://forums.macrumors.com/thread...ntel-integrated-gpu-efi-variable-fix.2037591/ ("100% WORKING SOLUTION" Section)

    1. Download latest Arch Linux ISO Distribution and burn the ISO image 1 to 1 to a CD or create a bootable USB stick with that image (depending on what your MacBook is able to boot from the Mac Startup Manager).
    2. Enter CDROM or attach USB stick with Arch Linux and start your Mac by pressing the left ALT-Button till you end up in the Mac Startup Manager.
    3. Boot from "EFI boot" and be ready to use the arrow keys as soon the selection menu appears.
    4. When you see the menu use the arrow down key to stop the timer from making an auto selection, then go back to the first entry "Arch Linux archiso x86_64 UEFI CD" and press 'e' - when pressing 'e' you see that the arguments for that selection appear.
    5. In the arguments go to the end with the right arrow key, add a space and add the argument nomodeset
    6. Press enter, wait a while till Arch Linux has been booted
    7. Note: the EFI Partition is automatically mounted!
    8. cd /sys/firmware/efi/efivars/
    9. If there are any files starting with gpu-, delete them all with rm gpu-*; if this is not possible you might need to execute chattr -i gpu-* first.
    10. printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
    11. Make the new file/gpu-prefs immutable: chattr +i gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
    12. cd /
    13. umount /sys/firmware/efi/efivars/
    14. reboot (...and be ready to boot into Single User Mode by holding down CMD-S)

    Step 2: Make some NVRAM modifications & make a Script to repeat modifications

    Reference: https://apple.stackexchange.com/questions/267581/gpu-problem-boot-hangs-on-grey-screen ("Background and explanations" Section) & https://forums.macrumors.com/thread...fi-variable-fix.2037591/page-34#post-24944928

    1. In my case with the SSD boot problem and with the defect GPU I have been able to boot now successfully into Single User Mode and the GPU is already deactivated to a certain level I would say. "Step 1" can be repeated in any case if you are getting new problems and now you have a boot medium that can be reused - always a good thing!
    2. cd /
    3. mkdir /tools
    4. vi /tools/roxy (assuming you know how to use the vi-editor: "i" goes into insert mode, then press ESC and ":wq" writes out the file and ends the editor)
    5. Script:
      nvram boot-args="kext-dev-mode=1 agc=0"
      nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
      wait 1
      reboot
    6. chmod 755 /tools/roxy
    7. Note: If you cannot use "vi" you should even be able to boot your mac normally and to create the file & make the changes in the macOS GUI, but you have to make sure that the folder "tools" and the script "roxy" are assigned to the user root & the group wheel, then you would have to reboot into Single User Mode again. To change user & group you must use the terminal anyway:
      sudo chown root /tools
      sudo chgrp wheel /tools
      sudo chown root /tools/roxy
      sudo chgrp wheel /tools/roxy
    8. Now back in Single User Mode or if you have created your file here, reboot the system by executing the script created:
      bash /tools/roxy .
    9. If you made it that far and your system has booted, I recommend you take a break boot the system and make a Time Machine Backup. Just do it & don't think! BTW, the nvram parameter agc=0 seems to be doing really magic (lowering GPU temperatures a lot!)

    Step 3: Disable SIP

    1. Reboot / boot into Recovery Mode by holding down CMD-R.
    2. There's not much to do here but opening a terminal from the menu and enter the following command to disable System Integrity Protection:
      csrutil disable
    3. Reboot normally.

    Step 4: Taking care of KEXT's & create a Login-Hook (improved power management)

    1. Note: I do load all AMD kernel extensions (kexts) except one I load with a login hook.
    2. Use a terminal.
    3. cd /
    4. sudo mkdir /AMDExtensions
    5. Copy /System/Library/Extensions/AMDRadeonX3000.kext to /AMDExtensions and delete /System/Library/Extensions/AMDRadeonX3000.kext in Finder.
    6. Make sure /AMDExtensions and /AMDExtensions/AMDRadeonX3000.kext belongs to the user root and the group wheel (See step 2 how to do; if this doesn't work for any reasons, activate the root user: https://support.apple.com/HT204012 and login with the root user in a terminal)
    7. It seems it is essential - as far I remember - recursively change the user and group, since kernel extensions are packages:
      sudo chown root /AMDExtensions
      sudo chgrp wheel /AMDExtensions

      sudo chown -R root /AMDExtensions/AMDRadeonX3000.kext
      sudo chgrp -R wheel /AMDExtensions/AMDRadeonX3000.kext
    8. Then create the login hook that lazy loads the moved AMD kernel extension:
      sudo mkdir -p /Library/LoginHook
      sudo vi /Library/LoginHook/LoadX3000.sh
    9. In "vi" editor enter the following:
      #!/bin/bash
      kextload /AMDExtensions/AMDRadeonX3000.kext
      exit 0
    10. Save the file and exit "vi" (Press ESC, ":wq")
    11. Make it executable and activate it:
      sudo chmod a+x /Library/LoginHook/LoadX3000.sh
      sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh
    12. The separated AMD kernel extension is now loaded at login; I'm not sure if the hook is executed when the login window appears or when the user logs in. It would be preferable that it is executed when the login screen appears, so the power management is in place before the user logs in. If anyone knows more about this or has a better solution please comment!
    13. Now reboot your system normally.
    14. When you have logged in, check if the necessary kernel extensions all have been loaded, 5 pieces:
      kextstat | grep AMD
    15. The output should look like that:
      ... com.apple.kext.AMDLegacySupport ...
      ... com.apple.kext.AMD6000Controller ...
      ... com.apple.kext.AMDSupport ...
      ... com.apple.kext.AMDLegacyFramebuffer ...
      ... com.apple.kext.AMDRadeonX3000 ...
    Step 5: Finish
    1. If you have activated the root user, I recommend to deactivate it again.
    2. Watch your temperature with the free iStat Pro Widget (e.g. here: https://www.chip.de/downloads/iStat-pro_44806820.html)
    3. When I'm writing this, my GPU temperature is 44 degrees celsius and the GPU diode is 10 degrees celsius [must be defect....])
    4. It is a good time to make a Time Machine Backup again.
    5. Now, whenever you get apple system updates or the NVRAM is reseted - depending on your system, configuration and/or problem - start with Step 1 or in most cases execute the script in Single User Mode that has been created in Step 2 : bash /tools/roxy .

    Note: If you find any error in this solution let me know or comment for improvements. Thanks to the power users that I have been referring to. Hope this works for you without heating up your soldering iron ;-)
     
  2. rivermandan macrumors newbie

    Joined:
    Apr 14, 2011
    #152
    I think you stumbled into the wrong thread, mikegasche; this thread is dedicated to permanently disabling the DGPU, not the old software mods. I've been chomping at the bit for someone to post the 17" method and you got my hopes up
     
  3. mikegasche macrumors newbie

    mikegasche

    Joined:
    Jan 21, 2019
    #153
    Ah well, I guess the Thread will survive it!
     
  4. trifero macrumors regular

    Joined:
    May 21, 2009
    #154


    Thank you so much. Same as you, 2011 17" mate screen is my favourite laptop. In fact, I have 2 of them.
     
  5. Dadioh macrumors 65816

    Dadioh

    Joined:
    Feb 3, 2010
    Location:
    Canada Eh?
    #155
    I did the mods for the MacBook Pro 17" early 2011. Works OK but I am getting kernel task running at 200% which is usually a sign that some thermal sensor is out of whack. When that happens Apple runs kernel task to keep the CPU cool. I suspect that the issue "could" be that I bought the machine without a battery. I jury rigged a A1278 battery just to check that theory and that does fix the sensors related to battery temp. However, the other sensor that is not reading is GPU Vcore. Makes sense since we have removed R8911 to power off the dGPU.

    I ordered a proper 17" battery off Amazon and hoping that is the reason for the kernel task issue.

    BTW the mods around the GMUX are all identical to the 15" model. The locations for LCD_BKLT_PWM, LCD_BKLT_EN, and PP3V3_SW_LCD_UF are in different locations. Used the schematic and board view to figure that last one out.

    The basic guide that I used was the attached one from the first page of the thread (worked on my daughters MBP15).
    MBPro15_820-2915_NoGPU.jpg
     
  6. Dadioh macrumors 65816

    Dadioh

    Joined:
    Feb 3, 2010
    Location:
    Canada Eh?
    #157
    I got the new battery and that solved the kernel task issue. I think that Apple was slowing down the machine because without battery the charger itself cannot provide high current spikes on demand. So the fix works fine on 17" as well!
     
  7. trifero macrumors regular

    Joined:
    May 21, 2009
    #158
    That’s good news!
     
  8. ibrahim monem macrumors newbie

    ibrahim monem

    Joined:
    Sep 9, 2018
    Location:
    Egypt
    #159


    Firstly . Thank you

    Second . Can you help me with the Modification this model Macbook A1398 2012
     
  9. Dadioh macrumors 65816

    Dadioh

    Joined:
    Feb 3, 2010
    Location:
    Canada Eh?
    #160
    That model doesn’t have the issue with failed AMD graphics so this thread is not for you. But it does have a very common issue with U8900 which is the GPU power device which is a QFN package with poor solder joints. You likely just need someone to redo the solder joints on that device. But that is a topic for a different thread, not this one.
     
  10. StefanWiswedel macrumors newbie

    Joined:
    Feb 5, 2019
    #161
    I have done the NVRAM fix but my MBP still crashes when the computer sleeps (close lid) and I cannot use external display. If I did the hardware fix, would it fix these two issues?
    --- Post Merged, Feb 6, 2019 ---
    I have done the NVRAM fix but my MBP still crashes when the computer sleeps (close lid) and I cannot use external display. If I did the hardware fix, would it fix these two issues?
     
  11. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #162
    Yes, with this full hardware bypass, that sleep issue will no longer occur. However, you still cannot use an external display, due to the fact that the external display port is wired directly to the dedicated AMD GPU.
     
  12. StefanWiswedel macrumors newbie

    Joined:
    Feb 5, 2019
    #163
    OK cool. Good to know. Sucks about the external display issue though ...

    Are there any other fixes for the sleep issue? Find it really frustrating to have to shut down properly all the time
     
  13. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #164
    With the software modification, there's nothing you can do. As I mentioned, performing this full hardware bypass will rectify that sleep issue.
     
  14. ibrahim monem macrumors newbie

    ibrahim monem

    Joined:
    Sep 9, 2018
    Location:
    Egypt
    #165

    Are already a few chip amd damage. But also damaged and I have a device that has a problem in the amd chip. I want to the Modification this model hardware .

    Take a look at this. The Chinese man did it but hides the way

     
  15. Olivia88 macrumors member

    Joined:
    Jul 28, 2018
    #166
    There's a way to do it. check out the post I made on how to.
    --- Post Merged, Feb 6, 2019 ---
    Why do you deliberately mislead people ? its not the first time I've seen you do this.
     
  16. dosdude1, Feb 6, 2019
    Last edited: Feb 6, 2019

    dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #167
    I'm not trying to mislead anybody, I just hadn't realized there was actually a software solution that fixed sleep mode. I apologize for the confusion.
     
  17. Olivia88 macrumors member

    Joined:
    Jul 28, 2018
    #168
    Then I apologise too, I thought you'd for sure know.
     
  18. Phil_590 macrumors newbie

    Phil_590

    Joined:
    Feb 9, 2019
    #169
    Hi,
    First of all, thanks for showing this mod ;)
    I did it to my 15 inch MBP, it is working fine but my gmux ic was removed before.... could you explain how to flash the 13 inch firmware, so i get graphics acceleration?
    Would be great ;)
    Sorry for bad english ;)
     
  19. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #170
    You may already have graphics acceleration... After doing this mod on other boards with removed gMux ICs, I found that those retained graphics acceleration, oddly enough.
     
  20. Phil_590 macrumors newbie

    Phil_590

    Joined:
    Feb 9, 2019
    #171
    Ok thanks ;) i indeed have graphics acceleration...
    But i have another question: I am currently trying to mod a 2010 Macbook Pro with your technique, but it is not booting since i removed the gmux ic.... the fans start spinning and stop a few seconds later and then starts again in a loop! Is there anything, the gmux has to pull high in order to start? Before the removal it booted fine but with no screen!

    Board is a 820-2850

    Any tips would be great ;)
     
  21. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #172
    This gMux bypass method will not work on that model. However, since it does not have any GPU issues (the GT330 M never fails), I'd advise replacing the gMux IC, and replacing C9650, which is known to fail, and most likely was the cause of your initial issue.
     
  22. ibrahim monem macrumors newbie

    ibrahim monem

    Joined:
    Sep 9, 2018
    Location:
    Egypt
    #173
    Hi, dosdude1

    Firstly . Thank you

    Second . Can you help me with the Modification this model Macbook A1398 2012
     
  23. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #174
    It's not necessary... Just apply new solder to the GPU VCORE regulator IC (U8900), and you'll have a fully working system.
     
  24. tyasir macrumors newbie

    Joined:
    Tuesday
    #175
    Have you tried this on a a1297?
     

Share This Page