As you know, I have a problem on my vintage MacBook Pro late 2011 related to my dGPU. Basically it died at the end of 2017. So I have to find a patch to be able to continue use it, and I finally did in this way.
Yesterday, Apple released a security update that seems that in some parts is related to the graphic interface of the system, so I definitely was going to reapply the patch after the update —as after every update I usually do. However, recently I discovered dosdude1 and his page where I found out that he has a patch to disable the dGPU on macs like mine. I thought it was a great opportunity to test the patch, since it seems more convenient.
What does the patch do?
I think the best thing is to copy verbatim from the patch itself:
This program will disable the dedicated GPU on 15” or 17” MacBook Pro System that have dual video cards installed. After this program has finished running, the following things will be done:
- An NVRAM variable will be set that prevents the machine from using its dedicated video card.
- The video acceleration drivers (kernel extensions) for the respective installed dedicated video card will be removed from the /System/Library/Extensions directory, and backed to up to the root of the hard disk
- A LaunchDaemon will be installed that prevents the video cards drivers from being re-installed during Software Updates, and endures the necessary NVRAM variables is set correctly if PRAM is reset.
Download macOS Mojave Patcher tool. DMG file (official link) How to install macOS 10.14 on older Mac models. Step 1 Download the DMG file using the link above on your computer. Step 2 Launch the macOS Mojave Patcher tool by double-clicking the DMG file. Step 3 Specify the path for the bootable image and choose the appropriate USB drive. APS. BPS. IPS. MOD (Star Rod). PPF. UPS. VCDiff (xdelta). Download the 4GB Patch. Current Version: 1.0.0.1. I originally wrote this tool for a friend of mine who needed it. This very little tool patches x86 executables in order to let them have 4GB (instead of only 2) of virtual memory on x64 platforms. This tool comes very handy for applications which need a great amount of virtual memory.
Installing the update
The fist thing I did was install the update. I didn’t even follow any of the steps I described here —I should have— but I just installed the update.
Q: The tool created the USB drive successfully, but when booting, the progress bar hangs a bit more than half way. A: Check your copy of the Install macOS Sierra App. If you're using the latest version of the tool, you must be using the latest version of the Install macOS Sierra App (currently version 12.4.06).
Dosdude Sierra Patch Tool
I encounter problems during the update installation. And at some point I have to force quit the computer —pressing the turn-on/off button till the computer shut off— and upon startup press cmd+s
and enter the following in the prompt:
After that the update install continue and I was finally able to access to the desktop.
Undoing previous changes
Since I wanted to apply to Dosdude1 patch, I thought that it would be wise to undo some of the changes I’ve done in the system go disable the dGPU. There are two main changes I though I should reverted:
- Disable the
Loginghook
we created during the fix —steps 6 to 8: - Restore the
AMDRadeonX3000.kext
that we moved during the fix — step 4:
Applying the patch
Well, this is pretty straightforward, isn’t it? You just click on the app and follow the instructions. Take into account that you have to reboot at the end.
Outcome
I have to say that the outcome was positive and the computer worked well. However, there was a minor problem that for me was a deal breaker, the computer didn’t woke up from sleep. I tried several times and never ever was able to wake up. I always got a black screen.
Dosdude Catalina Patcher
I think the reason for this is pretty simple, what the patch is doing is just wiping all the kext
from /System/Library/Extensions/
. Nevertheless, you still need some of them to operate all the functions of the computer and to —I think— really disable the dGPU. I asked about these two problems to @dosdude1, as you can see bellow. You can see there too that the temperature of the “GPU Diode” is still high, which mean the dGPU is still active. I haven’t receive any reply at the moment of writing this post.
@dosdude1 Hey... I have a question. I've just apply your patch to disable dGPU https://t.co/xUZakry4d7 After it's applied, shouldn't the GPU Diode plumb down like in the image at the bottom of this post? https://t.co/EM2SBZKSLG
Thanks for the tool! pic.twitter.com/BKzOJkbliJ
I can't wake up from sleep... and I can't find the backup files on the root of the hard drive after using your tool
— Luis Puerto (@lpuerto) October 31, 2018As you can see in the thread, at that moment I already wanted to revert changes. Dosdude1 doesn’t provide with a tool to revert changes, or with instructions to do so. The major problem I had at that moment was, I couldn’t find the backup kext
files in the root of my hard drive. I later found out that they are in a hidden folder names .AMD_Backup
. So, I had to pull the backup files from my Time Capsule and apply the security update again —just in case— to reapply my patch to disable the dGPU.
How to roll back changes
If you want to roll back changes you have to
Delete the LaunchDaemon
A LaunchDaemon will be installed that prevents the video cards drivers from being re-installed during Software Updates, and endures the necessary NVRAM variables is set correctly if PRAM is reset.
If you don’t delete this LaunchDaemon your kext
are going to be delete after you restore them next time you re/boot. So to delete it you have to run the following command:
Restore the kext
Big Sur Patcher Dosdude1
The video acceleration drivers (kernel extensions) for the respective installed dedicated video card will be removed from the /System/Library/Extensions directory, and backed to up to the root of the hard disk
Now, you can restore your kext
I would also check the ownership —just in case:
Reapply the previous patch
After that, you can reapply the previous patch like it’s explained here.
Bottom Line
I wouldn’t say the Dosdude1 patch is bad, but in my case didn’t work as it should, since the wake up didn’t work. I really don’t know if this was due to my previous setup or configuration or if I did miss something on the way, but for me not be able to wake up from sleep isn’t operate normally.
I also think that the patch should be a little bit more documented. There isn’t specific instructions to roll back changes or a tool to uninstall automatically. There isn’t available, or at least I don’t know where it is, the source code of the tool, so you can’t really know what is really going on. It isn’t I don’t trust the dude, but transparency is always appreciated.
Finally, I think that the reason the computer doesn’t wake up is you can’t delete all the kext. The purpose of the patch I’ve shared —I didn’t created it— if to disable just de dGPU, but still use some of the functions the kext provide, and for that reason the problematic kext isn’t deleted but moved to another folder, so it isn’t loaded on boot, to later load it manually1. The problem isn’t just the AMDRadeonX3000.kext
, but you need to have all the others to really make it work.
For these reasons I still stick to my solution.
This, as far as I know, also make it possible to total disabling of the dGPU. ↩