Schmye Bubbula

macrumors member
Jul 24, 2009
40
0
^ Can you create a step-by-step tutorial with Arch Linux, since many of us are already set up with a USB stick to boot from it? (including how to make the bash or whatever script at root level to automate as much as possible?)
 
Last edited:

brainshutdown

macrumors regular
Jul 16, 2012
124
110
One quick way to boot macos without installing anything is to:

1. Change gpu-power-prefs nvram variable:
Boot into single user mode (Command + s) and run:
Code:
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
reboot
2. Check your macOS partition uuid
Boot with any live distro and press 'c' when grub appears, then run:
Code:
ls -l
Annotate the uuid of the macOS partition, power off the macbook and take the usb stick.

3. Add the menu entry to the grub on the usb stick
In another computer edit the grub.cfg file (usually found at '/boot/grub/grub.cfg') and add the following menu entry to the end with your uuid:
Code:
menuentry "macOS" {
   insmod hfsplus
   outb 0x728 1
   outb 0x710 2
   outb 0x740 2
   outb 0x750 0
   search --no-floppy --fs-uuid --set=root <ANNOTATED UUID>
   chainloader /System/Library/CoreServices/boot.efi
}

EDIT:
you can use any text editor to edit the grub.cfg file

4. Boot the live distro and choose the menu entry you created
 
Last edited:

Schmye Bubbula

