I`m already confused with:
- AMDRadeonX3000.kext versions
- sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
vs
printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
- how to load AMDRadeonX3000.kext automatically after login (autorun)? Is it possible at all?
Please, could someone who very confident in this problem/solution, make a post (or update the first post, WIKI) with
all actual information for latest macOS update.
Assuming "latest macOS" means 10.12.6.
AMDRadeonX3000.kext
versions seem to be irrelevant to success. It currently looks that they should be at their default versions for the respective systems. Some people even report that they could leave it at the default location.
Having them loaded (after boot) strips me on Yosemite from having sleep and hibernate working correctly. Also Yosemite is now quite slow to shutdown. Both features work for me in Sierra and HighSierra as they should.
The system will likely work completely without the kext, albeit quite likely with higher temperatures on the now useless dGPU.
Autoloading the kext is a problem that I do not have a solution for, and since I am still on Yosi for main work this is a goodthing™.
May be shellscript with the privileges set accordingly should do the trick. A launchd solution; haven't yet tested this, may contain errors:
Assuming that the kext was moved to
/System/Library/Extensions-off
enter the following in Terminal:
$ sudo nano /Library/LaunchDaemons/com.lateX3000.plist
copy the following code into the file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.lateX3000.plist</string>
<key>ProgramArguments</key>
<array>
<string>kextload</string>
<string>/System/Library/Extensions-off/AMDRadeonX3000.kext</string>
</array>
<key>RunAtLoad</key><true/>
</dict>
</plist>
Now make it 'active':
$ sudo chown root:wheel /Library/LaunchDaemons/com.lateX3000.plist
$ sudo chmod 644 /Library/LaunchDaemons/com.lateX3000.plist
$ sudo launchctl load -w /Library/LaunchDaemons/com.lateX3000.plist
[
Update:
Naturally the plist contained a typo. Now I tested it. It works. But it is in its current form invoked too early. If someone knows how to postpone the execution?
Update 2:
$ sudo mkdir -p /Library/LoginHook
$ sudo nano /Library/LoginHook/LoadX3000.sh
contents:
#!/bin/bash
kextload /System/Library/Extensions-off/AMDRadeonX3000.kext
exit 0
$ sudo chmod a+x /Library/LoginHook/LoadX3000.sh
$ sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh
Method in Update2 works reliable: kext is autoloaded late enough.
Please feel free to improve on this script.
e.g. Add a line to test whether kext is already loaded?
]
The effect of the two methods – efivars vs nvram – should be the same.
nvram is way faster to accomplish and possible with onboard equipment. The efivars way may still be useful under linux, for linux and for exploring the other efivars settings.
If you are on OS X, go nvram.