Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

johnnycashfl0w

macrumors newbie
Apr 9, 2019
10
0
> Is it possible to just install a Linux distro after this work-around?
> I had planned on trying to install Manjaro or ElementaryOS on this Mac as I don't
> use MacOS and got this laptop cheap.

Look at this site: https://realmacmods.com/macbook-2011-radeon-gpu-disable/
When you remove a certain resistor and set nvram properly you get linux support!
Linux support is very difficult with a working gpu.

There's no way it's that easy. Just literally install Ubuntu with that auto-run program then rip that resistor out? I don't plan on ever using that GPU so I could just remove it and be on my way?
 

mrmeister

macrumors regular
May 26, 2010
139
1
Fix for 17 inch dGPU switch issue

(Tested successfully in both “early” and “late” 2011 17 inch MacBook Pro)



This guide is based on the experience of many users (including me) while trying to fix the very well known issue with AMD dGPU on 17’’ MacBook Pro from 2011 (both early and late):



Step 0) As a starting point I made a clean installation of Sierra (Version 10.12.4) — This is just a step for establishing a common middle ground and is not really needed….

0.1) To do this just download the installer from the App Store and then use “DiskMaker X” to create a bootable installation.

0.2) After the bootable image is created, proceed to turn off your computer and hold the “Alt” or “Options” Key. Select the Sierra installer and proceed with the installation (I format the HDD partition to make a clean install on it)



Note: You might need to do this on another computer. Just buy one of those cheap usb to sata connectors and use it to connect it to another Mac so you don’t risk having your installation failed because of your machine.



Step 1) Prepare a Bootable USB pendrive with a non GUI Linux (Credits to AppleMacFinder)



1.1) Download ArchLinux ISO

You need a working computer for that and a spare CD/DVD/USB drive. Download the latest Arch Linux ISO image from this page - https://www.archlinux.org/download/ , at the time of writing it is archlinux-2017.03.01-dual.iso . Then you could either simply burn this ISO to CD/DVD (which later could be either inserted to MBP's SuperDrive or External DVD Drive connected to MBP by two USB cables) or create a bootable USB: use the great detailed instructions from this page, https://wiki.archlinux.org/index.php/USB_flash_installation_media



1.2) Creating the bootable USB with the .iso:

In macOS

First, you need to identify the USB device. Open /Applications/Utilities/Terminal and list all storage devices with the command:

*) diskutil list


Your USB device will appear as something like /dev/disk2 (external, physical). Verify that this is the device you want to erase by checking its name and size and then use its identifier for the commands below instead of /dev/diskX.

A USB device is normally auto-mounted in macOS, and you have to unmount (not eject) it before block-writing to it with dd. In Terminal, do:

*) diskutil unmountDisk /dev/diskX


Now copy the ISO image file to the device. The dd command is similar to its Linux counterpart, but notice the 'r' before 'disk' for raw mode which makes the transfer much faster:

*) sudo dd if=path/to/arch.iso of=/dev/rdiskX bs=1m

After completion, macOS may complain that "The disk you inserted was not readable by this computer". Select 'Ignore'. The USB device will be bootable.


Step 2) Boot to Linux (Credits to AppleMacFinder):

2.1) Boot to it: insert this CD/DVD/USB to Macbook Pro, hold Option key while booting, choose "EFI boot" (that is your bootable installation media), press "e" key to edit the GRUB options of the Arch Linux archiso x86_64 UEFI CD menu entry while it is selected at the main screen, add nomodeset to the end of this line and press Enter. If everything is done correctly, you will find yourself at the Linux console! (It takes some time so be patient and wait for the prompt)


2.2) Edit EFI vars: looks like efivarfs filesystem is mounted by default! So you can already cd /sys/firmware/efi/efivars and ls to explore this directory and see if there is a "gpu-power-prefs-..." variable (where ... is UUID of this variable).


2.2-Case 1:

If there is such a variable, its better to remove it with rm.

*) rm gpu-power-prefs-…


In my case the efivarfs has been mounted by default with read/write permissions, but if you are getting the "operation not permitted" message while attempting to rm, it means that in your case efivarfs has been mounted as read-only and you need to remount it with read-write permissions and try again (credits to totoe_84 for this valuable addition) (Try this and then try to remove it):

*) cd /

*) umount /sys/firmware/efi/efivars/

*) mount -t efivarfs rw /sys/firmware/efi/efivars/

*) cd /sys/firmware/efi/efivars/