macrumors member
Jul 24, 2009
40
0
^ Many, many thanks, but this is not much better for the faint-at-heart than the GitHub instructions. Could someone write a step-by-step tutorial that passes the "grandma test"? (if grandma knows very basic Terminal, but doesn't know the syntax to implement, e.g., the nano commands to edit the grub.cfg file, etc.) Something with as much hand-holding as the first post and as the several other ensuing variations.

Also, does this & the GitHub instructions work in Arch Linux?
 

weiyideai520

macrumors newbie
Oct 23, 2017
3
0
One quick way to boot macos without installing anything is to:

1. Change gpu-power-prefs nvram variable:
Boot into single user mode (Command + s) and run:
Code:
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
reboot
2. Check your macOS partition uuid
Boot with any live distro and press 'c' when grub appears, then run:
Code:
ls -l
Annotate the uuid of the macOS partition, power off the macbook and take the usb stick.

3. Add the menu entry to the grub on the usb stick
In another computer edit the grub.cfg file (usually found at '/boot/grub/grub.cfg') and add the following menu entry to the end with your uuid:
Code:
menuentry "macOS" {
   insmod hfsplus
   outb 0x728 1
   outb 0x710 2
   outb 0x740 2
   outb 0x750 0
   search --no-floppy --fs-uuid --set=root <ANNOTATED UUID>
   chainloader /System/Library/CoreServices/boot.efi
}
4. Boot the live distro and choose the menu entry you created
The first step, I succeeded

The second step, I don't understand it. Can it run under Arch Linux?

Additional, how to query macOS partition UUID?

--------------
After testing, I found that the Mac OS 10.12.3 doesn't need extra operations, and it just works without deleting AMDRadeonX3000.kext (including screen brightness and keyboard backlight)

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


Mac OS 10.13(Upgrade)
Brightness - not working
Keyboard - lights can't work


Mac OS 10.12.6 (Clean disk and New installation)
Brightness - auto adjustment
Keyboard light - able to work

Mac OS 10.12.3 (Clean disk and New installation)
Brightness - auto adjustment
Keyboard light - able to work
 
Last edited:

brainshutdown

macrumors regular
Jul 16, 2012
124
110
The second step, I don't understand it. Can it run under Arch Linux?
You should run the second step when grub appears (the menu that appears before loading the OS).

You can check if your live distro is using grub by checking if there is any grub.cfg file in the thumb drive (usually found at '/boot/grub/grub.cfg').

If it doen't appear or is not using grub then you should try something else(like ubuntu live cd). For this I suggest formatting the thumb drive as FAT32 and burning the iso to the thumb drive using UNetbootin.
 
Last edited:

rafarq

macrumors newbie
Jan 6, 2017
15
3
anyone disabled nvidia geforce gt330m in macbook pro 15 mid 2010? if yes please give me instruction, thanks
 

Mhanix

macrumors newbie
Oct 26, 2017
3
1
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

Discrete AMD GPU of my 2011 MacBook Pro 8,2 has finally failed because of the reasons mentioned here ( http://logicboardmac.blogspot.ru/ ) and there ( https://www.macrumors.com/2015/02/19/2011-macbook-pro-repair-program-apple/ ) . It has been working perfectly for 6 years under quite a high load, even tried SETI@HOME mining at background! So I was confident that my MBP is not affected by bad solder / bad soldering quality and didn't want to bring it to Apple for a free repair program - partially because couldn't find the time to pause my important software projects, partially because I was afraid that Apple might give me a less reliable logic board or refuse a free repair because of the several unrelated repairs that I did manually by myself earlier to save money: changed thermal paste a few times, replaced the internal battery 2 times, replaced a keyboard with broken buttons, etc. But it finally broke down last week: laptop's screen image became distorted, it refused to boot OS X (always freezing half-way), and - Apple free repair program has already ended! I know there are affordable solutions like $50 BGA resoldering at unofficial local repair shop and that its possible to get a new replacement HD 6750M chip from AliExpress for $35 or cheaper ( http://www.aliexpress.com/item/DC-2015-100-New-Radeon-HD-6750M-216-0810028-216-0810028-BGA-Chipset/32764872143.html or https://www.aliexpress.com/item/DC-2015-New-216-0810001-216-0810001-Graphic-Chipset/32718112928.html , because don't know if this is true - https://www.rossmanngroup.com/boards/forum/board-repair-troubleshooting/10604-replace-216-0810005-gpu-with-216-0810028 ) to guarantee a successful repair, so the total price of repair would be either $50 or $50+$35=$85 - less than $100 in any case. But I don't like investing money to the old computers, so I have thought - what if there is some hack to force MBP to use integrated graphics ALL THE TIME, even while booting ? And then started to explore the possible solutions...

===

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

The degree of your inconvenience while doing these steps - strongly depends on how heavily a screen's image is distorted in your case. In my case it was even more difficult because the OS X partition became a "read-only" partition (because of too many emergency shutdowns I did while desperately trying to boot OS X with a failed GPU) so I had to remove a hard drive from MacBook Pro and (using a USB to SATA 2.5" adapter taken from my portable HDD) attached it to a computer with Linux, then followed these instructions:

https://superuser.com/questions/961401/mounting-hfs-partition-on-arch-linux (1st answer) - carefully executed a number of commands, calculated a sizelimit for my parition layout, and finally ran sudo mount -t hfsplus -o force,rw,sizelimit=YOURNUMBER /dev/sdb2 /mnt to mount this HFS+ partition to /mnt directory in read-write mode. Then I performed these "1)-7)" steps you see above, and also repaired a filesystem by running sudo fsck.hfsplus -f /dev/sdb2 before unmounting a partition with sudo umount /mnt and putting a hard drive back to MBP...

===

This gave me a MBP which could boot to OS X although STILL using a broken AMD GPU: so it screen's image is very distorted (could browse the Internet but quite inconvenient to read a text), Launchpad is super laggy, and you can't switch to Integrated GPU using gfxCardStatus because: without AMD drivers (which we had to remove to successfully boot to OS X) Macbook Pro thinks its' internal screen is External Display and gfxCardStatus tells it is impossible to switch because External Display is using AMD GPU. Somewhere I found a suggestion that it is possible to rebuild a gfxCardStatus from the source code - https://github.com/codykrieger/gfxCardStatus - with removed or commented out 156-166 lines in the ./gfxCardStatus/Classes/GSProcess.m to make it to ignore the external display:

// find out if an external monitor is forcing the discrete gpu on
CGDirectDisplayID displays[8];
CGDisplayCount displayCount = 0;
if (CGGetOnlineDisplayList(8, displays, &displayCount) == noErr) {
for (int i = 0; i < displayCount; i++) {
if ( ! CGDisplayIsBuiltin(displays))
[list addObject:[NSDictionary dictionaryWithObjectsAndKeys:
Str(@"External Display"), kTaskItemName,
@"", kTaskItemPID, nil]];
}
}


So I rebuilt a gfxCardStatus using the instructions from the last reply of this issue -
https://github.com/codykrieger/gfxCardStatus/issues/229
(also had to download a MacOSX10.11.sdk from here - https://github.com/phracker/MacOSX-SDKs/releases - unpack and copy it to XCode's /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk - because of the Apple's stupidity the latest XCode for El Capitan does not include SDK for El Capitan!) However, it still didn't work - gfxCardStatus only pretended that it has switched to Integrated GPU, while in reality OS X did not let it switch! Even after I edited ./gfxCardStatus/Classes/GSGPU.m file to enable the mysterious "Nuke it from orbit switching" option, it still couldn't switch...

===

Then I discovered this interesting repository - https://github.com/0xbb/gpu-switch - which is partially similar by its' source code to gfxCardStatus but also has the "Login Hooks" (install_hooks.sh) to "automate the switching process for login/logout". Sadly it didn't work for me... However, there is a very interesting gpu-switch text file right at the root of this repository, which describes the EFI variables!

https://github.com/0xbb/gpu-switch/blob/master/gpu-switch

After studying it and also reading this issue's comments - https://github.com/0xbb/gpu-switch/issues/11 - I became confident to try this solution, but found out that my MacBook Pro 2011 8,2 with OS X El Capitan 10.11.6 is in a VERY problematic situation:

1) rEFInd is not installed, and to install it - must disable SIP protection. But I cannot boot to Recovery mode (Command+Option+R) or to OS X Installation DVD/USB (hold Option), (to disable SIP), because they freeze while booting! - although I removed AMD kexts from my system, of course these recovery tools are using AMD kexts integrated to their design. Also cannot use Rootfool hack ( https://github.com/gdbinit/rootfool ) to disable SIP during runtime, because it works only at OS X version older than 10.11.4

2) Tried overheating my Macbook Pro on purpose (forcing CPU usage to 100% and putting it to a tightly closed bag) to force it to shutdown from overheating and then quickly reboot so that Integrated graphics will be enabled during the boot time - making it possible to boot to Recovery. But because of the wonderful high end thermal paste I have applied not so long ago - cannot overheat it even after waiting for a long time! At this point I thought that could either: a) remove AMD kexts from Installation media, or b) to connect MBP's hard drive to a Linux machine again and run a bunch of chmods to remove the SIP flags from the directories mentioned here ( http://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really ) which could potentially make a system unbootable, or c) to try installing rEFInd to HFS+ partition directly from a Linux machine with root rights because it will bypass SIP --- but have not explored these options, although some of them might have worked...

