- Aug 27, 2011
- ASRock-Z97 EX6
- i7-4790K O/C @ 4.8GHz
- Vega 64LC + HD4600
- Mobile Phone
Installing 3rd Party Kexts
1. What Versions of MacOS does this guide cover ?
The methods detailed in this guide will work on the following versions of MacOS
- MacOS 10.11.X - El Capitan
- MacOS 10.12.X - Sierra
- MacOS 10.13.X - High Sierra
- MacOS 10.14.X - Mojave
2. Where should I install 3rd Party Kexts ?
You should install all 3rd Party kexts (including FakeSMC) to /Library/Extensions (/L/E)
Warning: you can not simply use Finder to copy kexts into /L/E (see Section 7 below)
3. What about EFI/Clover/kexts/Other ?
It seems that many users are under the impression that you can simply copy all 3rd Party Kexts into EFI/Clover/kexts/Other and allow Clover to Inject the kexts by setting Clover -> System Parameters -> Inject Kexts to "Yes" which will result in a maintenance free and more native MacOS install.
This assumption is completely wrong ...
4. Why should I use /Library/Extensions over Clover Injected kexts ?
Contrary to Hackintosh myth, having Clover inject all the 3rd party kexts does not result in a cleaner install, in fact the exact opposite is true.
- Injected Kexts live outside of the protected MacOS memory space.
- Injecting a large amount of kexts can result in an unstable system.
- Many 3rd party kexts will not work correctly when injected by Clover.
- Injected Kexts are not included in the kernel cache and thus are excluded form MacOS error checking.
- Installing kexts in /Library/Extensions is the Apple endorsed and recommended location for all 3rd Party kexts.
5. If thats true why does Clover even have this feature ?
The main reason that Clover supports injecting kexts is to load critical kexts required to run the following :-
- MacOS Installer
- MacOS Updater
- MacOS Recovery
Think very carefully about the kexts you actually need in EFI/Clover/kexts/Other ... you only need the absolute bare minimum to run the above packages.
6. How does Clover know to Inject kexts or Not ?
You need to set Clover -> System Parameters -> Inject Kexts to "Detect"
With this setting, Clover will look for FakeSMC in /Library/Extensions or the MacOS Kernel Cache when you select/boot MacOS, if 'detected' Clover will not inject any kexts and leave MacOS to load all the 3rd party kexts (including FakeSMC) from /Library/Extensions (or the kernel cache) which is the preferred and recommended method for all the reasons stated in section 4. of this guide.
If Clover does not 'detect' FakeSMC in /Library/Extensions or the MacOS Kernel Cache such as when booting Recovery or a MacOS update then Clover will inject all the kexts from the EFI/Clover/kexts/Other folder.
Note: It is also possible to set Clover -> System Parameters -> Inject Kexts to either "No" or "Yes", these values should be considered as debugging settings, if set to "No" then Clover will never Inject any kexts and thus you will be unable to run Recovery or any MacOS Updates. If Set To "Yes" then Clover will Inject all kexts in EFI/Clover/kexts/Other regardless of any other condition, this can obviously cause problems if you have duplicate kexts in /Library/Extensions as these kexts will be loaded twice which can be especially problematic if you have different versions in the two locations.
7. How do I install kexts in /Library/Extensions ?
First we need to make sure that MacOS is allowed to load unsigned kexts/drivers.
1. Make sure you have the boot argument kext-dev-mode=1 :-
2. And that you set BooterConfig and CsrActiveConfig in Clover's RTVariables section to the correct values.
Easy method :-
If your not familiar with using terminal/console commands to install kext's into the /Library/Extensions folder and rebuilding the caches then I recommend using the following method:-
Download KextBeast which is available in the downloads section, copy all the kext's you want to install onto the desktop and run the KextBeast pkg file, click on continue a few times, enter your admin password if prompted and accept the usual notices until you get the option to select the install target. Select /Library/Extensions and click on Continue.
KextBeast will install the kext's that you placed on the desktop into the target Extensions folder. Once KextBeast has done its work it will offer you the option of keeping the pkg or deleting it. I generally click on "keep" as i'm always trying new and different versions of kext's and KextBeast is a quick and easy way to do the job.
Once KextBeast has finished I recommend running version 2.6.6 of cVad's Kext Utility (click here to download) which will repair any broken kext permissions and rebuild the caches. Simply run the app and enter your admin password when prompted, then wait while Kext Utility does it's work, it will take a while ... you will know when it's finished once you see "Quit" in black text at the bottom of the app window.
Warning: Do not use Kext Utility to install a kext as it does not support installing kext's into /Library/Extensions, it does however do a very good job of repairing all kext permissions.
Once Kext Utility has finished reboot your system.
Terminal/Console Method :-
- Using Finder create a folder on your desktop and copy all the kexts you want to install into it.
- Open Terminal and change the active path to the folder you created in step 1 using the "CD" command.
- Install the Kexts into /Library/Extensions using the following command :-
sudo cp -R *.kext /Library/Extensions
Then rebuild the caches using the following command :-
sudo kextcache -i /
Once finished reboot your system.
Note: Do not use Finder to copy kext's to /Library/Extensions as it will result in the kexts having bad permissions.
8. Updating Kexts
If you need to update one or more kexts then use Finder to the delete just the kexts you want to update (do not select all/delete all) from /Library/Extensions and then install the new versions using one of the the methods detailed in section 7 of this guide.
To update kexts in EFI/Clover/kexts/Other simply use Finder to copy and paste the new kexts and select "Replace" when prompted.
1. Copy FakeSMC and only critical kext's needed to run the MacOS Installer, Updater or Recovery to EFI/Clover/kexts/Other
2. Install all 3rd party kexts (including FakeSMC) required to run MacOS in /Library/Extensions
3. Set Clover -> System Parameters -> Inject Kexts to "Detect"