*) rm gpu-power-prefs-…


If this also fails (If you still can’t erase the file) use chattr command to disable file immutability and then erase the file:

*) chattr -i "/sys/firmware/efi/efivars/gpu-power-prefs-…”

*) cd /sys/firmware/efi/efivars/

*) rm gpu-power-prefs-…


2.2-Case 2:

The file gpu-power-prefs-… doesn’t exist well then you don’t have to delete it hahaha. (I repaired 2 17 inch models and 1 didn’t have it, so it’s fine)


2.3) Create a new gpu-power-prefs-… file (Original credit mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch, Credits to AppleMacFinder):

*) printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9


2.4) Add immutability to the gpu-power-prefs-… file (Credits to AppleMacFinder):

This chattr command is supposed to lock a file to make it accessible only by "superuser" - and so that, while booting, your EFI will have no chance to screw up your gpu-power-prefs-... variable under any circumstances


*) chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"


2.5) Unmount efivars and reboot (Credits to AppleMacFinder):

Could not unmount efivars if you are inside this directory, so change to the root directory

*) cd /

*) umount /sys/firmware/efi/efivars/

Guarantees that your EFI variables are flushed to efivarfs filesystem, please unmount it safely before rebooting)

*) reboot


3) Eliminate AMD Kexts (Credits to newfield),
Note: You might need to do this every time you do an OS updates, since each update normally writes the AMD Kexts again.


(His words and this also happened to me!: After disabling the dGPU using Arch, normal boot would hang halfway. Although safe boot would work. I wound up having to remove all the AMD kext files in the Terminal in Recovery Console)


Trying to remove them in Single User just gave me sandbox errors. (Summary -> Don’t do it in Single User Mode the one that you boot with Cmd + S)


3.1) So what you have to do is:

If you have FileVault Unlock it first:

Unlock first.

Then Boot into Recovery (“cmd + r”, it will boot without failing, if it fails then repeat step 2 and then after that boot directly into recovery with command + R, I had to do this once because the dGPU got active again after booting into the os with AMD kexts)

*) Boot into recovery mode (Command + r)

*) Start Terminal

*) diskutil cs list (find UUID for drive)

*) diskutil coreStorage unlockVolume UUID

*) cd /Volumes/Macintosh\ HD

*) mkdir AMD_Kexts

*) mv System/Library/Extensions/AMD*.* AMD_Kexts/

*) reboot



(If you only have one storage with 1 partition just use "cd /Volumes/Macintosh\ HD" and the remaining commands after starting the terminal)


Extra STEP), if your PC is now working! Download “steveschow” branch of gfxCardStatus (gfxCardStatus v2.4.3i) or just download the app directly from:

URLS:

https://github.com/steveschow/gfxCardStatus/releases

https://github.com/steveschow/gfxCardStatus

With this application you can even prove that the dedicated GPU can't get activated. Even if you try to change the selected GPU to the dedicated one, it just won't change.


—————

The End!

AND VOILA!!! You have a working 17 inch MacBook Pro. As I said I tested this with an early 2011 and late 2011 17 inch MacBook Pro’s and both are now running (Before they were both dead)


Big thanks to AppleMacFinder, to the makers and contributors of this thread, to gfxCardStatus maker and forkers :D (steveschow) and to switch-gpu makers I can’t thank you guys enough as I am so happy to bring both of this incredible machines back to life. With this post I am not trying to take any credit, but as I had 2 machines I run into different issues with both, which could be helpful to others, thats why I was inclined to make “my own” guide and share it with you.


I just created an account here to share this, Hope it helps more people!

I followed these steps this morning on a 15" late 2011 Macbook Pro, running Yosemite 10.10.5, and it appears successful so far. gfxcardstatus is reporting the integrated GPU instead of discrete, and I was able to use it successfully for 30 minutes before work.

I haven't tried shutting down, rebooting or logging off, and I'm somewhat reluctant to (just in case), but I suppose I should try sooner rather than later, just to be prepared.

Thanks for the help!
 
  • Like
Reactions: abetancort

abetancort

macrumors member
Oct 6, 2013
31
3
TheCanaries
Once you jump the resistor the AMD GPU is at all effects gone for good, unless your rewire it back.

Be careful by protecting NVRAM, because if you change its settings you will probably need to rewire the resistor before you are able to apply the patch. and you are dealing with the logic board that is full of extremely small smd components that could end really fried if not handled properly.
 