3) Wanted to boot a Linux LiveCD to edit the EFI variables from there, but no matter what I did: tried booting straight without GRUB option modifications, tried editing GRUB boot options (with "e" key) to add nomodeset / remove quiet splash / or both in every combination , or like suggested in this article ( https://wiki.archlinux.org/index.php/MacBookPro8,1/8,2/8,3_(2011) ) also add i915.modeset=0 radeon.modeset=0 or radeon.modeset=0 i915.modeset=1 i915.lvds_channel_mode=2 ; and then pressed Fn+F10 or Shift+Ctrl+Fn+F10 to boot with these options: but the Linux boot process always failed at different boot stages, no matter what popular user-friendly Linux distribution or what version of it I am trying: tried many releases of Ubuntu / Lubuntu / Fedora , even the old "AMD64 Mac" and "Alternate AMD64 Mac" images, but they always failed - either at the very beginning of boot process (black screen, or a black screen with a blinking or stuck _ character at the left upper corner) or failed at the very end of it - right before it is supposed to show a graphical desktop environment...

Later, totoe_84 wrote that he was able to boot Ubuntu in graphical mode using the following setup for GRUB:
  • To disable the AMD graphics card I added the following lines after set gfxpayload=keep
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
  • Next I added the following after quiet splash
    i915.lvds_channel_mode=2 i915.modeset=1 i915.lvds_use_ssc=0
(based on https://ubuntuforums.org/showthread.php?t=2157775 )

===

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 :

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

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
  1. + : Adds the attribute to the existing attribute of the files.
  2. : Removes the attribute to the existing attribute of the files.
  3. = : Keep the existing attributes that the files have.
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

*) 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!



Thank you so much for your post!!! My macbook pro 8,2/ OS X Lion with busted dgpu is now working after more than 2 years being dead. My only problem is that I cannot use the internal gpu in boot camp/ windows 7. Can you help me how to use the intel graphics when I'm using Win7. Thanks a lot!
 
  • Like
Reactions: AppleMacFinder

Schmye Bubbula

macrumors member
Jul 24, 2009
40
0
My Arch Linux (2017.08.01) has the /boot/grub/grub.cfg file.

But I still need the complete correct syntax in nano or whatever to add my uuid to end of the menu entry. Step #3 in post #1052 says what to add, but not how to add it. Grandma needs to know.
 

brainshutdown

macrumors regular
Jul 16, 2012
124
110
My Arch Linux (2017.08.01) has the /boot/grub/grub.cfg file.

But I still need the complete correct syntax in nano or whatever to add my uuid to end of the menu entry. Step #3 in post #1052 says what to add, but not how to add it. Grandma needs to know.
The grub.cfg is just a text file, you can use any text editor (ex: nano, vim, emacs, atom, vscode, TextWrangler, notepad++, etc).
 

Schmye Bubbula

macrumors member
Jul 24, 2009
40
0
^ Grandma's on a Mac; she would love to use TextWrangler, but...



...and, like her cleaning lady says, she doesn't do Windows, so notepad isn't an option, so the editing needs to be done in a Linux editor, and Grandma doesn't know how to use nano, vim, emacs, atom, vscode, etc., so she was kind of hoping that the command line syntax to add the menu entry to the grub on the usb stick would accompany the content in the code tags in step 3 of post #1052.... They say it takes seven years to learn Unix—I'm afraid Grandma won't live that long. ;)

- -
Edit: I just had an idea: I suppose I could mount the Arch Linux .iso disk image on the Finder desktop, edit the file in TextWrangler (do I save it with Unix line endings—line feeds?), then burn the .iso back to the USB stick.... There must be an easier way.
 
Last edited:

brainshutdown

macrumors regular
Jul 16, 2012
124
110
^ Grandma's on a Mac; she would love to use TextWrangler, but...



...and, like her cleaning lady says, she doesn't do Windows, so notepad isn't an option, so the editing needs to be done in a Linux editor, and Grandma doesn't know how to use nano, vim, emacs, atom, vscode, etc., so she was kind of hoping that the command line syntax to add the menu entry to the grub on the usb stick would accompany the content in the code tags in step 3 of post #1052.... They say it takes seven years to learn Unix—I'm afraid Grandma won't live that long. ;)

- -
Edit: I just had an idea: I suppose I could mount the Arch Linux .iso disk image on the Finder desktop, edit the file in TextWrangler (do I save it with Unix line endings—line feeds?), then burn the .iso back to the USB stick.... There must be an easier way.
Format your usb stick as FAT32 and use UNetbootin to burn the iso. That way you can edit the file in any OS.
 

Schmye Bubbula

macrumors member
Jul 24, 2009
40
0
I had formatted as MS-DOS (FAT) and burned the USB stick, both in Apple Disk Utility, the first time — what was wrong with that?... But I just now formatted it as FAT again, then tried burning the .iso with UNetbootin, and now UNetbootin can't see the USB stick in the Drive menu, even if I unmount & remount (while it does mount on my Finder desktop):

 

Schmye Bubbula

macrumors member
Jul 24, 2009
40
0
^ Thanks for what looked to be a good lead. I thought that was going to do it, because I earlier furthermore wasn't partitioning as GUID, but instead as Master Boot Record. But, alas, GUID & "FAT32" didn't help.... I read the entire UNetbootin thread, and it looks like (some) other people can't get it to work, either. I guess I'm just one of the unlucky ones.

But does it really matter whether I use UNetbootin or Apple Disk Utility, because once the .iso is burned, doesn't it then have a new linux-type file system, and that accounts for why it won't mount on my Finder desktop, to edit in TextWrangler? (But you did say, "That way you can edit the file in any OS," so I'm scratching my head.)
 

brainshutdown

macrumors regular
Jul 16, 2012
124
110
^ Thanks for what looked to be a good lead. I thought that was going to do it, because I earlier furthermore wasn't partitioning as GUID, but instead as Master Boot Record. But, alas, GUID & "FAT32" didn't help.... I read the entire UNetbootin thread, and it looks like (some) other people can't get it to work, either. I guess I'm just one of the unlucky ones.

But does it really matter whether I use UNetbootin or Apple Disk Utility, because once the .iso is burned, doesn't it then have a new linux-type file system, and that accounts for why it won't mount on my Finder desktop, to edit in TextWrangler? (But you did say, "That way you can edit the file in any OS," so I'm scratching my head.)
No, because UNetbootin doesn't format the drive, it only copies the files. Thats one of the differences to etcher which creates an exact copy of the iso.

Did you try running from terminal with the targetdrive option?
https://github.com/unetbootin/unetbootin/wiki/commands#targetdrive
 
Last edited:

pvllo

macrumors newbie
Jul 12, 2017
7
2
I tested setting pmswitch to every value and sleeping/waking up. Same thing as before: it sleeps (light does on/off breathing) but it doesn't wake up (keyboard backlight comes on, backlight dimming keys work, but display doesn't come up).

BUT! "sudo shutdown -r now" to restart and "sudo shutdown -h now" to power off appears to work correctly and consistently.
Within the Info.plist of the AppleMuxControl.kext (Config2) there is a reference called PowerUpPCILinkOnSleep=1. Is about ATIRadeonX3000/AMDTurksGraphicsAccelerator.
I do not know if changing the value from 1 to 0 or to other values (2, 3, etc.) might solve the problem.

To test you have to disable the SIP if it is El Capitan or Sierra. By changing a signed kext you prevent it from being loaded with SIP enabled.


For Macbook Pro 15" Early 2011:

/System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleMuxControl.kext/Contents/Info.plist

IOKitPersonalities -> AppleMuxControl -> Config2 -> PowerUpPCILinkOnSleep

<key>Config2</key>

<dict>

<key>BacklightSmoothing</key>

<integer>8</integer>

<key>CheckExternalPort</key>
.
<string>ATIRadeonX3000,AMDTurksGraphicsAccelerator,AMDCaicosGraphicsAccelerator</string>
.
<key>PowerUpPCILinkOnSleep</key>

<integer>1</integer>


https://developer.apple.com/library/content/documentation/Security/Conceptual/System_Integrity_Protection_Guide/KernelExtensions/KernelExtensions.html

https://developer.apple.com/library/content/documentation/Security/Conceptual/System_Integrity_Protection_Guide/ConfiguringSystemIntegrityProtection/ConfiguringSystemIntegrityProtection.html#//apple_ref/doc/uid/TP40016462-CH5-SW1

https://forums.developer.apple.com/thread/9332
Since reading @nsgr posts, I've been trying to dig more info on Power Management using pmset, but as said before it's relatively undocumented.

I'm no Unix connoisseur neither much of a coder myself, but indeed: gpuswitch command does not seem to stick around after a reboot.

But unlike @saldin , I was able to successfully pmset the iGPU for closing/opening the lid by adding the force command.
Apparently force tells PM to immediately activate these settings.
It does not write them to disk and the settings may easily be overwritten, but it works partially.
Shutdown/ Reboot still crashes though.

To automate the process I added the following line to @MikeyN LoginHook, after the kextload command:

sudo pmset -a force gpuswitch 0

So if anything happens, whenever I boot I can still close my lid safely.
Truly hoping someone comes to a definitive fix though :)
Cheers!
 
Last edited:
  • Like
Reactions: MikeyN

sharrondenice

macrumors newbie
Oct 28, 2017
1
1
You beautiful, beautiful soul!!! THANK YOU!!! I was so disappointed that my Mac (Pro early 2011 17in) just crashed on me (graphics card issue, kept rebooting). I did not think it was fair and I had taken such great care of it. I was prepared to buy another one on ebay (I only want another 17 in) and I found your post, followed the steps and it works now!! I have spent almost 2 or 3 months without my system and today it works. The graphics suck but I always work in dark mode so I dont see it being a problem when I start back coding. Thank you so very much!
 
  • Like
Reactions: pratikindia

brainshutdown

macrumors regular
Jul 16, 2012
124
110
For everyone interested I've created a github gist with the instructions for booting with grub without installing linux:

https://gist.github.com/blackgate/17ac402e35d2f7e0f1c9708db3dc7a44

Truly hoping someone comes to a definitive fix though :)
The grub solution doesn't have any of the problems you described. It can boot, sleep, shutdown and restart normally. It even works without removing the AMD kexts and doesn't need the login hook. I've been using it for about a year now, and haven't had a single crash.
 

