Skip to content

Instantly share code, notes, and snippets.

What would you like to do?

Works for macOS Sierra and High Sierra (Improved version)

Taken from StackExchange

Thanks to LangLangC

For temperature and other improvements see

This method leaves brightness control enabled

Reset SMC

Shutdown, unplug everything except power and hold

leftShift + Ctrl + Option + Power 

I holded for 5 seconds, but holding just for an instant should work

Reset NVRAM: Power up and hold

Command + Option + p + r

Until you hear the startup chime two times.

Shutdown computer

Power up and boot into Single User Recovery by holding

if you are on high sierra 10.13.6+ you might need to use Command + r instead

Command + r + s

Disable SIP (This takes a bit to complete so wait for it)

csrutil disable

Disable Discrete GPU on boot by running

nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

Enable verbose boot mode (This will show text everytime you boot up, shutdown or restart your mac)

nvram boot-args="-v"



Boot into Single User-mode by holding

Command + s

It might look as if it hanged, but press enter and you should see the shell (root#)

Mount root partition writeable

/sbin/mount -uw /

Make a kext-backup directory

mkdir -p /System/Library/Extensions-off

Move ONLY ONE offending kext out of the way

mv /System/Library/Extensions/AMDRadeonX3000.kext  /System/Library/Extensions-off/

Inform the system to update its kextcache:

touch /System/Library/Extensions/



It will show a bunch of text in the screen (don't be alarmed, let it finish) and then it will restart again In second restart it will show text in the screen again and then it will show normal login screen Your computer now should work properly (dGPU off and iGPU on, shown as i in gfxCardStatus


If an update that contains changes to the AMD drivers is about to take place it is advisable to move back the AMDRadeonX3000.kext to its default location before the update process. Otherwise the updater writes at least another kext of a different version to its default location or at worst you end up with an undefined state of partially non-matching drivers.

After any system update the folder /System/Library/Extensions has to be checked for the offending kext. Its presence there will lead to e.g. a boot hang on Yosemite and Sierra, an overheating boot-loop in High Sierra.

Copy link

Hi, I may have just had a bad battery??? but to test this assumption, If I wanted to reverse the process outlined in the first post (re-enable discrete graphics) would I do the following :

  1. move radeonx3000 kext back to extensions folder
  2. enable SIP
  3. Reset SMC
  4. Reset NVRAM (does this reenable discrete graphics card)

(if not completely correct, your corrections would be much appreciated...)
Thank you...

Copy link

Recomiendo a todos este enlace para solucionar problemas:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment