Contribute
Register

[GUIDE] Installing 3rd Party Kexts - El Capitan, Sierra, High Sierra, Mojave, Catalina

@soeryobadja,

Clover has no need of a feature to define the load order of injected kexts as it is not as fussy as OpenCore and will load all primary, satellite and dependency kext's without any problems.

If you have your 3rd party kext's installed in /L/E and want to ensure that Lilu, VirtualSMC .. etc load early enough in the boot process, then you can use the LiluFriend kext but it is not required if you are injecting your kext's via Cover.


Cheers
Jay
 
Last edited:
What is the process (for installing kexts) in case of using OpenCore bootloader?
I am wondering the same thing.
When using OC, the developers of that state that they should go in the kexts folder within the OC folder on the EFI partition. Here's the schematic from the OC reference manual. Acidanthera is also the dev team that gives us Lilu, WEG and AppleALC.
Screen Shot 15.jpg
 

Attachments

  • OC Ref.Manual.pdf.zip
    565.4 KB · Views: 90
Last edited:
I am wondering the same thing.
The main item to worry about is that Lilu loads first. All the sample plists provided in Open Core have this set as #1 to load. It is quite easy to inject kexts with OC, just place them in the Kexts folder, and open the config.plist with Propertree and select "OC Snapshot" it will add all the dependencies in the proper order for the kexts in the Kernel Add section. In fact it will do the same for ACPI SSDT adds or removals, Drivers etc... After adding all your drivers, kexts SSDTs etc, use Open Core "Sanity Checker' to check for errors. Open sanitizer checker and set the OC version i.e 0.6.0 and set the system type i.e. Ivy Bridge, Haskell etc.. then drag your config plist to the checker. It will list all the errors as well as green light your correct settings. open the config.plist with proper tree and set it alongside of the Checker to change items as needed then save and your good to go.
 
Last edited:
just place them in the Kexts folder, and open the config.plist with Propertree and select "OC Snapshot" it will add all the dependencies in the proper order for the kexts in the Kernel Add section.
The OC snapshot is a feature that puts all your "ducks in a row" so to speak, with just one click. Great feature to use in the ProperTree app from CorpNewt. Saves the end user a lot of time and grief trying to do that manually.
 
Has anyone observed the warning "relocation failed" when attempting to install the latest AppleALC.kext (1.5.4) in /L/E? Is this a problem and does this preclude installation of AppleALC.kext in /L/E? Details below...

I'm still installing kexts in /L/E with CLOVER r5122 and Catalina 10.15.7. When attempting to install the latest AppleALC.kext (1.5.4), executing 'kextcache -i /' results in the warning below (repeated 4 times). Acidanthera doesn't consider this to be a problem since it doesn't affect OC kext injection and they no longer support CLOVER and kexts installed in /L/E. This warning does not occur with AppleALC.kext 1.5.3. Does anyone know if this warning is a problem for AppleALC.kext installed in /L/E? Thank you.

Code:
kxld[as.vit9696.AppleALC]: Warning: relocation failed because some class in this kext didn't use the OSDeclareDefaultStructors and OSDefineMetaClassAndStructors, or didn't export all vtable symbols, so it still references IOService::_RESERVEDIOService0(), which has been patched with another symbol for binary compatibility. Please make sure all classes that inherit from OSObject use these macros.
 
Has anyone observed the warning "relocation failed" when attempting to install the latest AppleALC.kext (1.5.4) in /L/E? Is this a problem and does this preclude installation of AppleALC.kext in /L/E? Details below...

I'm still installing kexts in /L/E with CLOVER r5122 and Catalina 10.15.7. When attempting to install the latest AppleALC.kext (1.5.4), executing 'kextcache -i /' results in the warning below (repeated 4 times). Acidanthera doesn't consider this to be a problem since it doesn't affect OC kext injection and they no longer support CLOVER and kexts installed in /L/E. This warning does not occur with AppleALC.kext 1.5.3. Does anyone know if this warning is a problem for AppleALC.kext installed in /L/E? Thank you.

Code:
kxld[as.vit9696.AppleALC]: Warning: relocation failed because some class in this kext didn't use the OSDeclareDefaultStructors and OSDefineMetaClassAndStructors, or didn't export all vtable symbols, so it still references IOService::_RESERVEDIOService0(), which has been patched with another symbol for binary compatibility. Please make sure all classes that inherit from OSObject use these macros.
I’m not 100% sure but any 3rd part kext should not be in L/E or S/L/E but in the kext folder of the EFI folder.
 
Last edited:
I’m not 100% sure but any 3rd part kext should not be in L/E or S/L/E but in the kext folder of the EFI folder.
That's certainly one approach. You read the first post in this thread?
 
Back
Top