As I’ve told in the previous post, the discrete graphic car of my MacBook Pro late 2011 is faulty and can be trusted any more. So I decided to disconnect it.
Yesterday, I updated the system to 10.13.2 and although in the beginning everything was working fine without enforcing the dGPU disconnection, the graphic card later failed and I had to apply the fix again. For some reason the fix didn’t working as well as it was working before so after too much booting and trying I decided to take the middle way. Besides, the GRUB soliton was nice, but it made the booting much more slower.
What I’ve done basically is move the kexts from the extensions folder to other place and apply the wake up handle.
In other words this are the steps. Please keep in mind that I’m running High Sierra in my machine.
- Reset the SMC and the NVRAM.
- Boot your Mac on recovery single user mode (pressing and holding
Cmd + S + R ) and run the following commands.
Shell123$ nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00$ csrutil disable$ reboot
- You are going to reboot to your normal desktop. Now you can move the GPU kexts to other place:
Moving the GPU kextsShell12345$ sudo mkdir /AMD_Kexts/ # make a directory to store the AMD drivers in case you'll need them in future$ sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ # move the AMD drivers$ sudo rm -rf /System/Library/Caches/com.apple.kext.caches/ # remove the AMD drivers cache$ sudo mkdir /System/Library/Caches/com.apple.kext.caches/ # just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X$ sudo touch /System/Library/Extensions/ # to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt
- Take the AMDGPUWakeHandler.kext and copy it to
/Library/Extensions then run the following commands
Applying the AMDGPUWakeHandler.kextShell123$ sudo chmod -R 755 /Library/Extensions/AMDGPUWakeHandler.kext$ sudo chown -R root:wheel /Library/Extensions/AMDGPUWakeHandler.kext$ sudo touch /Library/Extensions
- Make sure to have change the way the system sleeps:
Making the system hibernate by defaultShell1$ sudo pmset -a hibernatemode 25
- Now you can reboot.
- Perhaps it’s recomendable to re-enable the SIP. To do that just boot your Mac on recovery single user mode (pressing and holding
Cmd + S + R ) and run:
Reenabling SIPShell12$ csrutil enable$ reboot
This solution perhaps it’s a little bit easier, but has the disadvantage that you need to apply it all every time you update the system.
Anyway, I recommend to read the previous post to understand fully what is going on.