johnnycashfl0w

macrumors newbie
Apr 9, 2019
10
0
So, quick update:

Was able to erase that file ending in the wrong code, but now I'm unable to re-create it now. I keep getting errors. I'm honestly thinking since there isn't an OS present it may be doing something I'm not aware of. Maybe I'm wrong, I can't really tell. I've tried re-installing an OS to it but it just sticks to a white screen and does nothing. I even tried a network install and nothing (Even though I knew it wouldn't work).

Any ideas?
 

abetancort

macrumors member
Oct 6, 2013
31
3
TheCanaries
So, quick update:

Was able to erase that file ending in the wrong code, but now I'm unable to re-create it now. I keep getting errors. I'm honestly thinking since there isn't an OS present it may be doing something I'm not aware of. Maybe I'm wrong, I can't really tell. I've tried re-installing an OS to it but it just sticks to a white screen and does nothing. I even tried a network install and nothing (Even though I knew it wouldn't work).

Any ideas?

You have to start from ArchLinux image from the bootable usb drive, because it’s text based and any graphical environment will bring the error. Repeat the steps from the beginning and recreate the files and their content given in the instructions... btw you can create the ArchLinux bootable usb drive in any other computer.
 

johnnycashfl0w

macrumors newbie
Apr 9, 2019
10
0
You have to start from ArchLinux image from the bootable usb drive, because it’s text based and any graphical environment will bring the error. Repeat the steps from the beginning and recreate the files and their content given in the instructions... btw you can create the ArchLinux bootable usb drive in any other computer.

That's exactly what I've been doing. I meant there's no MacOS present on the drive so I thought maybe that was causing some issues. I've followed this guide word for word and still keep getting errors.

I start out as follows;

1) Boot into Arch Linux console via nomodeset, wait till its done (I've tried the current version of Arch and the one used in the tut).
2) Type in cd /sys/firmware/efi/efivars/
3) Type in ls
4) There is no file that even starts with gpu and even searching for it comes up with nothing.
5) Begin typing out printf ..... and as soon as I'm finished it gives me errors.

It's usually Operation Not Permitted or Printf write error invalid argument. No idea what I'm doing wrong lol.
 

abetancort

macrumors member
Oct 6, 2013
31
3
TheCanaries
That's exactly what I've been doing. I meant there's no MacOS present on the drive so I thought maybe that was causing some issues. I've followed this guide word for word and still keep getting errors.

I start out as follows;

1) Boot into Arch Linux console via nomodeset, wait till its done (I've tried the current version of Arch and the one used in the tut).
2) Type in cd /sys/firmware/efi/efivars/
3) Type in ls
4) There is no file that even starts with gpu and even searching for it comes up with nothing.
5) Begin typing out printf ..... and as soon as I'm finished it gives me errors.

It's usually Operation Not Permitted or Printf write error invalid argument. No idea what I'm doing wrong lol.

Do a NVRAM reset following these instructions https://support.apple.com/es-es/HT204063 and then start with ArchLinux.
 

laborki

macrumors newbie
Apr 29, 2018
9
1
Hi guys!

Quick question: I moved ALL the kexts instead just the AMDRadeonX3000.kext and automated the loading process of it so the computer is working again. But I wanted to move back the other kexts to Extensions folder (I did that using Finder) and make the rest of the kext to load at the startup (when I check which AMD kexts are loaded with the command 'kextstat' only AMDRadeonX3000.kext appears on the list). What is the simplest way to make them load?

Thanks
 

laborki

macrumors newbie
Apr 29, 2018
9
1
First follow the ‘official’ instructions in post #875 on page 35...
Thanks for your reply pckrullenbol!
Just to give you the background of the situation: I did the security update, High Sierra 10.13.6 and the problem with booting the system appeared so I did follow the 'official' instructions except I moved all the kexts and I don't have the brightness buttons working. I know I should have followed precisely the instructions but I wasn't getting persmissions with cmd + R + S, so I used a different set of instructions (basically the same except they asked to move all kexts...)

Now, when I use the command kextstat | grep AMD
this is the list of my AMD kext:

173 0 0xffffff7f834c1000 0x568000 0x568000 com.apple.kext.AMDRadeonX3000 (1.6.8) 8559CEFE-85B8-3FB7-B20A-9346E5A7986A <172 162 114 12 7 5 4 3 1>

and some are missing. I would like to get the brightness buttons work again.

