Monday, October 15, 2018

What exactly is a kext and where do we put them?

Kernel Extensions in macOS and Hackintosh, explained.

What is a kext?

Kernel Extensions or kexts are special packages of files that extend the kernel of macOS, and they are the equivalent of drivers in Windows. They can either be used for hardware to work or software calls for specific protocols or functions.

Kexts are like folders with files containing code in them. If you right-click on them, and from the context menu click on Show Package Contents, you will be able to see what's inside that kext. Some kexts are patched that way (by editing the contents of a kext) when it comes to Hackintosh, to enable some non-macOS hardware to work or fix some problems with them.

Vanilla is what we call the kexts that have not been modified. A real Mac for instance, runs on a macOS that is 100% vanilla, and all its kexts are therefore vanilla, unlike the patched versions of kexts we sometimes use in Hackintosh.

Kexts can make or break your Hackintosh. They can enable the ability to use your hardware in macOS, such as if your Ethernet is not recognized, but they can also go as far as cause kernel panic, which will bring your whole operating system into a stop (or constant reboots). Which is why you should be careful when installing them or modifying them, and do your research before applying any changes to your system.

Having all these kexts in your system does not guarantee that all of them will be used simultaneously. For instance, there might be quite a few system kexts for a specific piece of hardware, such as graphics, but only the one that corresponds to your actual hardware will be loaded / activated. Sometimes though, adding 2-3 different kexts for your audio for instance, can confuse the system and won't activate the one you want. Which is why sometimes you will be instructed to remove VoodooHDA.kext for instance (if you already have it in your system), to make AppleALC.kext work.

Where are kexts located?

    • /System/Library/Extensions (or /S/L/E for short), is the default location that the macOS places its own kexts. If you are instructed to use a patched version of a system kext, for instance the AppleHDA.kext, to get your audio working in a Hackintosh, this is probably where the patched kext will replace the original kext. Always make a backup of the original kexts before replacing them with patched versions.
    • /Library/Extensions (or /L/E for short), is mostly used for non-Apple Kexts, such as WhateverGreen.kext and Lilu.kext. This is the location used by tools such as MultiBeast, and this is the recommended place for installing kexts. You should try as much as possible not to touch the /S/L/E folder, and just install here instead.
    • /EFI/Clover/kexts/Other. Here you should place ONLY the kexts that you need to make your macOS Hackintosh boot up successfully. Bootloaders such as Clover use this location, for important kexts such as FakeSMC.kext.

You can install kexts manually, or with the help of tools such as Multibeast. Simply copying and pasting the kexts to the desired location will not suffice for the most part. In the next Hackintosh videos / articles, we explain how to do this process properly, as well as explain how to remove a kext.

Always make a backup of your system and files before adding, modifying or removing kexts!

How to install kexts article

Disclaimer: The content provided in this article is for informational purposes only. You are solely responsible for verifying the information as being appropriate for your personal use.

Post a Comment

Whatsapp Button works on Mobile Device only