pvllo

macrumors newbie
Jul 12, 2017
7
2
For everyone interested I've created a github gist with the instructions for booting with grub without installing linux:

https://gist.github.com/blackgate/17ac402e35d2f7e0f1c9708db3dc7a44



The grub solution doesn't have any of the problems you described. It can boot, sleep, shutdown and restart normally. It even works without removing the AMD kexts and doesn't need the login hook. I've been using it for about a year now, and haven't had a single crash.
Will need to look into that before sharing an opinion, but looks very interesting!
And that's coming from someone who has no idea what kind of grub we're talking about :D
 

dewasinting

macrumors newbie
Oct 8, 2017
10
2
Hi, thank you for making this.


So I have SSD in place of old HDD and a new HDD in a bracket, which is in place of the superdrive.

My Main OS is in the SSD and in my HDD there are 2 partitions: My Data & a backup MacOS (just for running first aid).

Your guide works but everytime I restart my Mac, it defaults back again to Radeon. Is there another EFI in the HDD?

What should I do?

Thank you.
 

rubyme8

macrumors newbie
Oct 30, 2017
2
0
For everyone interested I've created a github gist with the instructions for booting with grub without installing linux:

https://gist.github.com/blackgate/17ac402e35d2f7e0f1c9708db3dc7a44



