Contribute
Register

Understanding Kext install locations

Status
Not open for further replies.
Joined
Jun 10, 2010
Messages
227
Motherboard
ASRock Z490M-ITX/ac
CPU
i7-10700
Graphics
RX 580
Mac
  1. MacBook Air
Mobile Phone
  1. Android
Despite being here since 2010 I have yet to grasp a good understanding of the different locations that kexts can exist in and whether there's a "right" place for them to be.

Back in the Chameleon days before Clover it may have been different, but keeping things relevant for the current macOS of today we seem to have:

EFI > CLOVER > kexts > 10.14
EFI > CLOVER > kexts > other
/ System / Extensions
/ System / Library / Extensions


From the point of view of keeping it clean and knowing where things are, I'd prefer to keep all my kexts as part of Clover - but even that raises the question of "10.14 or other" ?

And if I do use Clover for my kexts, should I be rebuilding the kext cache after installing or will a restart be sufficient?

Thanks
 
Apple kexts are in /System/Library/Extensions.
All third party kexts should be installed in /Library/Extensions.
Only kexts that are essential to load the operating system should be in /EFI/CLOVER/kexts/Other and all of the /EFI/CLOVER/kexts/10.* folders should be deleted. Essential kexts are usually just FakeSMC.kext and your Ethernet kext.
Doing this will enable use of the recovery partition and OS updates.
Inject Kexts should be set to Detect in config.plist.

Kexts that are in /EFI/CLOVER/kexts/Other may not load correctly if something triggers a cache rebuild.


Edit : For searchers happening upon this post, this advice was current at the time but things have changed with the advent of Catalina. As of Catalina all hackintosh kexts should be in /EFI/CLOVER/kexts/Other only.
 
Last edited:
I always put kexts in /EFI/CLOVER/kexts/Other and never have a problem.

I don't want to install any kexts in the system folders since I want to keep the installations as "vanilla" as possible. I can move the OS installations to and from various machines without worrying that those kexts will cause problems. If there are problems on another system I just need to remove offending kexts and add necessary kexts, which is as simple as deleting and copying them to and from /EFI/CLOVER/kexts/Other.
 
I always put kexts in /EFI/CLOVER/kexts/Other and never have a problem.

I don't want to install any kexts in the system folders since I want to keep the installations as "vanilla" as possible. I can move the OS installations to and from various machines without worrying that those kexts will cause problems. If there are problems on another system I just need to remove offending kexts and add necessary kexts, which is as simple as deleting and copying them to and from /EFI/CLOVER/kexts/Other.

Clover also has a setting in System Preferences section Kexts Inject = No, detect (as Pilgrim stated) and Yes. Generally, detect is used when you have Kexts in Library/Extensions, and Yes when only using the clover/Kexts/Other folder.

A lot of rehabmans guides and special Kexts for laptops require placing Kexts in Library/Extensions to assure proper function. Multibeast tool does this as well. These Kexts will usually survive a system software update (10.12.5 to 10.12.6) but when upgrading to a new release or install (10.12.6 to 10.13.0) they can disappear.

Sometimes if using a modified Apple kext like a graphics kext that is edited for a device ID or a WiFi kext it needs to be in System/Library/Extensions folder and THEN you need to rebuild caches before a reboot to enable it and have it function.

Most desktop hacks that I have run only require Kexts in Clover/Kexts/Other folder to work correctly and if they don’t then try Library/Extensions folder.
 
I always put kexts in /EFI/CLOVER/kexts/Other too.
No files are added or modified any files of the system, mainly for upgrading.
Like Gigamaxx mentioned above. Kexts Inject = YES
 
Thanks everyone I've learned a lot.

I think I prefer to keep things clean and simple, going with Clover/kexts/other unless there's a reason to deviate from that
 
I wonder about this also. I see many (knowledgable) people on here advocating /L/E for everything except FakeSMC and potentially ethernet in Clover. But as I see it:

/S/L/E - to be avoided, lots of system kexts and no real reason to use vs other locations. No argument here.

/L/E - used for 3rd party kexts
advantages: relatively clean location (compared to /s/l/e), included in kext cache, anything else?​
disadvantages: not completely clean (compared to clover), must rebuild kext cache when making changes, not used when booting into things like recovery, kexts go along with system partition if you want to clone for another machine.​

clover (other) - injected by clover
advantages: totally clean location in EFI partition, injected and used for all booting including recovery, don't need to update kext cache for changes, can't be removed changed by updates, doesn't get in the way of cloning system partition for another machine.​
disadvantages: not part of the kext cache made, anything else ?​

Someone PLEASE correct me if I'm wrong above. But to me it seems that (outside of caching benefits vs install ease) the clover location makes the most sense, especially when there are are other items that would affect recovery boot. Like in my case I can't boot to recovery without removing all but 1 monitor from my Vega64 for my iMac18,3 definition without having the kexts in clover location.

So I guess I'm wondering why so many seem to advocate /L/E. Is it purely to be part of the cache ? are there other things about the clover location I'm missing?

TIA!
 
I wonder about this also. I see many (knowledgable) people on here advocating /L/E for everything except FakeSMC and potentially ethernet in Clover. But as I see it:

/S/L/E - to be avoided, lots of system kexts and no real reason to use vs other locations. No argument here.

/L/E - used for 3rd party kexts
advantages: relatively clean location (compared to /s/l/e), included in kext cache, anything else?​
disadvantages: not completely clean (compared to clover), must rebuild kext cache when making changes, not used when booting into things like recovery, kexts go along with system partition if you want to clone for another machine.​

clover (other) - injected by clover
advantages: totally clean location in EFI partition, injected and used for all booting including recovery, don't need to update kext cache for changes, can't be removed changed by updates, doesn't get in the way of cloning system partition for another machine.​
disadvantages: not part of the kext cache made, anything else ?​

Someone PLEASE correct me if I'm wrong above. But to me it seems that (outside of caching benefits vs install ease) the clover location makes the most sense, especially when there are are other items that would affect recovery boot. Like in my case I can't boot to recovery without removing all but 1 monitor from my Vega64 for my iMac18,3 definition without having the kexts in clover location.

So I guess I'm wondering why so many seem to advocate /L/E. Is it purely to be part of the cache ? are there other things about the clover location I'm missing?

TIA!
all kexts you need to be installed to /L/E (yes, that means FakeSMC as well)

only essential kexts in clover/kexts/other, ie FakeSMC, lilu, whatevergreen, USBInjectAll and an ethernet kext,
(essential kexts to reach macOS installer)

you will find you have duplicate kexts in both places which is fine

and then in config.plist, InjectKexts->Detect
 
all kexts you need to be installed to /L/E (yes, that means FakeSMC as well)

only essential kexts in clover/kexts/other, ie FakeSMC, lilu, whatevergreen, USBInjectAll and an ethernet kext,
(essential kexts to reach macOS installer)

you will find you have duplicate kexts in both places which is fine

and then in config.plist, InjectKexts->Detect

Ok, so if I understand that correctly then basically the system will boot from the cached kexts only (nothing from clover) unless FakeSMC is not found in the cache -- in which case clover will inject whatever is applicable from its kext directories. (for something like recovery) Does that sound right ?

Thanks!
 
Status
Not open for further replies.
Back
Top