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

New Page template button with timestamp in the title - Notion

These days I'm all about discovering ways for people to use Notion  without  the use of databases, as databases slow things down. I'm also an advocate for minimalism while still having an efficient workflow. Today I'm giving a tip with an example of daily journal entries. Usually, a Notion template comes with a database for journal pages, with a "Date created" property which is mighty convenient. But you can also replicate that without a database.  This will make it super fast for you to start journaling on a new page with the current date and time already added to the title. Create a simple text page where all your journal entries will be stored (no databases/tables). Optional: You may create a subpage to serve as an Archive for past entries. Again this should be a simple text page, not a database. You may also have multiple archives, named after the 12 months or years to keep things more organized. Type / , then template , then select the Template button . Give

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.