I was trying to manually start one of the kexts (sudo kextload /System/Library/Extensions/AMD6000Controller.kext)
but got such a message:

/System/Library/Extensions/AMD6000Controller.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8).
[doublepost=1554925677][/doublepost]
You didn’t follow the ‘official’ instructions in post #875 on page 35.
So make a new start...

How to make a new start?
 
Last edited:

pckrullenbol

macrumors member
Sep 30, 2016
30
10
The Netherlands
It is difficult to help you when we don’t know how you removed/moved the kext?
As principle: disable sip, start single-user and restore the moved kext back to the initial directory.
Then redo the instructions in #875.

Better approach is maybe a re-installation?
 

laborki

macrumors newbie
Apr 29, 2018
9
1
It is difficult to help you when we don’t know how you removed/moved the kext?
As principle: disable sip, start single-user and restore the moved kext back to the initial directory.
Then redo the instructions in #875.

Better approach is maybe a re-installation?


I removed the kexts following this:

1 - Enter Recovery Mode (text mode)

Command + R + S (WHAT WORKED FOR ME WAS COMMAND + R and utility tab to start the terminal)

2 - Disable SIP (SIP lock System folder -> no move kexts to another folder). SIP (csrutil) only enable / disable on Recovery Mode.

csrutil disable

3 - Restart the system

reboot

4 - Enter Single User mode

boot up holding down the CMD and S keys

5 - Check a disk

fsck -fy

6 - Mount a root filesystem with read/write permissions

mount -uw /

7 - Make a directory to store the AMD drivers in case you'll need them in future

sudo mkdir /AMD_Kexts/

8 - Move the AMD drivers

sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/

9 - Remove the AMD drivers cache)

sudo rm -rf /System/Library/Caches/com.apple.kext.caches/

10 - Just in case OS X will be dumb and will not recreate this directory, we are creating it for OS X

sudo mkdir /System/Library/Caches/com.apple.kext.caches/

11 - to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt

sudo touch /System/Library/Extensions/

12 - Unmount a partition to guarantee that your changes are flushed to it

sudo umount /

13 – Reboot

sudo reboot

14 - Before enabling SIP again, try the normal boot without pressing any key. The Mac OS will rebuild the kernel cache and restart. See if the system starts normally.

15 - Enable SIP again (restart the system)

16 - Enter Recovery Mode (text mode)

Command + R + S

17 - Enable SIP again

csrutil enable

18 - Restart the system

reboot

