I just want to report back on my High Sierra experience.. So for regular Sierra this grub menu entry worked great.. booted fine AMD card didnt show up, sleep, display dimming worked as expected and fans/temp seemed normal. After upgrading to High Sierra this still kind of works, the AMD card doesn't show up but sleep and display dimming no longer work.. I've tried everything I could think of including:
But no matter what I do in High Sierra Sleep and Display dimming do not work.. I'm wondering if anyone else has tried or experienced this.. any solutions out there? Worst case I'll just stay on Sierra with the grub boot loader.. for me that has been the best overall experience but it would be great to be on High Sierra.
- Converted drive back to HPFS+ and reinstalled high sierra without converting to APFS
- Cleared SMC and PRAM and retried all steps
okay so I have the MacBook Pro 2011 OS X Yosemite 15"
I made a lot of things and i send it to repair but it ****ed again. I needed to take one file out so I tried remove the AMD drivers and i got my file but it's all glitchy and I can't use my programs.
So I use heavy programs for music production but I'm trying to save my computer by the instructions of @AppleMacFinder ,, the problem here is that the CD drive doesn't work and I'm trying to make a USB drive to force the MBP to ALWAYS use Intel integrated GPU but I can't either.
Can someone help me?
I have tried the EFI fix, and it has worked for me a few times, albeit unstable. You might want to try the GRUB fix this time.
THANK YOU SO MUCH IT WORKED!
i'm hoping it doesn't die again, will ask you if something's wrong
<3
So I've tried everything possible and got it WORKING!!
but now I've got another problem. I've looked on Google, but only find fixes for Hackintosh computers while I'm on a Macbook Pro.
So if I start the mac in Safe Mode (shift), it works, but extremely slow and I can't use a usb thumb drive.
I wanted to check why it was so slow and saw filevault was decrypting...
Let the computer on for a 4 days until decrypting was over and restarted the computer in single user mode to do the disk check. it appears to be ok, but when booting normally, it stays stuck on
IOConsoleUsers: time(0) 0->0, lin0, llk 1,
IOConsoleUsers: gIOScreenLockstate 3, hs0, bs 0, now 0, sm 0x0
It stays on it for like 1 minute and then reboots with chime.
Did I do something wrong?
I have a MBP running 3 different OS's (Lion, Mavericks, Sierra). I need to upgrade to High Sierra, but I recall someone saying these workaround do not work in High Sierra... Any idea if it will work in High Sierra ?
I am using the two following guides, which have worked for me without a single issue so far, in all 3 systems:
Complete Guide to Permanently Disable AMD 6XXXm series dGPU and Prevent Thermal Throttling
Acknowledgements: This guide is entirely based on nsgr's work.
1. This is an optional step. If you have previously attempted to remove AMD kexts, revert your system to the original state by installing the latest Mac OS combo update. At the time of writing of this guide, the latest combo update can be found here. Installing the update will update your kext files to the latest version. After the update is finished, your macbook will restart and freeze as soon as the dGPU is activated. Shutdown or force a restart.
2. Clear the NVRAM by holding Option + Command + P + R on startup until the macbook reboots.
3. Boot into the single user mode by pressing Command + S on startup. Execute the following commands to enable the iGPU during the boot phase:
Quote
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Quote
reboot
4. Disable System Integrity Protection to allow editing system files. Boot into the verbose recovery mode by pressing Command + R + S on startup. Execute
Quote
csrutil disable
Quote
reboot
5. Go again into the the single user mode by pressing Command + S on startup. Mount root with write permissions via
Quote
/sbin/mount -uw /
(Note the space in front of the last forward slash). Next, create a backup folder by executing
Quote
mkdir backup
Move the AMDRadeonX3000.kext file to the backup folder you created by executing
Quote
mv System/Library/Extensions/AMDRadeonX3000.kext backup/
Moving this kext file is sufficient to prevent graphics switching.
Quote
reboot
6. Re-enable System Integrity Protection inside the verbose recovery mode (Command + R + S) by executing
Quote
csrutil enable
Quote
reboot
7. Boot into Mac OS normally and start the Terminal. Navigate to your backup folder using
Quote
cd /backup
Load the former kext file manually by executing
Quote
sudo kextload AMDRadeonX3000.kext
to prevent the dGPU from idling at maximum TDP. This will not re-enable graphics switching. A restart is not required.
Closing remarks: Step 7 will have to be executed after every system restart to prevent overheating. Steps 4, 5 and 6 will have to be executed after each major system update that breaks graphics switching. Step 3 has to be repeated after a NVRAM reset.
--
11. Now follow the rest of MikeyN’s guide:
Automate this with the following LoginHook:
sudo mkdir -p /Library/LoginHook
sudo nano /Library/LoginHook/LoadX3000.sh
with the following content:
#!/bin/bash
kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
exit 0
then make it executable and active:
sudo chmod a+x /Library/LoginHook/LoadX3000.sh
sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ (move the AMD drivers)
So I spend a half day to figure out how can I disable it somehow and finally I found the solution.
You need to boot the MBP with "Single User Recovery Mode" which is not really a known mode... You can go into it with Command+R+S and there we can disable the SIP with csrutil disable command. Then reboot and go back to Single User mode with Command+S to do the step 4 (mv command).
At the end of the whole hack process we should enable the SIP again with csrutil enable command.
Hope it helps someone else too!
Since my MBP is working again I have a new issues....
I cannot log into the iMessage as well as FaceTime with my Apple ID ... it worked before this hack, but now it doesn't allow me to log in.
Also my bluetooth mouse doesn't connect automatically after reboot and login. I need to open the Preferences and pair it manually.
I've found this Apple support page which mentions at the last point to delete the NVRAM... but if I do that, it brings back this AMD issue (as well as doesn't solve the issue, I tried).
Did anybody else has the same issue?!
Any ideas?
Thanks!
This is where the Grub Solution works better, I suppose, since you only need to rest the SMC and the NVRAM once (and respectively change the NVRAM setting). I have a Bluetooth wireless keyboard and it pairs normally automatically. Currently, I haven't done anything that would enable the SIP, and I've just tested both Facetime and Messages and they both work. I haven't really been using them even before the I implemented both fixes, so, I'm not sure if it has anything to do with the SIP being disabled, and your issue might be an isolated case.
Try the Grub solution first.
I've just tried the Grub one... it works as well, however it has 2 issues for me.
Also the iMessage and FaceTime still don't work. I cannot login. And the BT mouse pairing doesn't work either.
- the AMD kext at the end caused kernel panic at boot, so I had to remove it.
- the boot works only with the pen drive. Without it, the system just keep rebooting.
I'll never buy Mac again...
What MBP model and the OS version do you have? I have no issues whatsoever, so it might be those two factors.
Also, screwing up something in the steps can cause issues.
This problem is caused by AMDRadeonX3000.kext.
You have to move this kext out of the /System/Library/Extensions directory and then load it manually.
MikeyN
#875
Or try the GRUB solution:
brainshutdown
https://forums.macrumors.com/thread...-on-a-2011-macbook-pro-grub-solution.2087527/
1. The kext should only be used with GRUB installed, otherwise it will kernel panic.I've just tried the Grub one... it works as well, however it has 2 issues for me.
Also the iMessage and FaceTime still don't work. I cannot login. And the BT mouse pairing doesn't work either.
- the AMD kext at the end caused kernel panic at boot, so I had to remove it.
- the boot works only with the pen drive. Without it, the system just keep rebooting.
I'll never buy Mac again...
I have a MBP running 3 different OS's (Lion, Mavericks, Sierra). I need to upgrade to High Sierra, but I recall someone saying these workaround do not work in High Sierra... Any idea if it will work in High Sierra ?
I am using the two following guides, which have worked for me without a single issue so far, in all 3 systems:
Complete Guide to Permanently Disable AMD 6XXXm series dGPU and Prevent Thermal Throttling
Acknowledgements: This guide is entirely based on nsgr's work.
1. This is an optional step. If you have previously attempted to remove AMD kexts, revert your system to the original state by installing the latest Mac OS combo update. At the time of writing of this guide, the latest combo update can be found here. Installing the update will update your kext files to the latest version. After the update is finished, your macbook will restart and freeze as soon as the dGPU is activated. Shutdown or force a restart.
2. Clear the NVRAM by holding Option + Command + P + R on startup until the macbook reboots.
3. Boot into the single user mode by pressing Command + S on startup. Execute the following commands to enable the iGPU during the boot phase:
Quote
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Quote
reboot
4. Disable System Integrity Protection to allow editing system files. Boot into the verbose recovery mode by pressing Command + R + S on startup. Execute
Quote
csrutil disable
Quote
reboot
5. Go again into the the single user mode by pressing Command + S on startup. Mount root with write permissions via
Quote
/sbin/mount -uw /
(Note the space in front of the last forward slash). Next, create a backup folder by executing
Quote
mkdir backup
Move the AMDRadeonX3000.kext file to the backup folder you created by executing
Quote
mv System/Library/Extensions/AMDRadeonX3000.kext backup/
Moving this kext file is sufficient to prevent graphics switching.
Quote
reboot
6. Re-enable System Integrity Protection inside the verbose recovery mode (Command + R + S) by executing
Quote
csrutil enable
Quote
reboot
7. Boot into Mac OS normally and start the Terminal. Navigate to your backup folder using
Quote
cd /backup
Load the former kext file manually by executing
Quote
sudo kextload AMDRadeonX3000.kext
to prevent the dGPU from idling at maximum TDP. This will not re-enable graphics switching. A restart is not required.
Closing remarks: Step 7 will have to be executed after every system restart to prevent overheating. Steps 4, 5 and 6 will have to be executed after each major system update that breaks graphics switching. Step 3 has to be repeated after a NVRAM reset.
--
11. Now follow the rest of MikeyN’s guide:
Automate this with the following LoginHook:
sudo mkdir -p /Library/LoginHook
sudo nano /Library/LoginHook/LoadX3000.sh
with the following content:
#!/bin/bash
kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
exit 0
then make it executable and active:
sudo chmod a+x /Library/LoginHook/LoadX3000.sh
sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.
Two things:
1. sudo kextload AMDRadeonX3000.kext doesn't work for me. I get the following message:
/backup/AMDRadeonX3000.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8).
2. The above post goes from point no. 7 to 11. Am I missing some instructions.
Thanks nsgr, brainshutdown and AppleMacFinder and everyone else who have contributed here to have helped 000s make use of what is otherwise a great machine! Writing this post on one that I have revived using the posts here.
P.S.: Just want to add that this is Early 2011 MacBook Pro 15" running 10.13.1
sudo chmod -R 755 /backup/AMDRadeonX3000.kext
sudo chown -R root:wheel /backup/AMDRadeonX3000.kext
ls -laR /backup/
total 0
drwxr-xr-x 3 root wheel 102 Nov 27 18:27 .
drwxr-xr-x 29 root wheel 1054 Nov 27 19:30 ..
drwxr-xr-x@ 3 root wheel 102 Jun 15 22:52 AMDRadeonX3000.kext
/backup//AMDRadeonX3000.kext:
total 0
drwxr-xr-x@ 3 root wheel 102 Jun 15 22:52 .
drwxr-xr-x 3 root wheel 102 Nov 27 18:27 ..
drwxr-xr-x 7 root wheel 238 Jun 15 22:53 Contents
/backup//AMDRadeonX3000.kext/Contents:
total 40
drwxr-xr-x 7 root wheel 238 Jun 15 22:53 .
drwxr-xr-x@ 3 root wheel 102 Jun 15 22:52 ..
-rw-r--r-- 1 root wheel 8604 Jun 15 22:52 Info.plist
drwxr-xr-x 3 root wheel 102 Jul 15 02:01 MacOS
-rwxr-xr-x 1 root wheel 9 Jun 15 22:52 PkgInfo
drwxr-xr-x 3 root wheel 102 Jun 15 22:53 _CodeSignature
-rw-r--r-- 1 root wheel 464 Jun 15 22:53 version.plist
/backup//AMDRadeonX3000.kext/Contents/MacOS:
total 13200
drwxr-xr-x 3 root wheel 102 Jul 15 02:01 .
drwxr-xr-x 7 root wheel 238 Jun 15 22:53 ..
-rwxr-xr-x 1 root wheel 6754704 Jul 15 02:01 AMDRadeonX3000
/backup//AMDRadeonX3000.kext/Contents/_CodeSignature:
total 8
drwxr-xr-x 3 root wheel 102 Jun 15 22:53 .
drwxr-xr-x 7 root wheel 238 Jun 15 22:53 ..
-rw-r--r-- 1 root wheel 2206 Jul 15 02:01 CodeResources
Code:sudo chmod -R 755 /backup/AMDRadeonX3000.kext sudo chown -R root:wheel /backup/AMDRadeonX3000.kext
List recursive. Only AMDRadeonX3000.kext inside /backup .
Code:ls -laR /backup/ total 0 drwxr-xr-x 3 root wheel 102 Nov 27 18:27 . drwxr-xr-x 29 root wheel 1054 Nov 27 19:30 .. drwxr-xr-x@ 3 root wheel 102 Jun 15 22:52 AMDRadeonX3000.kext /backup//AMDRadeonX3000.kext: total 0 drwxr-xr-x@ 3 root wheel 102 Jun 15 22:52 . drwxr-xr-x 3 root wheel 102 Nov 27 18:27 .. drwxr-xr-x 7 root wheel 238 Jun 15 22:53 Contents /backup//AMDRadeonX3000.kext/Contents: total 40 drwxr-xr-x 7 root wheel 238 Jun 15 22:53 . drwxr-xr-x@ 3 root wheel 102 Jun 15 22:52 .. -rw-r--r-- 1 root wheel 8604 Jun 15 22:52 Info.plist drwxr-xr-x 3 root wheel 102 Jul 15 02:01 MacOS -rwxr-xr-x 1 root wheel 9 Jun 15 22:52 PkgInfo drwxr-xr-x 3 root wheel 102 Jun 15 22:53 _CodeSignature -rw-r--r-- 1 root wheel 464 Jun 15 22:53 version.plist /backup//AMDRadeonX3000.kext/Contents/MacOS: total 13200 drwxr-xr-x 3 root wheel 102 Jul 15 02:01 . drwxr-xr-x 7 root wheel 238 Jun 15 22:53 .. -rwxr-xr-x 1 root wheel 6754704 Jul 15 02:01 AMDRadeonX3000 /backup//AMDRadeonX3000.kext/Contents/_CodeSignature: total 8 drwxr-xr-x 3 root wheel 102 Jun 15 22:53 . drwxr-xr-x 7 root wheel 238 Jun 15 22:53 .. -rw-r--r-- 1 root wheel 2206 Jul 15 02:01 CodeResources
https://www.poftut.com/chmod-755-700/
Owner: root
Group: wheel
755 can be separated as:
7 user can read, write, execute
5 group can read and execute
5 others can read and execute
rwxr-xr-x
If you don't have time to read my story (which also describes some interesting technical approaches) just scroll down this thread until a "100% WORKING SOLUTION" text
First of all, it is possible to successfully boot a MBP to OS X while still using the failed GPU, after you remove the AMD drivers by booting in command line mode (CMD+S) and entering these commands:
1) fsck -fy (to check a disk)
2) mount -uw / (mount a root filesystem with read/write permissions)
3) sudo mkdir /AMD_Kexts/ (make a directory to store the AMD drivers in case you'll need them in future)
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ (move the AMD drivers)
5) sudo rm -rf /System/Library/Caches/com.apple.kext.caches/ (remove the AMD drivers cache)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/ (just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X)
7) sudo touch /System/Library/Extensions/ (to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt)
8) sudo umount / (umount a partition to guarantee that your changes are flushed to it)
9) sudo reboot
Then I remembered that there are not-mainstream Linux distributions for advanced users, which have a LiveCD without any graphical interface: you are dropped to a pure console and you are supposed to install the system along with only those graphical interfaces and software packages / groups of packages which you explicitly select. For example: Arch Linux (https://www.archlinux.org/) and Gentoo Linux (https://gentoo.org/) . Because their LiveCD does not have a graphical interface, they could be booted without a problem to a pure Linux console and there you could edit the EFI variables ! So here is a...
===
=== 100% WORKING SOLUTION
===
=== Force your MBP to ALWAYS use Intel integrated GPU (EFI variable fix)
===
=== to make it great again !
===
1) Create the Arch Linux LiveCD/LiveUSB :
2) 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!
3) 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). If there is such a variable, its better to remove it with rm. 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) :
*) cd /
*) umount /sys/firmware/efi/efivars/
*) mount -t efivarfs rw /sys/firmware/efi/efivars/
*) cd /sys/firmware/efi/efivars/
If your screen is so distorted that it is difficult to see the letters, just start typing the rm gpu-power-pre and then press TAB key for autocompletion. In my case there were not such a EFI variable, only "gpu-active-..." and maybe somehow related "gfx-saved-config-restore-status-..." . Then I looked again at that gpu-switch text file (mentioned above, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch),
and entered THESE COMMANDS:
*) chattr -i "/sys/firmware/efi/efivars/" <----- skip this command
Actually a gpu-switch script had "${sysfs_efi_vars}/${efi_gpu}" but I didnt have a "gpu-power-prefs-..." variable - so, partially by mistake, I didn't add that efi_gpu suffix and entered this incomplete path accidentally
*) printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
Did not have a EFI "gpu-power-prefs-" variable so I thought that it will be OK to create a new one with a random UUID - in this case, taken directly from a gpu-switch script
*) chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"
http://www.tecmint.com/chattr-command-examples/ - chattr (Change Attribute) is a command line Linux utility that is used to set/unset certain attributes to a file in Linux system to secure accidental deletion or modification of important files and folders, even though you are logged in as a root user.
...
Syntax of chattr ---> chattr [operator] [flags] [filename]
...
A file is set with ‘i‘ attribute (+i as you see in this command) ---> cannot be modified (immutable). Means no renaming, no symbolic link creation, no execution, no writable, only superuser can unset the attribute.
...
Operator
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
- + : Adds the attribute to the existing attribute of the files.
- – : Removes the attribute to the existing attribute of the files.
- = : Keep the existing attributes that the files have.
*) cd /
Could not unmount efivars if you are inside this directory, so change to the root directory
*) umount /sys/firmware/efi/efivars/
Guarantees that your EFI variables are flushed to efivarfs filesystem, please unmount it safely before rebooting)
*) reboot
===> IF YOU DID EVERYTHING CORRECTLY, MOST LIKELY THAT YOUR MACBOOK PRO IS NOW USING INTEGRATED GRAPHICS WHILE BOOTING, AFTER BOOTING, AND IS WORKING GREAT AGAIN !
In the future maybe you could need to re-apply this solution if you would have to reset your PRAM / NVRAM / SMC because of some other problems, so remember this solution somewhere... Funny thing: now you can't switch to Discrete GPU even using gfxCardStatus, it is forever stuck at Integrated
I spent two working days to discover this solution, and really hope that it will work flawlessly for every MBP owner with a broken discrete GPU. Good luck!