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.
Shell123nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00csrutil disablereboot
- You are going to reboot to your normal desktop. Now you can move the GPU kexts to other place:
Moving the GPU kextsShell12345sudo mkdir /AMD_Kexts/ # make a directory to store the AMD drivers in case you'll need them in futuresudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ # move the AMD driverssudo rm -rf /System/Library/Caches/com.apple.kext.caches/ # remove the AMD drivers cachesudo 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 Xsudo 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.kextShell123sudo chmod -R 755 /Library/Extensions/AMDGPUWakeHandler.kextsudo chown -R root:wheel /Library/Extensions/AMDGPUWakeHandler.kextsudo touch /Library/Extensions
- Make sure to have change the way the system sleeps:
Making the system hibernate by defaultShell1sudo 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 SIPShell12csrutil enablereboot
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.