19 - Open Terminal (Finder -> Applications -> Utilities -> Terminal (copy and paste) :

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

20 - Restart the system

sudo shutdown -r now


Then after realising only AMDRadeonX3000 should be moved out of Extension folder, I manually copied the rest back to Extension folder in Finder (I have no idea how it let me to do it) but they aren't loading and I cant manually start them either.
 

pckrullenbol

macrumors member
Sep 30, 2016
30
10
The Netherlands
It's correct that command + R + S doesn't not work anymore with the latest 10.13.x
So all the AMD-kexts are back in their original location /System/Library/Extensions/?
Redo steps till 13 without step 8 that moves the AMD kexts.
Step 11 will force the rebuild of the cache at next reboot.
At boot-time all kexts all loaded from /System/Library/Extensions/.
The only one you have to load manually is the AMDRadeonX3000.
That is the so called login hook LoadX3000.sh, mentioned in the instructions #875.
That makes the loading automatic on boot.
 

laborki

macrumors newbie
Apr 29, 2018
9
1
I have tried to repeat the procedure without any luck - somehow the system doesn't see kexts that are back to the extensions folder. It seems like steps 9 and 11 don't work and there is no longer first boot (when the system rebuilds the cache). I need to mention that when I was repeating the procedure I couldn't successfully finish step 12 - Unmount a partition to guarantee that your changes are flushed to it - sudo umount / - clearly something was stopping the umount process - the message said: Resource busy -- try 'diskutil unmount'
Could that be the reason?
 

nsgr

macrumors 6502
May 22, 2017
317
117
Hey @nsgr!!!

Really great post! can you tell if it's really working and you don't have any more black screens when you wake up?


I do not have problems with Sleep. But that changes from Macbook Pro to another Macbook Pro. So only testing with your Macbook Pro.
It has Macbook Pro that loses the gpu-power-prefs configuration for the Intel GPU on the EFI chip. My Macbook Pro never loses (almost two years of testing).

----------------------------

laborki user:

"/System/Library/Extensions/AMD6000Controller.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8)."


If you moved the kexts by the Finder, then you should execute the chmod and chown commands procedures to restore the permissions.

If you have a message of "operation not permitted" then it is because the SIP is Enable.


Any KEXT to be loaded has to have two obligations:

Example: AMD6000Controller.kext

1 - It has executable file permission.
Code:
sudo chmod -Rv 755 /System/Library/Extensions/AMD6000Controller.kext


2 - KEXT must be user-owner: root and group: wheel.
Code:
sudo chown -Rv root:wheel /System/Library/Extensions/AMD6000Controller.kext

3 - Check with the ls command with -laR options:
d: directory
r: read
w: write
x: executable

Code:
ls -laR /System/Library/Extensions/AMD6000Controller.kext/
total 0
drwxr-xr-x@   3 root  wheel     96 Mar 16 18:55 .
drwxr-xr-x  326 root  wheel  10432 Apr  9 18:14 ..
drwxr-xr-x    6 root  wheel    192 Apr  9 17:51 Contents

/System/Library/Extensions/AMD6000Controller.kext//Contents:
total 24
drwxr-xr-x  6 root  wheel   192 Apr  9 17:51 .
drwxr-xr-x@ 3 root  wheel    96 Mar 16 18:55 ..
-rw-r--r--  1 root  wheel  4888 Feb 27 07:14 Info.plist
drwxr-xr-x  3 root  wheel    96 Apr  9 17:51 MacOS
drwxr-xr-x  3 root  wheel    96 Apr  9 17:51 _CodeSignature
-rw-r--r--  1 root  wheel   522 Feb 27 07:16 version.plist

/System/Library/Extensions/AMD6000Controller.kext//Contents/MacOS:
total 4280
drwxr-xr-x  3 root  wheel       96 Apr  9 17:51 .
drwxr-xr-x  6 root  wheel      192 Apr  9 17:51 ..
-rwxr-xr-x  1 root  wheel  2190864 Mar 28 04:09 AMD6000Controller

/System/Library/Extensions/AMD6000Controller.kext//Contents/_CodeSignature:
total 8
drwxr-xr-x  3 root  wheel    96 Apr  9 17:51 .
drwxr-xr-x  6 root  wheel   192 Apr  9 17:51 ..
-rw-r--r--  1 root  wheel  2428 Mar 28 04:09 CodeResources
 
Last edited:

nsgr

macrumors 6502
May 22, 2017
317
117
Macbook Pro 2011 with failure AMD GPU - High Sierra 10.13.6

I did the new High Sierra Security Update 2019-002 (29 March 2019) with Safe Mode enabled all the time by boot-args (-x).

Boot-args (-x) is prohibited by SIP (csrutil enable). If you have SIP disabled, then you do not need to enter Recovery Mode to enable Safe Mode in boot-args (-x).

New OS Build Version 17G6030 with this SecUpdate 2019-2 - 29 march 2019.

Update by App Store.

Attention: When you put Safe Mode always on, then the system will be a bit slow (no hardware acceleration) and so it will take a little more time to complete the SecUpdate installation.

Make the SecUpdate 2019 with Macbook Pro 2011 connected with the MagSafe in the outlet.

Even when you enter Recovery Mode with Safe Mode enabled in boot-args (-x), Recovery Mode slows down. It looks like Macbook Pro 2011 will freeze but just wait a little longer to open the Terminal and disable Safe Mode from boot-args (-x).

You do not need to be in Recovery Mode to disable Safe Mode in boot-args (-x). It is only a warning if you enter Recovery Mode with Safe Mode On in boot-args (-x).

Code:
sudo nvram -d boot-args

or

Code:
nvram -d boot-args



Do the update to the Safe Mode active in boot-args (-x) not freeze the Macbook Pro 2011 during installation by AMDRadeonX3000.kext.


1 - Boot in Recovery Mode - press Command + R keys at boot. Turn On Safe Mode and disable SIP (csrutil).

Load graphical screen -> Menu Utilities -> Terminal
Code:
nvram -d boot-args

nvram boot-args="-v -x"

csrutil disable

reboot

-v : verbose mode
-x : safe mode always ON.


2 - Now the Macbook Pro 2011 will boot into Safe Mode automatically without having to press the SHIFT key.

After logging into Safe Mode -> App Store -> Update -> Update All
I chose "Download and Restart" in the message that appears after you choose "Update All".


3 - After the App Store to download the SecUpdate 2019-2, then the MacOS will do Log Off and started the first part of the installation and reboot more 3 times.


4 - After completing the installation of SecUpdate 2019-2, then Mac OS will rebuild kext cache with the problematic AMDRadeonX3000.kext inside the prelinkedkernel file.
Since Mac OS is in Safe Mode automatically, then Macbook Pro 2011 will not freeze because it will not load AMDRadeonX3000.kext (Safe Mode rules).

Then the installation of SecUpdate 2019-2 will not stop in the middle of the process.


5 - If you arrived at the login screen after installation, then SecUpdate 2019-2 was completed.

If you have File Vault enabled (encrypted disk), then the first graphical login will be to open the encrypted disk and continue the installation of SecUpdate 2019-2.

Now follow MikeyN Guide - page 35 #875 - to move or delete the AMDRadeonX3000.kext (new from SecUpdate 2019-2) and recontruct the prelinkedkernel file without the AMDRadeonX3000.kext inside.

If you have an AMDRadeonX3000.kext (backup) working properly, then you can choose to move or delete the new AMDRadeonX3000.kext (new from SecUpdate 2019-2).


6 - After completing the MikeyN Guide - page 35 #875 -, then disable the Automatic Safe Mode in boot-args (-x).

Remember:
Single User Mode (Command + S) / Recovery Mode (Command + R) does not need the sudo command. You're already the root (administrator) in these modes above.

Code:
sudo nvram -d boot-args

or

Code:
nvram -d boot-args


7 - If you want to keep the boot in Verbose mode:
Code:
sudo nvram boot-args="-v"

or

Code:
nvram boot-args="-v"


8 - Is everything working correctly with the normal boot and the AMD kexts loaded correctly? If so, then enable SIP again (Recovery Mode).

Code:
csrutil enable

reboot


9 - Check new OS Build Version

Finder -> Applications -> Utilities -> Terminal
Code:
ioreg -lw0 | grep -i 17G

|   "OS Build Version" = "17G6030"

or

Apple Logo (top left corner of the screen) -> About this Mac -> System Report -> Software:

System Software Overview:

System Version: macOS 10.13.6 (17G6030)

Kernel Version: Darwin 17.7.0
 
Last edited:

laborki

macrumors newbie
Apr 29, 2018
9
1
Macbook Pro 2011 with failure AMD GPU - High Sierra 10.13.6

I did the new High Sierra Security Update 2019-002 (29 March 2019) with Safe Mode enabled all the time by boot-args (-x).

Boot-args (-x) is prohibited by SIP (csrutil enable). If you have SIP disabled, then you do not need to enter Recovery Mode to enable Safe Mode in boot-args (-x).

New OS Build Version 17G6030 with this SecUpdate 2019-2 - 29 march 2019.

Update by App Store.

Attention: When you put Safe Mode always on, then the system will be a bit slow (no hardware acceleration) and so it will take a little more time to complete the SecUpdate installation.

Make the SecUpdate 2019 with Macbook Pro 2011 connected with the MagSafe in the outlet.

Even when you enter Recovery Mode with Safe Mode enabled in boot-args (-x), Recovery Mode slows down. It looks like Macbook Pro 2011 will freeze but just wait a little longer to open the Terminal and disable Safe Mode from boot-args (-x).

You do not need to be in Recovery Mode to disable Safe Mode in boot-args (-x). It is only a warning if you enter Recovery Mode with Safe Mode On in boot-args (-x).

Code:
sudo nvram -d boot-args

or

Code:
nvram -d boot-args



Do the update to the Safe Mode active in boot-args (-x) not freeze the Macbook Pro 2011 during installation by AMDRadeonX3000.kext.


1 - Boot in Recovery Mode - press Command + R keys at boot. Turn On Safe Mode and disable SIP (csrutil).

Load graphical screen -> Menu Utilities -> Terminal
Code:
nvram -d boot-args

nvram boot-args="-v -x"

csrutil disable

reboot

-v : verbose mode
-x : safe mode always ON.


2 - Now the Macbook Pro 2011 will boot into Safe Mode automatically without having to press the SHIFT key.

After logging into Safe Mode -> App Store -> Update -> Update All
I chose "Download and Restart" in the message that appears after you choose "Update All".


3 - After the App Store to download the SecUpdate 2019-2, then the MacOS will do Log Off and started the first part of the installation and reboot more 3 times.


4 - After completing the installation of SecUpdate 2019-2, then Mac OS will rebuild kext cache with the problematic AMDRadeonX3000.kext inside the prelinkedkernel file.
Since Mac OS is in Safe Mode automatically, then Macbook Pro 2011 will not freeze because it will not load AMDRadeonX3000.kext (Safe Mode rules).

Then the installation of SecUpdate 2019-2 will not stop in the middle of the process.


5 - If you arrived at the login screen after installation, then SecUpdate 2019-2 was completed.

If you have File Vault enabled (encrypted disk), then the first graphical login will be to open the encrypted disk and continue the installation of SecUpdate 2019-2.

Now follow MikeyN Guide - page 35 #875 - to move or delete the AMDRadeonX3000.kext (new from SecUpdate 2019-2) and recontruct the prelinkedkernel file without the AMDRadeonX3000.kext inside.

If you have an AMDRadeonX3000.kext (backup) working properly, then you can choose to move or delete the new AMDRadeonX3000.kext (new from SecUpdate 2019-2).


6 - After completing the MikeyN Guide - page 35 #875 -, then disable the Automatic Safe Mode in boot-args (-x).

Remember:
Single User Mode (Command + S) / Recovery Mode (Command + R) does not need the sudo command. You're already the root (administrator) in these modes above.

Code:
sudo nvram -d boot-args

or

Code:
nvram -d boot-args


7 - If you want to keep the boot in Verbose mode:
Code:
sudo nvram boot-args="-v"

or

Code:
nvram boot-args="-v"


8 - Is everything working correctly with the normal boot and the AMD kexts loaded correctly? If so, then enable SIP again.

Code:
csrutil enable

reboot


9 - Check new OS Build Version

Finder -> Applications -> Utilities -> Terminal
Code:
ioreg -lw0 | grep -i 17G

|   "OS Build Version" = "17G6030"

or

Apple Logo (top left corner of the screen) -> About this Mac -> System Report -> Software:

System Software Overview:

System Version: macOS 10.13.6 (17G6030)

Kernel Version: Darwin 17.7.0



Thanks nsgr the updated procedure worked without any problems!

Can you help me with my issue? After checking which kexts are active using kextstat | grep AMD command I can only see
com.apple.kext.AMDRadeonX3000.

I have other (I think 29) AMD kexts in the Extensions folder.
The brightness buttons don't work and the GPU diode temp (50C) is higher than usual. Why the other kexts aren't loading?

So I reinstalled High Sierra and did the grub update - the temperature of GPU diode around 20C - that is a big improvement but there is no brightness adjustment... Any ideas? No kexts are loaded.
Thanks!
 
Last edited:

Slybin

macrumors newbie
Apr 12, 2019
1
0
Hi,

Thanks for this recipe, I was able to fix my macbook 2 months ago.

The problem came back after an OS update and I re-applied the recipe and now the macbook boot, I get the login window but after logging in, the screen goes black and nothing else happen.

Any idea what the problem could be?

Thanks,
 

nsgr

macrumors 6502
May 22, 2017
317
117
Thanks nsgr the updated procedure worked without any problems!

Can you help me with my issue? After checking which kexts are active using kextstat | grep AMD command I can only see
com.apple.kext.AMDRadeonX3000.

I have other (I think 29) AMD kexts in the Extensions folder.
The brightness buttons don't work and the GPU diode temp (50C) is higher than usual. Why the other kexts aren't loading?

So I reinstalled High Sierra and did the grub update - the temperature of GPU diode around 20C - that is a big improvement but there is no brightness adjustment... Any ideas? No kexts are loaded.
Thanks!

1 - Kexts inside /System/Library/Extensions - Macbook Pro 2011 - load this kexts on boot.

/System/Library/Extensions/AMD6000Controller.kext

/System/Library/Extensions/AMDLegacyFramebuffer.kext

/System/Library/Extensions/AMDLegacySupport.kext

/System/Library/Extensions/AMDFramebuffer.kext

/System/Library/Extensions/AMDSupport.kext


2 - AMDRadeonX3000.kext outside /System/Library/Extensions - load by LoginHook

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

---------------------------

GRUB only works properly (brightness control) with El Capitan (10.11) or Sierra (10.12).

At High Sierra, Apple added AGDCBacklightControl.kext. And with other settings, the brightness control needs to load the AMD6000Controller.kext and its dependent kexts.

Since GRUB disables the AMD GPU at boot time, then the AMD6000Controller.kext is not loaded and the brightness control settings are disable.
 
  • Like
Reactions: pckrullenbol

laborki

macrumors newbie
Apr 29, 2018
9
1
1 - Kexts inside /System/Library/Extensions - Macbook Pro 2011 - load this kexts on boot.

/System/Library/Extensions/AMD6000Controller.kext

/System/Library/Extensions/AMDLegacyFramebuffer.kext

/System/Library/Extensions/AMDLegacySupport.kext

/System/Library/Extensions/AMDFramebuffer.kext

/System/Library/Extensions/AMDSupport.kext


2 - AMDRadeonX3000.kext outside /System/Library/Extensions - load by LoginHook

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

---------------------------

GRUB only works properly (brightness control) with El Capitan (10.11) or Sierra (10.12).

At High Sierra, Apple added AGDCBacklightControl.kext. And with other settings, the brightness control needs to load the AMD6000Controller.kext and its dependent kexts.

Since GRUB disables the AMD GPU at boot time, then the AMD6000Controller.kext is not loaded and the brightness control settings are disable.


I removed grub method using these lines:

cd /Volumes
sudo mkdir efi
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
sudo rm -rf /Volumes/efi/boot/grub/
sudo rm -rf /Volumes/efi/EFI/grub/

and did NVRAM reset.

Then followed the instructions to move AMDRadeonX3000.kext.

Works like a charm!
 
Last edited:

nsgr

macrumors 6502
May 22, 2017
317
117
Anyone who has Black Screen from Wake / Sleep can do a test:

I did the battery test with 99% charged.
The battery consumed 1% for 1 hour in Sleep.

When you put the Energy Saver -> Battery/Power Adapter to "Never Sleep", then the Macbook Pro will not go into full sleep. Some parts of the Macbook Pro stay ON.


Close all apps (Safari, Activity Monitor, Terminal, etc).

1 - System Preferences -> Energy Saver:

Battery tab:
Computer Sleep: Never
Put hard disks to sleep when possible: disable
Slightly dim the display while on battery power: disable

Power Adapter tab:
Computer Sleep: Never
Put hard disks to sleep when possible: disable
Wake for network access: disable

Automatic Graphics Switching: Enable


2 - Disconnect the MagSafe Power Adapter. Only battery.

3 - Apple logo (top left of the screen) -> Sleep

After 2 minutes, press any key on the keyboard (I pressed the Command key) to "wake up" Macbook Pro 2011. See if you had the problem of Black Screen.


Edit 1:
I have a Solid State Drive and so there is no mechanical part spinning (disk spinning 5400 RPM). So this represents an energy saving of the battery.
 

Attachments

  • System-Preferences-EnergySaver-PowerAdapter.jpg
    System-Preferences-EnergySaver-PowerAdapter.jpg
    142.9 KB · Views: 422
  • SystemPreferences-EnergySaver-Battery-Sleep.jpg
    SystemPreferences-EnergySaver-Battery-Sleep.jpg
    359 KB · Views: 322
Last edited:

ron1004

macrumors 6502
Feb 6, 2010
335
33
Louisville, KY
Apologies if this has been answered here.

My late 2011 had a refurbished logic board installed by Apple, and later they refunded the cost for that, and its been good for many years since then.
For my use I do not need anything more than the integrated graphics GPU, and have always tried to keep it operating on that.

A month ago I installed a new battery because the old one was so swollen it stopped the touch pad from clicking.

After the recent High Sierra security update, I had difficulty switching GFXCardstatus 2.3 to discrete only, and while watching a YouTube video it got a little hot and shut down, and would not boot - dark screen with front white LED on steady.
After a few attempts, some with the distorted graphics, it restarted.

I took it apart and redid the thermal paste which was dry and crumbling, installed GFXCardStatus 2.0, and it seems to run cooler, then this past weekend the cursor would freeze for a few seconds and then shut down, and restart attempts would not boot - hear the CD drive, then dark screen with front white LED on steady, and that's all its doing now.

I really love this machine and quite prepared to spend money to get it working again, but would like some guidance from you good folks.

Do you think that with my screen being dark means I'll not be able to use the "Arch Linux " method to get it started? - if so I'll attempt the procedure using the instructions on the first page of this thread, even though its a little daunting for me.

If my failure mode being the dark screen, rules out the above option, what would you recommend for my path forward - eBay logic board repair (new GPU and re-balled)?

I do have a complete Time Machine backup.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.