Skip to content

Instantly share code, notes, and snippets.

@cdleon
Last active June 19, 2025 16:59
Show Gist options
  • Save cdleon/d1eff7246a25193304284ecec40445b0 to your computer and use it in GitHub Desktop.
Save cdleon/d1eff7246a25193304284ecec40445b0 to your computer and use it in GitHub Desktop.

Works for macOS Sierra and High Sierra (Improved version)

Taken from StackExchange

Thanks to LangLangC

For temperature and other improvements see https://gist.github.com/cdleon/d16e7743e6f056fedbebc329333d79df

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"

Reboot

reboot

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/

Reboot

reboot

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

BIG CAVEAT FOR APPLE UPDATES

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.

@atrens
Copy link

atrens commented Oct 11, 2022 via email

@tronnyjenkins
Copy link

tronnyjenkins commented Oct 11, 2022 via email

@atrens
Copy link

atrens commented Oct 11, 2022 via email

@DesBw
Copy link

DesBw commented Oct 22, 2022

External Display (monitor) is working for me. I don't know if there is a way to make the Intel Graphics to use more Ram to support external monitors.

@mnemos2000
Copy link

mnemos2000 commented Oct 22, 2022 via email

@luisfromspain
Copy link

Wow. I did the heat gun trick and it came on. I’m surprised since I baked it before that the trick worked again. I’m on the 15” model. So, I have it on Catalina now, would it be recommended to go to Big Sur or Monterey or do the discrete disable process again and stick with Catalina? On Apr 19, 2022, at 11:21 PM, fromage9747 @.> wrote: @. commented on this gist.

Wow. I did the heat gun trick and it came on. I’m surprised since I baked it before that the trick worked again. I’m on the 15” model. So, I have it on Catalina now, would it be recommended to go to Big Sur or Monterey or do the discrete disable process again and stick with Catalina? On Apr 19, 2022, at 11:21 PM, fromage9747 @.> wrote: @. commented on this gist.

How did you change to Catalina?
Did you need Patch?
May you help me ?

@garytrueblue
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...

@luisfromspain
Copy link

Recomiendo a todos este enlace para solucionar problemas:
https://dosdude1.com/mojave/

@Presquezen
Copy link

Hello. After the ultimate reboot, it starts again, shows text again, starts again, shows text again, starts again non stop. Never reaching a point when it Opens up the page of my session. Could you help?

@Presquezen
Copy link

Hello
Finaly I found myself able to open up my session. Thanks a lot for your contribution. But I can't connect any external hard drive and I can't tune the volume or the size of an image in iPhoto or the volume in iTunes. No tuning seems to work.
Some of you might be interested to know that I managed to install Snow Leopard that offers the possibility of using plenty of applications that don't work anymore on those MacBook Pros. For that, I used a Mac book pro of before 2011 that accepts Snow leopard and installed it on this faster laptop of 2011. But now I can't reinstall Snow Leopard because the connection doesn't work any more.
Any suggestion will be really appreciated

@luisfromspain
Copy link

luisfromspain commented Jul 7, 2023 via email

@PAFEROL
Copy link

PAFEROL commented Aug 7, 2023

Another user SATISFIED with this thread and with the GREAT @cdleon and @artkirienko.

THANK YOU VERY MUCH for this HUGE contribution and for saving our "old" MacBook Pro (early 2011 in my case, 17'').
In my case, it runs on MBP MacOS Yosemite 10.10.5 (latest version)

Some commands from the great @cdleon worked fine, but the second time the steps from @artkirienko worked fine.
After passing all the commands, it FINALLY booted the MBP with no problems and no black, gray screens or hangs. ALL WELL!!!! amazing!!!!!