The grub solution doesn't have any of the problems you described. It can boot, sleep, shutdown and restart normally. It even works without removing the AMD kexts and doesn't need the login hook. I've been using it for about a year now, and haven't had a single crash.
This looks awesome, would the grub menu item be the same if I were using High Sierra with the new Apple File System(APFS) instead of HFS+?
 
Last edited:

pvllo

macrumors newbie
Jul 12, 2017
7
2
For everyone interested I've created a github gist with the instructions for booting with grub without installing linux:

https://gist.github.com/blackgate/17ac402e35d2f7e0f1c9708db3dc7a44



The grub solution doesn't have any of the problems you described. It can boot, sleep, shutdown and restart normally. It even works without removing the AMD kexts and doesn't need the login hook. I've been using it for about a year now, and haven't had a single crash.
I was reading your instructions and noticed there's no SIP re-enabling there.
So for this to work would you have to permanently disable SIP?

And please forgive my noobness but since grub is just a bootloader, what is it that makes this solution that much effective?
 

brainshutdown

macrumors regular
Jul 16, 2012
124
110
I was reading your instructions and noticed there's no SIP re-enabling there.
So for this to work would you have to permanently disable SIP?
Yes, you can reenable SIP, but you will have to disable it every time your macOS updates, to bless grub again.

And please forgive my noobness but since grub is just a bootloader, what is it that makes this solution that much effective?
It can do low level stuff like port output (outb). The outb commands on the menu entry switches to the integrated graphics and disables the AMD gpu.

This looks awesome, would the grub menu item be the same if I were using High Sierra with the new Apple File System(APFS) instead of HFS+?
I haven't upgrade to High Sierra yet. I have heard that APFS is backwards compatible with HFS+, but I'm not sure. If you already updated, you can try with the rescue thumb drive and then if it works, you can proceed to the permanent solution.

Hi, thank you for making this.


So I have SSD in place of old HDD and a new HDD in a bracket, which is in place of the superdrive.

My Main OS is in the SSD and in my HDD there are 2 partitions: My Data & a backup MacOS (just for running first aid).

Your guide works but everytime I restart my Mac, it defaults back again to Radeon. Is there another EFI in the HDD?

What should I do?

Thank you.
Are you talking about the guide in the #1070 post?

If so, have you done all the steps up to point 4 without skipping anything?
You don't need to put grub in every EFI partition(If you have more than one), just the EFI partition of the main drive and run the bless commands. Note that the bless commands look the same, but if you look carefully they are different, and they are the both necessary.

EDIT: typo
 
Last edited: