It all started when my MacBook Pro showed me black screen after waking from sleep. After that, many times I would boot straight into Black Screen, and the only sign that the machine was awake could be just tested by pressing the CAPS LOCK key (turns on the button-light) or connecting an External USB with a indicator light.
I started asking myself why would this happen? Was it due to upgrade to High Sierra 10.13.3 or was it that my machine really developed some hardware problem? I asked a friend of mine what can I do and he suggested SMC Reset followed by PRAM (NVRAM) Reset. I tried all that, but it refused to work. I got my MacBook cleaned and then it booted fine. But as soon as, I started using it, all of a sudden it would show a Black Screen, but CAPS LOCK would still glow green and so I would then reboot it again, only to Black screen. Sometimes, upon restarting the first problem message that I got was GPU panic like the one shown below:
Anonymous UUID: 32BD6DA8-14C2-38AD-E466-F3B6DDCE6F7F Fri May 18 19:43:24 2018 *** Panic Report *** panic(cpu 2 caller 0xffffff7f916c29cf): "GPU Panic: mux-regs 4 0 a0 99 0 8 severity 3 WS-ready 1 switch-state 3 IG FBs 1 EG FBs 0:0 power-state 3 3D idle HDA idle : AGC GPU REGISTER RESTORE FAILED : rdar://7254528, VendorID invalid\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleGraphicsControl/AppleGraphicsControl-3.18.48/src/AppleMuxControl/kext/GPUPanic.cpp:162 Backtrace (CPU 2), Frame : Return Address 0xffffff81f9073a90 : 0xffffff800e66e166 0xffffff81f9073ae0 : 0xffffff800e796714 0xffffff81f9073b20 : 0xffffff800e788a00 0xffffff81f9073ba0 : 0xffffff800e620180 0xffffff81f9073bc0 : 0xffffff800e66dbdc 0xffffff81f9073cf0 : 0xffffff800e66d99c 0xffffff81f9073d50 : 0xffffff7f916c29cf 0xffffff81f9073db0 : 0xffffff7f916bf1ae 0xffffff81f9073df0 : 0xffffff7f916c2443 0xffffff81f9073e30 : 0xffffff800ec9f71c 0xffffff81f9073ea0 : 0xffffff800ec9f646 0xffffff81f9073ed0 : 0xffffff800e6a77e4 0xffffff81f9073f40 : 0xffffff800e6a7345 0xffffff81f9073fa0 : 0xffffff800e61f4f7 Kernel Extensions in backtrace: com.apple.driver.AppleMuxControl(3.18.48)[09DFEF11-0A5B-369B-91C5-FD32B3E62DD3]@0xffffff7f916b4000->0xffffff7f916c6fff dependency: com.apple.driver.AppleGraphicsControl(3.18.48)[91D747FB-F341-33F2-BBDD-0CA45A3CC1B2]@0xffffff7f916b1000 dependency: com.apple.iokit.IOACPIFamily(1.4)[95DA39BB-7C39-3742-A2E5-86C555E21D67]@0xffffff7f8f35a000 dependency: com.apple.iokit.IOPCIFamily(2.9)[1850E7DA-E707-3027-A3AA-637C80B57219]@0xffffff7f8ef34000 dependency: com.apple.iokit.IOGraphicsFamily(519.15)[D5F2A20D-CAB0-33B2-91B9-E8755DFC34CB]@0xffffff7f8fdb3000 dependency: com.apple.AppleGraphicsDeviceControl(3.18.48)[89491182-0B41-3BC3-B16F-D5043425D66F]@0xffffff7f91219000 BSD process name corresponding to current thread: kernel_task ----
So, I started Googling for this GPU Panic problem and found that many laptops had this issue and that many forums said it was all due to a faulty discrete GPU on the logic board. I missed the replacement program (as I was not even aware that it existed until I hit this problem) and now my machine is out of warranty (more than 51/2 years now). The machine is a 15″ MBP 10,1 (mid-2012) with dual GPU system. I thought, if I could get Logic board changed, I should be okay, but in many forums many users who got that done were not still immune from that problem. It had all the possibilities of appearing once more (even after changed GPU). Secondly, Logic board replacement is an expensive affair! Last option, of course, is to get a new MPB, but I wanted to wait till the WWDC June 2018 announcement.
Anyways, I still wanted to make sure that this is indeed the same GPU problem that I was facing. So, I thought may be I should downgrade the OS X to El Capitan or Sierra and rule out my High Sierra upgrade. After checking with both the older OS X, I started getting very frequent GPU panics, like the one pasted above. With laptop in comatose mode 😉 I literally had to resuscitate it using SHIFT + OPT + COMMAND + Power (SMC reset) by counting 10 and then do a CMD+OPT+R+P+POWER (NVRAM Reset) and the wait for sometime and power up again. It all then depended on the spirit to re-enter the machine and bring it to life again :)) Many times, it had barely woken up and slipped into coma again. Then sometimes it would work for 2/3 days straight, until I don’t open up any BIG IDEs like Intellij or any program like Chrome or Firefox that caused a switch to dGPU.
In the Apple forums, I saw people had already disabled the on-board dGPU and they had a working system with only the built-in iGPU. However, it was done for older makes (year 2011) of the MBP. I searched for my particular make with NVIDIA GeForce GT650M Graphics card. I stumbled upon 2 links:
1) https://github.com/mayankk2308/purge-nvda/blob/master/purge-nvda.sh (NVIDIA driver)
2) http://www.javajirawat.com/2018/02/macbook-pro-2012-broken-gpu-work-around.html (AMD driver)
Thanks to them and I combined both their solutions to disable the dGPU on my system.
The Steps:
-
- You can either go to Apple Menu > About This Mac… > Overview Tab > Press System Report…Under Hardware, look for Graphics/Displays…
- Or you can type at terminal (and it displays the same information)
$ system_profiler SPDisplaysDataType Built-In GPU (Integrated GPU - iGPU): Intel HD Graphics 4000 1536 MB ... ... Second GPU (Discrete GPU - dGPU): NVIDIA GeForce GT 650M gMux Version: 3.2.19 [3.2.8] ... ... Display - Color LCD Resolution - 2880 x 1800 Retina Framebuffer Depth: 24-Bit Color (ARGB8888) Metal: Supported, feature set macOS GPUFamily1 v3
- Boot into Recovery Mode (by holding Command+R while pressing the power button). At terminal prompt, we will disable SIP (System Integrity Protection)
$ csrutil disable System Integrity Protection now disabled.
- Reboot again in Single User mode.
$ reboot $ # and then hold Command+S keyboard buttons $ # to boot in single user mode.
- Do a Hard disk Check:
$ /sbin/fsck -fy $
- Mount Root file system in Read-Write (uw) mode:
$ /sbin/mount -uw / $
- Create a backup directory to hold existing GeForce drivers:
$ mkdir /GeForce_save $
- Move all the GeForce drivers to the backup directory:
$ mv /System/Library/Extensions/GeForce* /GeForce_save $
- Delete Driver Cache
$ rm -rf /System/Library/Caches/com.apple.kext.caches/ $
- Force refresh of Driver cache:
$ touch /System/Library/Extensions $ kextcache -q -update-volume / $
- Reboot again (into Recovery mode while holding Command+R)
$ reboot
- Remove Nvda Booting GPU
$ nvram boot-args="nv_disable=1" # OR append existing boot-args $ nvram boot-args="nv_disable=1 $(nvram boot-args 2>/dev/null | cut -f 2-)" $ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 $
- Enable SIP (System Integrity Protection)
$ csrutil enable System Integrity Protection now enabled.
- Reboot machine in normal mode
$ reboot
I. Sanity Check (find the number of GPUs):
II. In Recovery Mode, do the following (Using the Recovery Terminal Utility), do the following:
III. In Single User Mode, do the following:
IV. In Recovery Mode, do the following (Using the Recovery Terminal Utility):
IMPORTANT NOTE:
- By using nvram boot-args=”nv_disable=1″, you will lose brightness control (F1/F2 keys) and sleep mode (clamshell open/close) does not work. When the computer awakes after sleep, it shows a black display. Also, the brightness slider will no longer show up in System Prefs -> Display. However, you can adjust the backlight to a fixed value. For example, I prefer the low backlight-level. In the recovery terminal,
$ nvram backlight-level="\%00"
Various valid values in the increasing order of brightness are: 0%00, C%00, \%00, z%00, %9f%00, %cb%00, %01%01, A%01, %8c%01, %e6%01, P%02, %d2%02, \%03, %ff%03.
- Once you use this patch, you won’t be able to connect to external displays and project on that screen (as MacBook-Pro routes to external ports – HDMI and thunderbolt using the dGPU)
- When the computer after sleep, it shows a black display but the machine is still running the OS. To get the screen back, I need to turn the machine off. But this means, its improper shutdown when you have processes running. One solution is that you can remote desktop into the system by using Screen Sharing or VNC. Using this you can get back into the machine, and work like usual until the process completes and then shutdown the machine. Also, while using Screen Sharing, you can project the shared screen on an external display from that client machine.
22nd Nov 2020 Update: I updated to Catalina 10.15.7 from 10.15.6. I could boot back into my Mac and work without any hiccups! I’ll try installing Docker and see if it crashes again.
18th Nov 2020 Update: Yesterday I directly updated to Catalina 10.15.6 skipping Mojave and it went fine. I could boot back into my Mac and work with it just like before. I was not able to run Docker, as it would cause the OS to crash and I had no option but to remove it. Next step would be to apply the 10.15.7 Combo Supplemental update. Once I am able to get that done as well, I’ll share my findings on this post. Stay tuned!
Earlier Update: I’ve updated to High Sierra 10.13.6. After this I applied the Security Update 2019-001 and it went fine. I could boot back into my Mac and work with it just like before. I have not updated to Mojave yet.
Joseph said:
You are a lifesaver. I couldn’t be more grateful to you for this post! Thank you! One day I was using my 2012 Retina MacBook Pro like normal, and then, right in the middle of typing a line of code, the screen flickered out to complete black. Nothing I did worked. I could restart the computer, and navigate from memory via spotlight to iTunes and hit play, and hear music play, but the screen was black the whole time. A flashlight didn’t show anything being displayed whatsoever. So I went online, and tried the SMC reset and the PRAM reset, just like you, and nothing worked. Then, on a different computer, I found your article, followed it step by step with no screen, typing very carefully and giving it plenty of time between commands to complete, and voila! I have a fully functioning computer again (well, sort of, just like your notes at the end mention).
I do have a couple of fixes for people who are in the same boat:
First, I use an app called “NoSleep” that is free and keeps the Mac from sleeping when I close the lid. I set it so that it loads at startup, and prevents sleep even upon lid close, and I never have to worry about it anymore.
Display sleep settings still work, so my energy saver preferences for display sleep are set to a reasonable time, and there are no problems waking the display (because the computer never enters the sleep state — which is where the problem resurfaces). Most importantly, I set the computer to fall asleep “Never” on both battery and adapter. That is crucial.
Lastly, I set up the top right corner of my screen as a hot corner (under System Preferences/Mission Control) that puts my display to sleep. If I don’t do that, NoSleep will keep the display in whatever state it is in when it’s shut, despite the energy saver preferences. So if you close it while the screen is active, it will stay active while closed, including the bright apple logo on the back of the screen. If you shut it while the display is asleep, though, it will stay asleep, which is the intended behavior, in my case.
So now I just mouse up to the top right corner (I use my other corners for different things) before shutting the lid, and everything else behaves as it did before (well, except that it will use a lot more energy this way, never sleeping–but since I keep it plugged in most of the time, that’s not such a big issue, it is 6 years old, after all).
(by the way, in case anyone else cares, or has to do what I did, I found you can navigate to the terminal in recovery mode–without a functioning screen–by clicking once where the mouse defaults to (before moving it after loading) then tapping left arrow twice, and down arrow three times, then hitting enter. Now you’re at the command prompt.)
LikeLiked by 1 person
Dhaval Dalal said:
I’m glad you found this useful and Thanks Joseph for the comment and the NoSleep app. I’ll give it a shot.
LikeLiked by 1 person
Deji said:
Hi pls. This has been really helpful but I’m wondering how I can reverse this process. I’ll have a Genius Bar appointment in a couple days and will need them to be able to diagnose the gpu issue properly. Does it matter that I have done this ? Thanks.
LikeLiked by 1 person
insanefighter said:
Hi Dhaval, the post has really helped solve my issue. Thanks a ton. Have you faced overheating issues or felt the system slows down while doing basic tasks like browsing or working on a word document ? Did you consider exploring local repairing options as it could be a GPU balling ; graphic IC or capacitor issue (similar to the tantalum capacitor for 2010 macbooks). I’m evaluating all of this and would appreciate your opinion.
LikeLike
Dhaval Dalal said:
As far as I know tantalum capacitor was for older 2010 macs and Graphics IC, there is no one who does that level of repairing here. But, if you happen to go that route, please share your experiences.
LikeLike
Dhaval Dalal said:
Hi Deji,
Not sure whether that matters, but all you need to do is remove the line – nvram boot-args=”nv_disable=1″ by using nvram -d boot-args. Follow the exact same steps, but where you added earlier disable, by deleting, it will remove that variable. Hopefully that should revert back to the old state.
LikeLiked by 1 person
Deji said:
Thankss. Also trying to change the backlight level. Tried your steps to adjust Nvram. When I check nvram backlight level it gives me the right value I put in but the laptop screen is still very dim. Any help you might have would be appreciated
LikeLike
C B said:
Hi,
instead of moving GeForce files, move NVDA files to the created folder, that worked well on Sierra, with brightness , awake from sleep fully functional. I did not try it on High Sierra though
LikeLike
Gabriel Carter said:
Great walkthrough, thank you! Seems to have saved the day for my MBPr (2012), currently running Mojave under this fix with no problems yet.
LikeLike
Dhaval Dalal said:
Thanks for letting know that under Mojave its running fine….I’ll upgrade to that
LikeLike
Javier Ortiz said:
Hello,
I have an A1398 MacBook Pro Mid 2012 Retina running Mojave. It runs fine until I run my CADD software, then it randomly reboots. I’ve tried the gfxCardStatus software, but I can’t get it to disable the discrete graphics card so it continues to randomly reboot even when I am in Low Energy settings.
I am not a programmer and this kind of stuff makes me uneasy, but I was wondering if you could send me the code that worked with Mojave so I can give that a try. Thanks for your post and hope to hear from you soon.
Javier
LikeLike
Leandro Havelda said:
Hey, thank you for the help, but how do I reset everything back to normal?
I did everything but probably messed up somewhere and now my mac stays stuck in boot
HELP!
LikeLike
Joe said:
I followed your recipe on fresh Mojave install. The result is that the MBPr (10,1) never fully boots, the progress bar stops at ~75% and sits there forever.
LikeLike
Joan said:
Same Here, but then i use this commands in recovery mode (Command + r)
in terminal
$ csrutil disable
$ nvram boot-args=”nv_disable=1 $(nvram boot-args 2>/dev/null | cut -f 2-)”
$ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
$ csrutil enable
$ reboot
Enjoy!
LikeLike
Leo Tejeda said:
I tried this on Mojave, stays at 75% wont boot up. Had to enable to make it work. Any suggestions?
LikeLike
Dhaval Dalal said:
No Idea, I’ve not yet upgraded to Mojave
LikeLike
Charbel said:
hi
i have tried it on mojave and had no problem, just remove
nvram boot-args=”nv_disable=1 $(nvram boot-args 2>/dev/null | cut -f 2-)”
after csrutil disable, go to single user mode and type :
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
to tell your mac to start with the integrated graphics,
then move Geforce*.* files from /System/Library/Extensions to another folder, then touch the folder and reboot.
it works flawlessly and even the sleep/wake button work well, as well as the brightness control.
Cheers
LikeLiked by 1 person
t0motom0 said:
@Charbel Can you please clarify “even the sleep/wake button work well, as well as the brightness control” ? Is that true and can you confirm this can happen after just doing your steps above ? Thanks.
LikeLike
dcfc3d@gmail.com said:
Any one had any joy with wake after sleep??
LikeLike
Olival Júnior said:
I did the same on my macbook pro retina 15 mid 2012 running Mojave (10.14.2) and it rendered the mac unbootable.
I tried to install High Sierra from a bootable USB stick (didn’t have a Mojave installer) but the installer would halt mid process or the screen just went blank.
So I followed all the references I could get about permanently disabling the dGPU (most of them from the links quoted on the post above) but still couldn’t get the High Sierra installer to work.
As I’d run out of patient with MacOS I just installed Ubuntu Linux and . . . it worked! Ubuntu Linux recognized everything on the MBP hardware but the dGPU (listing the hardware just doesn’t shows anything about GPU).
I tried again to install High Sierra and it failed the same way it did before. As it was impossible for me to get a Mojave USB installer I did an Internet Recovery Install so I could install the same Mac OS version that came with the MBP (Mountain Lion). And it worked!
Mountain Lion doesn’t show a dGPU on the system so the nv_disable=1 on the NVRAM settings had worked ok. So it was time to try to install Mojave again.
Unfortunately an old bug prevented Mountain Lion to access the Apple Store so I had to reinstall High Sierra first from a bootable USB stick (it worked!) and after that I did manage to download and install Mojave.
Summing up: Mojave is running ok but the caveats above apply: I lost the Bright Keys (F1/F2); cannot use external monitors; and if the MBP sleeps I have to turn it off and on again. I installed the NoSleep app and did the same configurations as Joseph above and it seems to solve the problem (although the battery will suffer).
As a final measure I resized the Mojave Partition and installed Ubuntu Linux again. On Ubuntu the bright keys work fine but I still cannot use external monitors (don’t know if it is the same limitation as MacOS or if I just don’t know how to switch monitors on Ubuntu).
Now I have a dual boot MBP with Mojave and Ubuntu. On turning on the MBP I hold ALT and just choose the OS to boot. It was supposed to boot on GRUP and shows a list of OS but I didn’t managed to do that and it really doesn’t matter to me.
LikeLiked by 1 person
t0motom0 said:
@Olival When you switched to Ubuntu and changed the brightness level, would it then be affected to the Mojave ?
LikeLike
Olival said:
@t0motom0 I guess you’re asking if when I change the brightness level on Ubuntu it also changes the brightness level I set on Mojave, right? Actually I didin’t test if this happens and some weeks ago I did a clean Catalina install, so the MBP is running only MacOS today.
About the Catalina installation: it didn’t recognize the GPU but it lists the GPU on the hardware report at About This Mac (Mojave didn’t list the GPU after I disabled it). As of today the MBP is on the same situation it was with Mojave: running smooth but without brightness keys and unable to enter and exit sleep mode.
LikeLike
t0motom0 said:
@Charbel Can you please clarify “even the sleep/wake button work well, as well as the brightness control” ? Is that true and can you confirm this can happen after just doing your steps above ? Thanks.
LikeLiked by 1 person
Pingback: Apple MacBook Pro 15 | 2012 to 2017 – DankPads
Dmytro said:
I was going step by step and after reboot in 4th step I got black screen! Please help
Macbook pro 15 mid 2012 mac OS Sierra 10.12
LikeLike
Dhaval Dalal said:
Not sure what to tell you….try the process again and see, if you can get it to work.
LikeLike
Samuel said:
Hello everyone!
First of all, thank you Dhaval for this guide. It saved my laptop after being crazy about all that was going wrong with it and after almost a week of trying to understand what the problem was.
I’ve followed the guide as is but because my laptop didn’t accept the command:
$ nvram boot-args=”nv_disable=1″
I used the alternative:
$ nvram boot-args=”nv_disable=1 $(nvram boot-args 2>/dev/null | cut -f 2-)”
$ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-
prefs=%01%00%00%00
and I have to report that everything is back to normal now with a couple of differences:
– Mine doesn’t have any problems with when waking up/going to sleep. I can close the lid, let is sleep, of/on, awake/sleep, everything, no problem.
– Brightness buttons work as expected too. No problems either.
Maybe an explanation is that my laptop (exactly the same model as yours) didn’t suffer “panics”. It crashed as soon as the system needed to switch cards. Also when re-installing from an USB the system hung on the progress bar. At that point, connecting a monitor via HDMI showed that the system had loaded just fine but the laptop screen has stopped at the progress bar. Another really weird thing was that a could perfectly start my laptop from my macbook air’s hardrive in “target mode” via thunderbolt and use the computer without any problems at all. But could not start from a system installed on a usb or sd card.
As it is today, if I open the activity monitor and click on Energy I can see applications using both cards so….Is the Nvidia really broken?
I don’t know, still weird but everything 100% working again.
Thank you again for you efforts !! 🙂
LikeLike
Dhaval Dalal said:
Thanks for the appreciation. I’ll try what you’ve suggested and try to get back brightness and lid control
LikeLike
Olival Júnior said:
Hello, Samuel
Are you using Mojave?
LikeLike
Samuel Jiménez said:
Hi, no, sierra as in the original post.
LikeLike
Matt said:
Working on Mojave for me, thanks for the help! Would love to get the brightness & sleep issues sorted though
LikeLike
Mandip Luitel said:
Worked Perfectly On my High Sierra 10.13.6.
Thanks for an awesome post Dhaval.
Cheers
LikeLike
mike said:
Thank you for the detailed walk-through. Do you have any suggestions for if I cannot even get into recovery mode? I only hear a chime and see a black screen then it shuts off.
LikeLike
Dhaval Dalal said:
Mike, I’m sorry I would not know that.
LikeLike
Trevor Benbrook said:
I couldn’t get into Recovery Mode either but I followed the steps in this video and got it to work. https://www.youtube.com/watch?v=iLft4N54zvU
LikeLike
Ray said:
Thank you for this as my MacBook was dead and gone – or so I thought.
I have followed your walkthrough and all is ok again – apart from the wake from sleep which does not work. when it went to sleep, I could not wake it without a full re-start. I have installed amphetamine which is free and keeps the display awake all the time – even when the lid is closed – which is ok. I am running Mojave and no other apparent issues. I did try the hot corner approach to put the screen to sleep above but it would not wake and it caused the mac to crash and not re-start so I had to re-do your walkthrough just to get it to boot again!!!
Are you still working on a way to get it to wake from sleep or is that a non-starter and we should just accept what we have as the best we will have?
LikeLike
Dhaval Dalal said:
In the comments, there is one which talks about, adjusting screen brightness and lid-wake. I’ve not tried it, but you can give it a shot and see for yourself. All the best!
LikeLike
Urban said:
Hello! The same problem here. I just wanted to ask why wouldn’t you simply use gfxCardStatus app from https://gfx.io to disable GeForce in the system? Do you think it can hurt the system in any way? I have just done this and will do some testing. Regards.
LikeLike
Ray said:
Tried the above and does not work for me- the brightness is ok for me.
as a complete novice, what is the difference between your line re putting the GeForce drivers in a folder or the other proposed of putting NVDA drivers in a folder instead? – are they not the same?
My mac does still crash from time to time for no reason – is anyone else having same or is it just me?
LikeLike
Ray said:
I tried the gfx app fix but it didn’t stop it crashing. It seemed like the MacBook was fighting against it being there and so I moved on to the fix above in earlier post – which is much more stable and hopefully permanent .
LikeLike
Dhaval Dalal said:
I had tried all that long back and this post describes a more permanent solution as compared to gfxCardStatus
LikeLike
Giorgio said:
GfxCardStatus is not working properly on Sierra/High Sierra as MacOS overrides Gfx and forces the use of dGPU for certain application. After thorough research on the web I installed gSwitch (https://codyschrank.github.io/gSwitch/) which is the evolution of GfxCardStatus.
gSwitch solved the problem. No need to move/delete/unload drivers. Wake/sleep and brightness control work fine.
Off course you’ll need this when rebooting:
$ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
LikeLike
Jim Ying said:
Hi Giorgio
I am using the gSwitch on Mojave, It works most of time but still I’ve got gpu panic from time to time. Sorry for the newbie question but could you please elaborate a bit on how to do nvram setting:
$ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Thanks heaps!
LikeLike
Jason Bourne said:
Hi There!
I make your recipe but ı still find both of gpu card info under System info>Graphics&screens menu. Did it normal or ı have to see only intel card info?
LikeLike
Mandipip said:
Worked after upgraded to mojave too. Just make sure to boot in Recovery Mode again after update, open Terminal, and run the following command: csrutil disable it solved the issue on my mojave too.
LikeLike
Major said:
Thank all for your guidance and comments. Before discovering the various techniques to disable the dGPU I had already installed Windows10 / then Linux on my Mid 2012 Retina MBP 15 as I simply could not install MacOS to the computer because it appears to the use the dGPU as part of the installation.
I also tried to install Sierra using Target mode… the installation worked but the computer would not boot (folder with question mark).
I have moved over to a slightly older 2011 MBP which is a great little computer – just heaver and not as fast.
Anyway, does anyone have a solution to install a working version of MacOS on the Mid 2012 MBP so I can THEN follow the steps to remove the NVIDIA drivers and end up with are function, slightly restricted but powerful MBP. Note High Sierra does not install on this unit as it freezes at about 70%.
Thanks again all!
LikeLike
Dhaval Dalal said:
You create an Installer disk for High Sierra. Check out -> https://support.apple.com/en-in/HT201372
LikeLike
Major said:
Many thanks Dhaval,
This is not the problem – I have this and most other versions of MacOS.
The problem is that the install calls the dGPU during the installation and thus the installation fails..
I will be trying a few things this weekend so all good ideas on a postcard. 🙂
LikeLike
Dhaval Dalal said:
You can boot using installer and then perform steps 1 to 13 but skip steps 6, 7, 8, 9. After that install your OS. Try it and hopefully that should help!
LikeLike
Major said:
You are a star for helping.. but
If I boot into the High Sierra installer – start the install process – it gets only to about 15% of the way on the progress bar then stops. CAP lock still works but no further progress. I tried to connect to HDMI as another post suggested but no output
I cannot get to step one… 😦
I even tried chilling the MBP in the fridge then starting the process – then putting it back in the fridge – no go.. (I used this process in the past as part of a data recovery job – it worked..)
If I am missing something please let me know as would love to make this MBP useful WITH MacOS.
BR
LikeLike
Dhaval Dalal said:
Yes, I understand. I have been thru’ a similar episode. With the installer, you boot in to recovery mode (where you still get the command terminal) and in that mode perform the steps that I mentioned in my earlier comment (skipping a few in between).
LikeLike
Major said:
simply cannot get that far… CMD+R – / connect to WIFI start process – spinning – screen lock up..
going to fridge for another beer…
LikeLike
Mark said:
Hi guys,
As an update – randomly, I got further along with Recovery mode today
(I cannot let this thing beat me…need to keep trying..) – this morning I launched recovery mode CMD+R, connected to WIFI and got all along to the High Sierra installer, then finally got into the terminal.
I should point out the screen resolution was super high (retina screen) and I found myself taking photos I could zoom in to read the text… old eyes I guess.
The command
“system_profiler SPDisplaysDataType” displayed the two GPU’s –
I then try “csrutil disable” and it returns “command not found”
Tried the other commands / reboot – no go
Note: this is Freshly formatted SSD Drive on a Mid 2012 MBP.
I then tried recovery mode CMD+OPTION+R, connected to WIFI and got all the way along with the Mojave installer and again into Terminal. This was real progress.
“csrutil disable” finally return a positive response
I completed the list of commands as instructed:
$ csrutil disable
$ nvram boot-args=”nv_disable=1 $(nvram boot-args 2>/dev/null | cut -f 2-)”
$ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
$ csrutil enable
$ reboot
Note I don’t think the short command (nvram boot-args=”nv_disable=1″) works on this computer while the longer command DID work. I did try it on one attempt without success.
BOOM… it worked. Mojave completed the installation and after a few reboots – it seemed ok. At one point the installation progress bar stopped – then after a while I could hear the text over speak kick in so rebooted into recovery and did the command sequence above again.
Of course no screen brightness control as reported and closing the lid does not put MBP to sleep but a massive result for a computer I could only run Windows OR linux on.
There were a few more steps / repeats / reboots but really happy and many thanks!
More to report when I learn more.
Br M
LikeLike
Andrea said:
Have you tried to follow this: https://tim.palpant.us/sysadmin/macos/2018/09/09/nvda-gpu-wake-handler/
LikeLike
Dhaval Dalal said:
Nope
LikeLike
Ray said:
I’ve just read that – way out of my league!
I managed Dhaval’s method and worked for me – apart from brightness and sleep by closing the lid.
I installed app called Amphetamine which keeps mac awake – has worked brilliantly for the last couple of months with no gpu panics and no crashes.
If the Tim Palpant methods work to bring back wake from sleep and brightness control, can anyone provide an idiots step by step guide as to how to do it as I have no idea what he is writing about, even after looking at all the links!!
Ray
LikeLike
Ray said:
I’ve been corresponding with Tim and he has given me details of how to possibly get past the brightness / wake up after sleep issue.
I will post when tried it.
LikeLike
Mayank Kumar (@mayankk2308) said:
Maybe too much work. The nv_disable=1 arg already disables the GeForce kexts you are moving, so that should be unnecessary. The rest of the steps seem fine, but you could accomplish the same with purge-nvda.sh (am the author), which is essentially automating what you are doing here. Was that script alone not sufficient when you tried? Wanting to learn from your experience since you have a system with problematic GPU, and I never got a chance to experiment on such a config 🙂
LikeLike
Dhaval Dalal said:
Honestly, I now don’t recall every little thing, but there was some minor problem is my faint recall now that you’ve asked the question. But I’ve used a lot from what your script does and I’ve given alink to your script from this post, so people can also try what you have.
LikeLike
brandadesign said:
Hi! Thanks forse the guide.
It may works for MacBook Pro late 2013 GeForce 650m?
LikeLike
Dhaval Dalal said:
Not sure. I do not know. Please try at your own risk.
LikeLike
Daniele Brancato said:
My mistake. The dGPU is NVIDIA GeForce GT 750M.
It’s the same?
LikeLike
luisbibiano said:
It worked in my 15″ early 2013
GeForce 650M Too
LikeLike
ÖMER KÜNÜL said:
Louis Rossmann (https://www.youtube.com/watch?v=4gH1gBRneZk)
definitive solution. Do it immediately, if you can use a screwdriver and tiny rubber. 🙂
super working.. F319HJD compress the chip enough.
LikeLike
hoangha said:
My MBP 10,1 mid 2012 worked flawlessly in Sierra, but on Mojave, the brightness, F1 F2 and sleep stopped working. Anyway I never got a sudden reboot or freeze in Mojave.
I did install both versions, one partition for Sierra, one for Mojave.
In Mojave version, I could not change brightness natively, even restart to recovery and did the command line “$ nvram backlight-level=”\%00″ etc … ” as op guide here, but nothing changed. So Brightness Slider (kind of shader) is a must.
And the funny thing was that the Mohave version keep the brightness level from Sierra, say if I left half brightness in Sierra and restarted in Mojave, then the brightness in Mojave would be half, if I left full brightness in Siera and restarted in Mojave, then I would have full brightness in Mojave.
LikeLike
t0motom0 said:
@hoangha Did you find a complete solution to set brightness level for Mojave ?
LikeLike
Vivian Fernandes said:
Hi. Did you find the solution to manage the brightness and sleep issue after this fix. If yes, Please share steps to implement it.
LikeLike
Christian said:
Thanks for this article! I was only a little away from disposing my Macbook Pro Retina Early 2013, because of the increasing shutdowns and startup problems.
Setting the long-version of the NVRAM-Args did it for me. I did not need to to the other things to get all working under Mojave. The Nvidia ist no longer listed under System Information and I had no more shutdowns or problems with powering on the machine.
Only the known issues (changing brightness and waking up from sleep) are here.
LikeLike
Luis said:
Hello! its works fantastic!
But now, I want to know, How can I revert this process?
is it possible?
Thank you!
LikeLike
Dhaval Dalal said:
All the same steps except, delete nvram args and the gpu-power-prefs. Delete your /GeForce_save folder. Hope that it helps!
LikeLike
Mark said:
Hi, what are the temps on the GPU diode (Macs Fan Control shows it) of the disabled GPU? I’m curious to know whether the disabled GPU is completely inactive (GPU diode temps low – hovering around 10-30 C) or just bypassed (high GPU diode temps – hovering around 60 C).
I’m asking because low dGPU temps can be achieved on 2011 MBP when (correctly) disabling Radeon 6750M, but to properly manage temperatures, you must manually load back (or with a login hook) some dGPU kext(s) you previously removed from /System/Library/Extensions/ ….explained more in detail here:
https://luispuerto.net/blog/2017/12/11/disconnecting-the-dgpu-in-a-late-2011-macbook-pro-third-way/
Thanks,
br
Mark
LikeLike
alez said:
hi Dhaval,
for the backlight change, you would need to disable system integrity and re-enable, right? even so, it is not working for me, is there a certain way you have to do it? I am trying to change to the brightest value but i really cannot tell any difference, it is still very dark.
thanks!
LikeLike
circkpick said:
It wasn’t work for me. Slider brightness control just gone and my MBP still black screen or shutdown suddenly.
How to enable nvidia GPU again?
Help me, please?!
MBP 15-inch mid 2012
high sierra 10.13.6
LikeLike
Dhaval Dalal said:
1) Try Moving back all the GeForce drivers to from the backup directory /GeForce_save to
mv /System/Library/Extensions/GeForce*
2) Reboot again (into Recovery mode while holding Command+R)
$ reboot
3) In Recovery Mode, Remove Nvda Booting GPU nvram boot-args and gpu-power-prefs. Please refer to nvram utility on how to delete these variables. I don’t remember the commands off-hand.
4) and finally reboot again.
Hope this helps!
LikeLiked by 1 person
Major said:
Hi guys
I did not move on much with my mid 2012 MBP after resurrecting it and installing Mojave because I cannot work without sleep/wake (any new data out there I can try???) – I move around too much to shut down all the time.
Since then, my backup MBP late 2011 has.. sadly… failed me…. sometimes it comes back to say hello but today it is dead. Various instructions fail and I will try a few things again today but all efforts to boot into Recovery mode CMD+R on this computer fail.. Single user mode is fine but not Recovery.
I am REALLY gutted that this issue is so pervasive with MBP’ and Apple seem reluctant to issue an update that can painlessly work around a failed GPU without end users having to jump through these hoops to get what is an excellent computer working again.
Anyway – if anyone knows how to enable Wake from Sleep on the Mid 2012 MBP that now has a disabled dGPU – please let me know as I may very well need to work with it.
BTW – does anyone know if VMWARE Fusion needs the dGPU to function – I still use(d) a Windows and Linux VM for some projects.
Have a good weekend all! Happy hacking!
LikeLike
Scott Triola said:
Totally agree with Major and I’m in the same boat. Anybody try Catalina beta with this GPU workaround?
LikeLike
Major said:
Just a thought, it there a way to list all the nvram settings related to the GPU so we can review and modify. Sometimes when trying to make things work we try everything until something works – then unsure how to replicate.
For instance on the MBP 2011 I am working on now, I have disables the dGPU but also have the boot in verbose mode enables (cool). but I know this MBP should be capable of recovery from Sleep mode.. The final thing I did was run “MacBook Pro dGPU Disabler”
Last time I did this on another MBP (yes…another MBP 2011) – is
DOES wake from sleep so there is a setting / kext that does allow for this feature as well as screen brightness control.
The MBP 2001 works well (even with VMware) but no Wake from sleep / Screen brightness control that I know is possible because I did it before on similar MBP 2011 (just don’t recall the process)
I would like to try to replicate this but nothing I have tried works.
THEN – we (thats a GROUP WE) need to get my highly spec’d Mid 2012 MBP waking from sleep … 🙂
Thanks in advance and keep on Mac’ing
LikeLike
Scott T. said:
For whatever reason, I now have brightness control and wake from sleep on my on mid-2012 Macbook Pro Retina with NVIDIA GPU bypassed. (I also use an AppleTV to connect to a second monitor via Airplay and that works well).
If I reboot my machine it seems like ~33% of the time brightness controls/display sleep both work and the rest of the time they don’t. I have no idea why this is not consistent. Display sleep seems finicky and sometimes works, sometimes doesn’t and requires restart. I haven’t experimented with it much since I usually just shut my Macbook down if I won’t be using it for a while. When brightness control is working, my NVIDIA GPU does appear in system information but does not appear under GPU usage in Activity Monitor nor does it appear in Geekbench, and I have never had a crash.
I followed the procedure here to bypass the GPU and subsequently moved the GeForce drivers back to the Extensions folder. I am also using the AntiSleep (v2.15) app to prevent system and display sleep – not sure if that has anything to do with it. Note that AntiSleep is set to prevent my display from sleeping, but my display does sleep anyway when brightness control is working. When brightness control is not working, AntiSleep works as intended and prevents display sleep. No idea why.
I wish I had a better idea of why I sometimes have brightness control, but I wanted to confirm that there is some combination of factors that allows for brightness and display sleep when the NVIDIA GPU is bypassed.
LikeLike
Major said:
any thoughts? Have a good weekend guys – NAMASTE
LikeLike
naticom said:
I’m using a mid-2014 machine and just wanna disable dGPU to save some power. The EFI mod can boot up my MBP but will stuck during shut down. Not sure how to fix it..
LikeLike
Vuthy Pok (@PorkVuthy) said:
I’ve done on MacBook Pro Retina Mid 2012 15-inch. Anyone notice that after success disable dGPU, laptop still hot and drain battery ?
LikeLike
t0motom0 said:
I’ve applied these steps on my Mojave 10.14.6. My MBP late 2013 worked back successfully.
Now I am struggling with the dim screen and I am unable to adjust the brightness level anymore.
Trying this `nvram backlight-level=”%ff%03″` does not on Mojave. Does any overcome this problem ? Can you share with me as well as the guys here ? Appreciate.
LikeLike
Aljosa said:
Dear Dhaval thanks a ton. I solved my issue. I have the same MacBook as you. It works on new Os Catalina but I have the same problem as t0motom0. It is impossible to change the level of brightness. Any idea?Appreciate.
LikeLike
Frosty3d said:
Anyone upgraded to Catalina having already done this ‘hack’?
Also, dying to find out if the wake from sleep can be resolved….
Thanks for the guide though, it saved my Retina 2011 MBP from going in the bin!!
LikeLike
Major said:
Hi guys – all seems a bit quiet here now… did we all move on to new hardware and hackentosh?
Question – what is the risk of upgrading my mid 2011 from Mojave to Catalina?
It still cannot wake from sleep or adjust brightness – and I actually think it shuts down more than it should but still a good machine, new mother board from Apple to repair the failed dGPU (cough cough) and new battery.
NAMASTE
LikeLike
f. said:
I wrote a guide, tried to post it twice, but it was not published
LikeLike
ferakles said:
Having seen how many people have this issue and how much confusion there is in the replies, I try and summarise what should work in order to successfully disable the GT 650M for Macbooks Retina 2012 – 2013.
There are two solutions: HW solution (that is, to fix the actual problem) and SW solution (that is, disable the NVidia via software).
HW solution: refer to this video:
where dosdude1 explains how to de-solder and then resolder (or replace) the U8900 chip.
SW solution: ironically, it takes much longer. In my case it worked with both Mojave and Catalina on my MBR 2012 A1398. It’s long, hopefully I won’t forget any step. Feel free to improve it by answering to this post.
1) Reset SMC: Shut down, then turn it on and immediately press and hold Left Shift + Control + Option (⌥) and the power button at the same time. Release the keys after about 10 seconds.
2) Reset VRAM: Shut down, then turn it on and immediately press and hold Option + Command + P + R. Release the keys after about 20 seconds.
3) Optional step, but I suggest to follow it, it allows to start from a clean installation: Reboot in Internet recovery mode (Command (⌘) + Option (⌥) + R), erase SSD, and install the last MacOS, at time of writing Catalina4) Follow steps 2, 3, and 4 of blackgate’s guide (https://gist.github.com/blackgate/17ac402e35d2f7e0f1c9708db3dc7a44). However, in step 3.4, as suggested by Timothy Palpant in https://tim.palpant.us/sysadmin/macos/2018/09/09/nvda-gpu-wake-handler/, in the case of MBRs with the NVidia card, the GRUB config for High Sierra / Mojave (and Catalina too) needs to be:
set timeout=3
menuentry “macOS” {
outb 0x7c2 1
outb 0x7d4 0x28
outb 0x7c2 2
outb 0x7d4 0x10
outb 0x7c2 2
outb 0x7d4 0x40
outb 0x7c2 1
outb 0x7d4 0x50
outb 0x7c2 0
outb 0x7d4 0x50
exit
}
5) Reboot and verify that the MBR is using only the Intel HD Graphics 4000, by going to “About this Mac” -> System Report -> Graphics / Displays. If the Nvidia is displayed, something went wrong…
6) Install NativeDisplayBrightness by TankTheFrank, in order to control the brightness with fn+f1 and fn+f2 (https://github.com/TankTheFrank/NativeDisplayBrightness).
7) Now follow the paragraph “Disable NVIDIA GPU after waking from sleep” from the guide already mentioned in step 4:
https://tim.palpant.us/sysadmin/macos/2018/09/09/nvda-gpu-wake-handler/#disable-nvidia-gpu-after-waking-from-sleep
8) Reboot and test by going to sleep mode. The computer should wake up and so should the screen.
Known issues:
– The Macbook with take 15-20 seconds after the chime sound when the computer starts up.
– When the Macbook is rebooted, fans will run at full speed before the first time it goes to sleep. In order to prevent that, install Macs fan control (https://www.crystalidea.com/macs-fan-control). iStats Menus (https://bjango.com/mac/istatmenus/) is another alternative to control the fans, but it seems to work for this purpose only after the computer went to sleep at least one time.
Conclusions:
This issue is caused by a design error in the voltage of the U8900 chipset, and it is well known by Apple. In my opinion they could have developed a patch to automatically bypass the NVidia, but of course it was not in their short-term interests.
Behind this guide/summary there is a lot of work by many people. To those should go all the thanks.
– ferakles
LikeLike
RAFH said:
Are the nvram commands in terminal supposed to illicit a response? I receive no response upon typing these commands in at terminal in recovery mode. However my brightness control is now gone (a good sign) and SO far….no black screen reboots. I was also getting odd responses in single user mode too. (not able to mount the drive -uw for example)
LikeLike
Søren Kristesen said:
can i undo the changes, for some reasons, my macbook will not start op. freezes at the last part of the apple logo
LikeLike
charalampos chrysikopoulos said:
Yeah, mine too. After updating to catalina 10.15.4 I got this problem also. And the /System/Library/Caches/com.apple.kext.caches won’t get removed. Does anybody know what we can do about this? Thanks in advance.
LikeLike
Kauê said:
Is there a solution to delete the driver cache on Catalina, as it is on a read-only partition…?
LikeLike
Neal said:
Does anyone have any updates on this moving through to Mohave? Sleep/wake and brightness? Many thanks
LikeLike
Rubén said:
Hi Dhaval, thank you so much. I was about to send for reballing my MBP mid 2010 High Sierra and now it’s working fine with your recipe 🙂 , only the brightness and sleep mode issue but I can live with it. When I finished following your arguments I had the great idea of reseting the SMC and NVRAM. After that, google chrome could start but only blank window, no image show, also couldn’t show gmail on any browser. After 5 heart attacks I had to revert the process and do it again, although I have never used arguments and terminal things on my MBP. Hopefully everything went well and now I enjoy my laptop again as brand new. I would say it’s even faster now¡¡
PD I don’t dare to try to adjust the brightness in the terminal at the moment… cannot afford more heart attacks 🙂 Thanks again.
LikeLike
Daniel Apostol said:
first of all, thank you, your post contains the actual solution, just much too complicated, and not applicable, as soon as you have an encrypted SDD, because then you can’t enter safe mode or single user mode, which your solution requires:
so, what worked for my Macbook Retina 15 early 2013:
1. Enter recovery mode after booting with cmd-R
2. enter Terminal
$ csrutil disable
$ nvram boot-args=”nv_disable=1”
$ csrutil enable
$ reboot
3. that’s it.
in more detail:
my macbook (15 retina, early 2013) has an encrypted SDD (so I can’t start in safe mode or single-user mode) and it went black right after I logged in, so no chance of installing the gfxcardstatus app everyone is raving about. But this works, and takes only 5 minutes. tried several re-starts, still works, loosing brightness control f1-f2 and restart on clamp-close apparently, but what the ****, I can use my computer again.
Same problem with my bootcamp windows 10 partition, screen went blank even before login and couldn’t enter safe mode, so had to re-install from USB stick, and de-activate Nvida in the device manager and re-built system from there manually, as soon as I would install the correct Nvidea driver, screen would go blank again. (enter safe mode, de-activate Nvidea, rinse, repeat…)
LikeLike
Dan Holle said:
Doesn’t this command do the trick?
sudo pmset -a gpuswitch 0
This sets the system to only use the integrated GPU. 1=only use discrete GPU; 2=autoswitch.
LikeLike
Dhaval Dalal said:
I would not know….if you are confident, post your solution
LikeLike
Luke said:
Another computer saved, 3000 thank you’s
LikeLike