Skip to main content

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.

Popular posts from this blog

Bullet Journal and Task Management in Obsidian (part 1)- Free Vault for download and Folder Structure

This is the vault in Obsidian that I use daily as a bullet journal and task manager. This is going to be a series of posts on explaining how I use this vault.   Download the full vault .zip file here . Extract it, save the folder to your desired location and then open it from Obsidian. If you just want the snippets, download the snippets .zip file here . Extract and paste the CSS snippets to your .obsidian/snippets folder (show hidden files and folders in your file explorer). For a list of the alternate checkboxes you can use, see here (you don't need the minimal theme, the CSS snippet I have enabled will work on any theme, even the default one): Folder Structure I have 3 parent folders: inbox - this is where I have Obsidian automatically store any new note I create journal - this is where I have Obsidian automatically store daily notes. I keep the current month in there, then when the month ends, I review and archive by month and y

How to rebuild cache and repair permissions of kexts in a Hackintosh

After installing 3rd-party kexts in /Library/Extensions, or replacing vanilla kexts with patched kexts in System/Library/Extensions, you may want to repair their permissions and rebuild the kext cache to ensure they work as intented. Here's how.

NVIDIA Web Drivers Mojave Workaround

It is still uncertain when will NVIDIA release any Web Drivers for macOS Mojave, but we can try a workaround.