Just now I upgraded the Hardware (16 Gb RAM, 1 Tb SSD and put the 750 Gb HDD in the DVD bay. I mounted the DVD in an external USB SATA box.

Already transferring all the data from the HDD to the SSD. 1 hour to go and everything seems to be running fine, 1 hour to go.... (fingers crossed)

Just to say that I signed up on GitHub to say thanks here to these two characters who shared their wisdom with ordinary users, GREAT!!!!

(If you come to Spain, let me know that the beers are on me!!!) ;D

@smabe2021
Copy link

smabe2021 commented Aug 8, 2023 via email

@PAFEROL
Copy link

PAFEROL commented Aug 8, 2023

Good to hear all these positive reactions. But can you tell me which steps you used from @artkirienko. Maybe my MBP (early 2011 ) will run better and more stable thenThksBenVerstuurd vanaf mijn iPhoneOp 7 aug. 2023 om 18:59 heeft PAFEROL

Yes, of course and glad to help @smabe2021

If you load the whole reply thread, in 2019 @artkirienko (1st comment in the thread) transcribed step by step how he did it. I followed step by step exactly the same.
(If you compare, they are practically the same commands that the author of the post @cdleon transcribed in another order).
In case it helps you and if you read carefully (I recommend it if you are not familiar with UNIX commands and the terminal app as I am) they have done it from MacOS High Sierra (10.13.6 latest version) and I think the commands differ in some things, so for example, I had to use cmd+s+r (point 1 of @artkirienko) to boot in Single User Recovery mode as @cdleon said.
Another important thing, My MBP 17 was plugged to internet router with RJ45 cable, because when booting in recovery mode you need stable internet connection.

Finally, when you reboot in @artkirienko's process (point 4) and boot in recovery mode (point 5) keep pressing until you see the white text on black screen (verbose mode) and make sure you don't start to see a lot of "r" letters together... release the cmd+r keys !!!! DO NOT WAIT TO SEE the recovery mode screen with OSX reinstallation, utility disk... to release them.
Once you are there, you HAVE TO OPEN THE TERMINAL APPLICATION (utilities menu) to enter the following commands (points 6, 7, 8 and 9)
I hope I helped you!

@PAFEROL
Copy link

PAFEROL commented Aug 8, 2023

Good to hear all these positive reactions. But can you tell me which steps you used from @artkirienko. Maybe my MBP (early 2011 ) will run better and more stable thenThksBenVerstuurd vanaf mijn iPhoneOp 7 aug. 2023 om 18:59 heeft PAFEROL

I forgot to tell you something important, sorry.

These steps are important for all those people who have an older MacBook Pro that is no longer repairable and have a bad GPU beyond repair.
Because what these steps do is to BYPASS the AMD Radeon graphics card on the motherboard and use only the Intel graphics card that I think is embedded in the CPU and thus thus not boot failed again and again because the graphics card or AMD Radeon GPU soldered on the board does not work, fails and makes the computer hang without being able to start it.

It is important to be clear about this

Regards to all

P.S.: I have read that some people have completely disassembled the motherboard and put it 8 minutes in the oven of their kitchen at 185º C "thinking" that this way the thermal paste of the Radeon Chip is "cooked" again... Seeing is believing and I don't dare to fry the whole motherboard and be without a computer forever. Too much risk and foolishness, don't you think?

@Ale337-s
Copy link

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it.
After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed.
"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."

Can anyone help me on this?
Thanks in advance

@mnemos2000
Copy link

mnemos2000 commented Feb 12, 2024 via email

@luisfromspain
Copy link

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."

Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."

Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."

Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."

Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."

Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."

Can anyone help me on this? Thanks in advance

Escribo en español y traduzco después al Inglés:
Me ocurrió lo mismo. Es necesario saber que, a priori, no se puede instalar un OS superior a High Sierra 10.13.6.
La solución era introducir, a través del teclado, el comando para deshabilitar el chip gráfico pero sin ver nada en pantalla. El comando es el siguiente (una sola línea):

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

Pero al principio no funcionaba. Tardé en darme cuenta que mi teclado es español y tras reiniciar los caracteres del teclado no corresponden con los caracteres del sistema. Así que con una tabla de correspondencia en un papel introduje el comando considerando sustituir los caracteres -, =, :, ", /, \ y + por las siguientes equivalencias:

  •     (?’)         pulsar una sola tecla sin el shift 
    

= (¿¡) pulsar una sola tecla sin el shift =
: Ñ
“ ¨
/ - es decir para sacar la inclinada de encima del siete pulsamos el - a la izqda de shift-dcho
\ ç es decir la barra raíz de alt+º se consigue con la cedilla ç

  •     ¿            es decir el signo mas se saca con shift+¿
    

y de este modo funcionó.

Actualmente tengo instalados dos SSD:
Uno con High Sierra 10.13.6. Su problema es que no controlo el brillo y si se cae en suspensión pierdo la pantalla con lo que tengo que apagar con el botón I/0 y reiniciar el sistema.
Otro con Catalina mediante la instalación del macOS Catalina Patcher descargado desde https://dosdude1.com/catalina/ Tengo control de brillo y si cae en suspensión no se cuelga. Por contra, el Patcher no es compatible con Chrome por su bajo nivel de seguridad pues tiene el CSRUTIL deshabitado....por lo que debo navegar con Firefox...

Todo esto después de haber leído las dos páginas:
https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0
y
https://gist.github.com/cdleon/d16e7743e6f056fedbebc329333d79df
Espero que te sea de ayuda

====================

I write in Spanish and then translate into English:
The same thing happened to me. It is necessary to know that, a priori, you cannot install an OS higher than High Sierra 10.13.6.
The solution was to enter, through the keyboard, the command to disable the graphics chip but without seeing anything on the display screen. The command is as follows (single line):

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

But at first it didn't work. It took me a while to realize that my keyboard is Spanish and after restarting the keyboard characters do not correspond to the system characters. So with a correspondence table on a paper I entered the command considering replacing the characters -, =, :, ", /, \ and + with the following equivalences:

  •   (?’)       press a single key without shift
    

= (¿¡) press a single key without the shift =
: Ñ
“ ¨
/ - to obtain the slope above the seven, press the - to the left of shift-right
\ ç to obtain, the root bar of alt+º is achieved with the cedilla ç

  •  ¿          shift+¿
    

and this way it worked.

I currently have two SSDs installed:
One with High Sierra 10.13.6. Its problem is that I don't control the brightness and if it goes to sleep I lose the screen so I have to turn it off with the I/0 button and restart the system.
Another with Catalina by installing the macOS Catalina Patcher downloaded from https://dosdude1.com/catalina/
I have brightness control and if it goes to sleep it doesn't hang. On the other hand, the Patcher is not compatible with Chrome due to its low level of security since it has the CSRUTIL disabled...so I have to navigate with Firefox...

All this after having read the two pages:
https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0
and
https://gist.github.com/cdleon/d16e7743e6f056fedbebc329333d79df

I hope this helps you

@Ale337-s
Copy link

Ale337-s commented Feb 12, 2024

**mnemos2000 ** commented Feb 12, 2024 via email

Dear Mnemos2000,
Thank you so much for your reply and advice.

Actually, as you suggested, I did proceed from " Boot into Single User-mode by holding", but it still remains hanging in the boot loop and never going into the system.
To be precise: I get to the last reboot and it does exactly as it is described here:
"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"

Only that, in this case, when it comes to the second restart, it then shows the progress bar with the apple, the bar remains completely empty, then at one stage the screen goes black and the computer restarts with the chime, again by showing all the bunch of text and going to the apple-boot bar not charging, and then goes black again, and so on. It enters a neverending reboot loop...

Might there be any other possible commands in this case...?
Reinstalling High Sierra is an option and/or possibility that might make it work again?
The system is still 10.13.6, I think the automatic update that was done was a security thing.
I have no idea what to do to get out of this and I really need to access my computer.
What do you think?

Thanks again. All help is much appreciated.

@Ale337-s
Copy link

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."
Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."
Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."
Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."
Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."
Can anyone help me on this? Thanks in advance

Hi everyone. I had successfully gone through these steps for the disabling of the defective card and everything was fine until yesterday I gave in to one of those insisting messages for updates from Apple, without realizing the consequences it could bring. Now my computer is no longer getting past the boot. I ran all the commands again but the fix seems to not be working anymore. The computer enters a boot hang loop and I can't find the way to work around it. After trying to understand what it could be, I stumbled upon this, which is clearly my case, but have no idea on how to proceed. "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."
Can anyone help me on this? Thanks in advance

Escribo en español y traduzco después al Inglés: Me ocurrió lo mismo. Es necesario saber que, a priori, no se puede instalar un OS superior a High Sierra 10.13.6. La solución era introducir, a través del teclado, el comando para deshabilitar el chip gráfico pero sin ver nada en pantalla. El comando es el siguiente (una sola línea):

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

Pero al principio no funcionaba. Tardé en darme cuenta que mi teclado es español y tras reiniciar los caracteres del teclado no corresponden con los caracteres del sistema. Así que con una tabla de correspondencia en un papel introduje el comando considerando sustituir los caracteres -, =, :, ", /, \ y + por las siguientes equivalencias:

  •     (?’)         pulsar una sola tecla sin el shift 
    

= (¿¡) pulsar una sola tecla sin el shift = : Ñ “ ¨ / - es decir para sacar la inclinada de encima del siete pulsamos el - a la izqda de shift-dcho \ ç es decir la barra raíz de alt+º se consigue con la cedilla ç

  •     ¿            es decir el signo mas se saca con shift+¿
    

y de este modo funcionó.

Actualmente tengo instalados dos SSD: Uno con High Sierra 10.13.6. Su problema es que no controlo el brillo y si se cae en suspensión pierdo la pantalla con lo que tengo que apagar con el botón I/0 y reiniciar el sistema. Otro con Catalina mediante la instalación del macOS Catalina Patcher descargado desde https://dosdude1.com/catalina/ Tengo control de brillo y si cae en suspensión no se cuelga. Por contra, el Patcher no es compatible con Chrome por su bajo nivel de seguridad pues tiene el CSRUTIL deshabitado....por lo que debo navegar con Firefox...

Todo esto después de haber leído las dos páginas: https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0 y https://gist.github.com/cdleon/d16e7743e6f056fedbebc329333d79df Espero que te sea de ayuda

====================

I write in Spanish and then translate into English: The same thing happened to me. It is necessary to know that, a priori, you cannot install an OS higher than High Sierra 10.13.6. The solution was to enter, through the keyboard, the command to disable the graphics chip but without seeing anything on the display screen. The command is as follows (single line):

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

But at first it didn't work. It took me a while to realize that my keyboard is Spanish and after restarting the keyboard characters do not correspond to the system characters. So with a correspondence table on a paper I entered the command considering replacing the characters -, =, :, ", /, \ and + with the following equivalences:

  •   (?’)       press a single key without shift
    

= (¿¡) press a single key without the shift = : Ñ “ ¨ / - to obtain the slope above the seven, press the - to the left of shift-right \ ç to obtain, the root bar of alt+º is achieved with the cedilla ç

  •  ¿          shift+¿
    

and this way it worked.

I currently have two SSDs installed: One with High Sierra 10.13.6. Its problem is that I don't control the brightness and if it goes to sleep I lose the screen so I have to turn it off with the I/0 button and restart the system. Another with Catalina by installing the macOS Catalina Patcher downloaded from https://dosdude1.com/catalina/ I have brightness control and if it goes to sleep it doesn't hang. On the other hand, the Patcher is not compatible with Chrome due to its low level of security since it has the CSRUTIL disabled...so I have to navigate with Firefox...

All this after having read the two pages: https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0 and https://gist.github.com/cdleon/d16e7743e6f056fedbebc329333d79df

I hope this helps you

Dear Luisfromspain,
Thank you for your help.
Actually, if I understood properly, you suggest that I might have a mismatching keyboard regarding the system. But my keyboard is set to English....and the commands seem to respond properly.
I hope I'm not missing something else from your response...
If so, please let me know.

Thank you

@Wealing
Copy link

Wealing commented Feb 25, 2024 via email

@Sp-cy
Copy link

Sp-cy commented Feb 27, 2024

If any of you are totally unable to boot into Mac-OS, this happened to me at some point and I was left between losing total usability of the laptop or installing Linux, so I installed Pop!_OS at first and then changed to Ubuntu just because it's update cycle is more frequent. I left a very messy log of the process in my blog, I apologize for the adhd mess of the write up, but it works: [How I Installed Ubuntu 23.04 on a Late 2011 Macbook Pro (for the Second Time)](https://www.sp-cy.com/note/how-i-installed-ubuntu-24-04-on-a-late-2011-macbook-pro-for-the-second-time/)

Unlike OS X, everything works fine on Linux, maybe battery life is not as good but the rest might be even better. For me it was just impossible to access Apple servers to reinstall the OS on a completely wiped SSD, so this was my best option. Hope this works for any of you that is left with an unusable laptop due to Apple's neglect.

@fromage9747
Copy link

Due to not being able to use Parsec (Metal support), I installed Ubuntu on my MacBook Pro 8,3 and it works beautifully. Highly recommend it! It's a dual boot, so if I want to go into macOS, I still can. I have since moved onto using Sunshine/Moonlight and haven't tested it in macOS as yet.

Of course, you will still need to be able to turn the MacBook on in order to do anything and disable the dGPU. Usually a quick blast of a heat gun over the dGPU will get you going again. Just please remove the motherboard and anything you can before using the heat gun on it, or you can expect some melted plastic! The one time I was lazy and didn't feel like removing the board from the case, and boy do I regret it!

@dannymorson
Copy link

If any of you are totally unable to boot into Mac-OS, this happened to me at some point and I was left between losing total usability of the laptop or installing Linux, so I installed Pop!_OS at first and then changed to Ubuntu just because it's update cycle is more frequent. I left a very messy log of the process in my blog, I apologize for the adhd mess of the write up, but it works: www.macbook-repair-dubai.ae
Unlike OS X, everything works fine on Linux, maybe battery life is not as good but the rest might be even better. For me it was just impossible to access Apple servers to reinstall the OS on a completely wiped SSD, so this was my best option. Hope this works for any of you that is left with an unusable laptop due to Apple's neglect.

Is it helpful?

@fromage9747
Copy link

@dannymorson If you are wondering if using Linux is useful, well it is! Whilst Hackintoshing my MacBook to run the latest macOS as well as get it to ignore the GPU, it would still send pulses to the GPU every now and again and would konk out after 6 months and I would have to pull it apart, heat the GPU to get going again.

After loading Linux and disabling the GPU with the Linux method, I haven't had ANY issues. Works great. Updates to Linux go off without a hitch, too.

@MrOlegych
Copy link

Hello everyone! I have completed all the steps above. I cannot enter Single Recovery (command + r) - just a gray screen. Standard boot takes about 10 minutes, on the screen (nvram boot-args="-v") many lines appear during this time. And the system will boot and work. I do not know how to do a factory reset or reinstall High Sierra with a non-working GPU. Maybe it is possible to clean the system without reinstalling?

@Oleg-Sentia
Copy link

Part 0: R8911 должен быть ещё запаян
Part 1: Делаем сбросы, отключаем SIP, отключаем dGPU

  1. Для того чтобы начать с чистого состояния сбросим SMC:
выключим лаптоп, отключим от него все, кроме питания от сети и нажмём одновременно 

    leftShift+Ctrl+Alt+Power 

    и отпустим их одновременно; возможно несколько раз
  2. Потом нажмём одновременно и сбросим NVRAM:
    Cmd+Alt+p+r 

    пока не услышим звук включающегося компьютера два раза.
  3. Загрузимся в Single User Recovery mode удерживая

    Cmd+r+s
  4. Отключим SIP (System Integrity Protection):

crutil disable

4.1. разрешим раздел для записи и чтения

/sbin/fsck -fy
mount -uw /
chmod 1775 /

  1. Загрузимся в Single-User mode нажав
    cmd+s

вводим
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
или
nvram boot-args="agc=0" тогда не надо отключать SIP
nvram boot-args="-v"
или две последние команды объединить
nvram boot-args="-v agc=0"

Добавим
sudo nvram AutoBoot=%00
Чтоб выключить автостарт при открытии крышки или подключения питания
Чтоб вернуть обратно = %03

перегрузимся
reboot

  1. Выключаем MacBook чтоб не затереть EFI переменные
    6.1. Войдём в безопасный режим (клавиша Shift нажата всё время загрузки) при этой перезагрузке, вызванной предыдущей командой.
6.2. Завершим работу с помощью меню Apple Menu> Shut Down.


Part 2: Паяем

7. Отключённый от сети Mac, поставим на не царапающуюся, стационарную поверхность, перевернём его и снимем заднюю крышку.

Установим температуру паяльника в 260°С и установим наконечник потоньше!
Задача удалить резистор R8911 с логической платы и тем самым отключить питание внешней видеокарты.
Прикоснитесь кончиком паяльника к каждой металлической стороне резистора (там, где имеются площадки), чередуя одну сторону и другую примерно на 1-2 секунды каждый, пока резистор не начинает освобождаться от логической платы. Как только это произойдет (примерно через 15 секунд), положите наконечник на сторону резистора, обращенную к открытому пространству на логической плате, и нажмите с очень небольшим усилием вверх (от логической платы).
Не забудем проверить что между двумя площадками нет паяного соединения.

  1. Когда резистор удален, для MacOS High Sierra требуется дополнительная программная и аппаратная модификация: 
Без неё экран не включится после засыпания, останется темным.
    Для предыдущих OS (El Capitan, Sierra) модификация не требуется.
Для выполнения модификации нужно просто запаять небольшую перемычку

Есть два способа, используем любой из них (но не оба):
a. паяем перемычку между PIN2 из R9704 и PIN1 C9711.
b. паяем перемычку между резистором R9202 и тестовой площадкой

После этого поставим заднюю крышку
И менее чем через 40 секунд (если SSD), Mac будет так же хорош, как и когда-либо, без AMD Radeon GPU.

Последнее замечание
После удаления резистора будем внимательны при обновлении ОС (попросту не устанавливаем MacOS выше Sierra) или внесении других существенных изменений (обязательно сохраняйте текущие резервные копии при помощи Time Machine!). Ибо работоспособность загрузочного диска может нарушиться из-за неудачного или ненормального выключения компьютера.
И стараемся не сбрасывать NVRAM, на всякий случай, иначе получим черный экран при загрузке.
Но и если сбросили ничего страшного не произойдёт, паяем резистор обратно, или просто ставим перемычку и повторим процедуру с самого начала.

@redbar0n
Copy link

redbar0n commented Jun 5, 2025

For the Macbook Pro 2018 version with the A1990 logic board (motherboard), the above steps work to disable the GPU, with some modifications. The GPU it is using is the AMD Radeon 560X (Polaris architecture) which uses AMDRadeonX4000 kernel extensions (kexts).

Just moving the AMDRadeonX4000.kext doesn't work (booting into macOS normal mode will stall). You need to move all AMDRadeonX4000* files to that separate directory:

AMDRadeonX4000.kext
AMDRadeonX4000GLDriver.bundle
AMDRadeonX4000HWServices.kext

Run this command for each of them (on the step Move offending kext):

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

Then proceed as per the instructions in the original post.

You should then be able to boot into normal mode, and reboot normally, with the GPU disabled.

Confirmed working on a fresh install of macOS Catalina, where the root cause is a hardware failure in the GPU (where Apple Diagnostics funnily enough reported "No issues found"), likely due to not cleaning the fans for dust, or too many overheating/cooling cycles causing microfractures on the logic board where the GPU is (or maybe it needs a GPU reballing or similar). The above fix (workaround, really) addresses the boot errors:

  • panic(cpu 0 caller 0xffffff7fabf28dfa): "virtual bool IOAccelDisplayMachine::display_mode_did_change(uint32_t): AMDRadeonAccelerator driver returns false" @IOAccelDisplayMachine.cpp:345
  • AMDFramebufferVIB::setPowerState(...) timed out (when waking up / changing the power state of the graphics card).
  • "IOConsoleUsers: gIOScreenLockState 3" (graphics subsystem is not initializing correctly).
  • reboot loop kernel panics (panic medic boot; "third-party kernel extensions" errors which refer to the mentioned AMD extensions).

GPU Model Main Kext Loaded
Radeon Pro 555X/560X AMDRadeonX4000.kext
Radeon Pro Vega 16/20 AMDRadeonX5000.kext

If you need to identify which kext is loaded on your system, you can check the loaded kernel extensions using the command:

kextstat | grep -i amd

This will list all currently loaded AMD-related kexts. Listing the loaded kexts only works if you are able to get into macOS normal mode, which you may be able to, intermittently, when encountering a failing GPU (after the machine reboots a few times on its own after stalling). You don't need to do this, and I would just google which kexts are loaded for your Macbook / GPU combination, or rely on the table above. In macOS safe mode no such kernel extensions are loaded, and that's why you're able to load into safe mode.

@redbar0n
Copy link

redbar0n commented Jun 10, 2025

In macOS Sequoia it turned out to be a lot more difficult, since you can't mount any drive as writeable in Single User Mode, and macOS Safe Mode does not allow writing to /System/, and SIP (System Integrity Protection; aka. csrutil) plus the Signed System Volume (SSV; csrutil authenticated-root) protections remain enabled by default. Read about how to disable these protections. Furthermore, if Sequoia fails to boot, then it will revert the system disk to an earlier APFS snapshot, which will overwrite and thus eliminate any files you may have added to root / or /System/ dirs.

I got it working (disabled the dedicated AMD GPU, and successfully booted into macOS Sequoia in normal mode) after a fair amount of attempts. I'll try to document the key factors here, so you may have success in replicating it if you're in the same situation.

NB: Display brightness controls are disabled (touch bar, system bar, display system settings). I gave up trying to get the brightness controls to work on the internal display in macOS in normal mode, even though they work when booting into safe mode. It seems as macOS in normal mode loads AMDRadeonX4000.kext and associated kexts in normal mode in macOS even though I have removed them from /Volumes/Macintosh\ HD/System/Library/Extensions/. Got some indications I you would need to "rebuild the kernel collections if you want to exclude (remove) AMD kexts that are part of the Boot Kext Collection (BKC) from loading in normal mode on macOS Sequoia", but this step seemed fairly involved. So instead I downloaded the app "Brightness Slider" from the App Store and am using that to control the display brightness using a translucent black overlay in software, which works fairly well, but likely won't conserve battery life as much.

In Recovery mode (boot computer by holding CMD + R), remember that /System refers to the System folder of the minimal recovery OS, not the System folder of your main macOS installation. So in recovery mode then when you want to make modifications to your macOS installation don't go via root / but via /Volume/<name of your main SSD drive partition>/.

Recommend storing:

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

inside a .sh script file called nvram_disable_gpu.sh stored in your user folder (so it won't be overwritten by system snapshots on potential failed reboot). So you can easily run it again as need be without having to type it out, and just run it from root / with this:

sh /Volumes/Macintosh\ HD/Users/<username>/nvram_disable_gpu.sh

Ensure you have all the permissions needed (in Recovery mode):

csrutil status
csrutil disable
csrutil authenticated-root disable

Modern macOS uses a signed system volume (SSV), so you must mount the correct partition with write access to make changes to the System folder (otherwise you'll get Read-only file system errors):

mount -uw /Volumes/Macintosh\ HD/

I moved all of the AMD kexts away from the Extensions folder. Note that this is NOT under /System/Library/Extensions/ since that is under root, but actually under your hard drive (mine is named Macintosh HD) in the /Volumes/ dir:

cd /Volumes/Macintosh\ HD/Users/<username>/System/Library/
mkdir Extensions-off/
mv Extensions/AMD* Extensions-off/

I might just have needed to move the specific "4000" kexts for my AMD Radeon card, mentioned in my previous post. But since that didn't work at first, I moved all of them. After that, the NVRAM settings seem to have done the trick.

Then:

kmutil rebuild to explicitly rebuild the kext (kernel extension) collection in modern versions of macOS, including Sequoia. The older kextcache -i /Volumes/Macintosh\ HD/ or touch /Volumes/Macintosh\ HD/System/Library/Extensions/ commands are deprecated and no longer manages the new kext collection system introduced since macOS Big Sur. Since the cache is now managed by new tools and is more tightly integrated with system security.

macOS Sequoia (and Sonoma) has apparently moved to (esp. in case of errors during boot) booting from a system snapshot, so you need to persist any changes you make to your system in Recovery mode to a snapshot.

After making changes, the system volume must be "blessed" to create a new signed snapshot that the Mac can boot from. This is necessary because, starting with macOS Catalina, the system volume is read-only and uses cryptographically signed snapshots for integrity and security. The bless command is used in Terminal to set the modified snapshot as the bootable system volume. This process tells the Mac to use your modified system as the startup disk. After blessing, you reboot the Mac, and it will boot from your new, altered system snapshot. Without this step, your changes won’t be recognized at boot, or the system may refuse to start due to integrity violations.

See the preexisting snapshots:

diskutil apfs listSnapshots /Volumes/Macintosh\ HD/

I recommend moving the kext files and creating a blessed system snapshot afterwards (in recovery mode). The usual way has been with:

bless --folder /Volumes/Macintosh\ HD/System/Library/CoreServices --bootefi --create-snapshot

But the newer way (since bless may be deprecated) is instead to do:

-s creates the snapshot:

/Volumes/Macintosh\ HD/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -s "NoGPUKext" -v /Volumes/Macintosh\ HD/

-r sets the snapshot as the one to use as root on the next boot and onwards:

/Volumes/Macintosh\ HD/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -r "NoGPUKext" -v /Volumes/Macintosh\ HD/

Not sure that it makes a difference. Either way seems to work.

Verify that a new snapshot was added, by listing the snapshots again and see if theres a new one at the bottom:

diskutil apfs listSnapshots /Volumes/Macintosh\ HD/

There should be an additional com.apple.bless.... snapshot listed at the end and it's XID should say it will root to (boot from) it.

So when Sequoia tries to reboot with this new snapshot, you will have moved the mentioned kext files away from /Volumes/Macintosh\ HD/System/Library/Extensions/ and they should no longer cause the boot failure / reboot loop.

This enables booting into macOS Sequoia in normal mode, but causes brightness controls to be disabled (not visible in system preferences -> Displays, greyed out in top task bar, and the brightness control on the touch bar does nothing).

Try setting:

pmset -g to inspect power management variables
pmset -a gpuswitch 0 to force using integrated GPU only

Other nvram variables to try setting:

nvram gpu-policy=%01 to force using integrated GPU only, might be related/corresponding to the nvram gpu-power-prefs variable, but setting the latter won't set the former.

nvram GfxMode=4 sets the Mac to use the integrated GPU (iGPU) at boot and powers down the discrete GPU (dGPU; e.g. the AMD Radeon card) completely. But it didn't seem to do anything, so I just removed/nullified it with nvram GfxMode=.

nvram boot-args="agc=-1" sets the Apple Graphics Controller on Macs with dual GPUs. Model-dependent, may not have an effect on newer Macs.

nvram boot-args="agc=-1" -v" to combine setting the agc boot arg as well as -v which gives verbose mode boot. I think this might have been key to finally getting it all to work.

nvram -p to see nvram variables and what they are set to.


Notes that may be of help:

  • sleep (pmset sleepnow) and displaysleep (displaysleep 1 minute) and waking up from them seems to work without crashing and rebooting.

  • AppleBacklight.kext is a kernel extension (kext) in macOS that controls the display backlight. It manages the backlight's brightness, usually by adjusting a PWM signal (pulse-width modulation). This kext is crucial for enabling users to adjust screen brightness using the brightness keys or slider in system settings.

In macOS Sequoia in Safe Mode (hold SHIFT to startup/boot the machine) - where all the display brightness/backlight controls work natively, even with a defective GPU - then these are the relevant loaded kernel extensions (kexts) and drivers, seen by running kextstat | grep -i -E 'mux|amd|graphics|backlight' (they are also loaded in normal mode):

IOGraphicsFamily (599)
AppleGraphicsDeviceControl (8.1.10)
AppleIntelCFLGraphicsFramebuffer (23.0.0)
AppleBacklightExpert (180.12)
AGDCBacklightControl (8.1.10)
AMDSupport (7.0.0)
AMD9500Controller (7.0.0)
AppleGraphicsControl (8.1.10)
AppleMuxControl2 (8.1.10)
AppleGraphicsDevicePolicy (8.1.10)
AMDFramebuffer (7.0.0)

AppleBacklight (180.12) is weird in macos safe mode, since it appears in kextstat as loaded at first, but then apparently unloads after 2-5 minutes, disappearing from the list. Yet, adjusting display brightness / backlight continues to work (in safe mode), regardless.

In normal mode - where display brightness/backlight controls are disabled / fails - these additional kexts and drivers are loaded:

AppleIntelKBLGraphics (23.0.0)
AMDRadeonX4000HWServices (7.0.0)
AMDRadeonServiceManager (7.0.0)
AMDRadeonX4000 (7.0.0)
AMDRadeonX4100HWLibs (1.0)

To restore the display brightness / backlight functionality I did try:

  • Replace AppleMuxControl.kext and AppleMuxControl2.kext with an old AppleMuxControl.kext that worked in macOS Sierra.

Potential workarounds not tried (I gave up before attempting this):

  • WhateverGreen since it "Fixes the PWM* backlight control of the built-in display that is directly wired to AMD Radeon RX 5000 series graphic cards". See their AMD Radeon FAQ. Radeon Pro 560X is found in the 2018 15-inch MacBook Pro. But the Radeon RX 5000 Series (Pro 5000M) is found in the 16-inch MacBook Pro (2019+) and 27-inch iMacs (2020+). * "The acronym PWM stands for Pulse Width Modulation, and it is a method used to control the brightness of a backlight, particularly in LCD displays. It works by rapidly switching the backlight on and off at a frequency that the human eye perceives as a steady, dimmed light.". WhateverGreen is based on Lilu which is "An open source kernel extension bringing a platform for arbitrary kext, library, and program patching throughout the system for macOS."
  • https://doslabelectronics.com/Demux - dosdude1's most recent fix (after he gave us the gpudisable NVRAM fix), which allegedly restores display backlight control and fixes potential sleep mode issues. But it is for older Macbooks, and even though it has steps for macOS > High Sierra (macOS 10.13), it says "Backlight control is not yet available for macOS Big Sur" (macOS 11). So it's doubtful if it works on even later macOS versions such as Sequoia (macOS 15).
  • Luis Puerto's guide is similar to the current gist you are reading, but has some interesting nuances maybe worth trying.
  • "Removing a kext from /Volumes/Macintosh\ HD/System/Library/Extensions in Recovery Mode is not enough in Sequoia. The system will still load the kext from its sealed kernel collection unless you properly rebuild the collection, update the system seal, and bless the new snapshot—a process that is not straightforward and is intentionally restricted by Apple to protect system integrity" said perplexity.ai when I inquired how to prevent Sequoia from loading AMDRadeonX4000.kext even though I had removed it from the Extensions folder. But "rebuilding the kernel collection is only relevant for third-party kexts ad requires specific permissions and reduced security settings. You cannot rebuild or modify the kernel collection to exclude essential system kexts like com.apple.kext.AMDRadeonX4000 on modern macOS." according to perplexity.ai. The system kexts (like AMDRadeonX4000) are a part of the Boot Kext Collection (BKC) or System Kext Collection (SKC) which are managed by Apple and cannot be modified by users. Even if you try to rebuild the kext collections with kmutil, the system will not allow you to remove or exclude essential Apple kexts".

Verified dead ends:

  • gSwitch / gfxCardStatus apps didn't work, since they only disable the GPU switching after booting into macOS, but the faulty GPU prevented macOS to load because macOS tries to exercise it during boot. After the more fundamental NVRAM solution enabled macOS booting up correctly, these apps didn't help to re-enable display brightness / backlight, either (they just failed, since they couldn't detect the GPU in the system any longer, due to the NVRAM fix preventing macOS from loading the GPU). If anything, you might have the best luck with steveschow fork of gfxCardStatus which contains some interesting links.

Learnings from perplexity.ai about other potential dead ends (not verified):

  • "kmutil is not a viable tool for preventing Apple’s own graphics/display kexts from loading in normal mode on macOS Sequoia. Its scope is limited to auxiliary (third-party) kext management, and the system’s security model blocks modification or exclusion of Apple’s built-in kexts through this method"
  • "At this time, there is no confirmed, community-verified evidence that OCLP root patches restore display backlight functionality on the 2018 MacBook Pro in normal mode on macOS Sequoia. If this feature is critical, you should monitor OCLP’s official documentation and community forums for updates, as support for T2 Macs may improve in future releases."
  • On older models, users have manipulated NVRAM variables or replaced specific kernel extensions (like AppleMuxControl.kext) to force iGPU-only operation and restore backlight control. However, these methods are not confirmed to work on T2 Macs or in recent macOS versions like Sequoia, and may cause boot failures or loss of external display support.

@redbar0n
Copy link

Link to another gist thread with some more fixes like creating a rescue thumb drive that you can use every time you are having trouble booting macOS: blackgate/mbp2011-disable-amd-gpu.md

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