How to Install Post-Install Kexts With Terminal on macOS Hackintosh Builds
If you've just finished setting up a Hackintosh — or you're troubleshooting missing hardware support — you've likely encountered the word kext. Installing kexts correctly after the initial OS setup is one of the most critical steps in getting your system fully functional. Terminal gives you direct, precise control over this process, and understanding exactly what's happening at each step makes a real difference.
What Is a Kext and Why Does It Matter?
Kext stands for Kernel Extension — a bundle of code that loads into the macOS kernel to add hardware driver support or system-level functionality. Think of kexts as the macOS equivalent of Windows drivers, but operating at a deeper level within the OS.
On a real Mac, Apple handles kext management automatically. On a Hackintosh, you're responsible for placing the right kexts in the right locations and ensuring they load at boot. Common post-install kexts include:
- Lilu.kext — a patching framework required by most other kexts
- VirtualSMC.kext — emulates Apple's System Management Controller
- AppleALC.kext — enables onboard audio
- WhateverGreen.kext — handles GPU patching and display fixes
- RealtekRTL8111.kext — adds support for common Ethernet controllers
Without these loaded correctly, you may have no sound, no network, or unstable sleep/wake behavior.
Where Kexts Live on macOS
There are two primary locations relevant to Hackintosh setups:
| Location | Purpose |
|---|---|
| /Library/Extensions/ (L/E) | System-wide kexts loaded by macOS at boot |
| /System/Library/Extensions/ (S/L/E) | Apple's core system kexts — avoid modifying directly |
| EFI/OC/Kexts or EFI/CLOVER/kexts | Bootloader-injected kexts (OpenCore or Clover) |
For most post-install setups using OpenCore, the preferred method is to keep kexts in the EFI folder and inject them via the bootloader. However, some users prefer placing kexts directly into /Library/Extensions/ for a cleaner, more "native" setup — which is where Terminal comes in.
Installing Kexts With Terminal: The Core Process 🖥️
Before starting, make sure System Integrity Protection (SIP) is either disabled or configured to allow kext loading. You can check its status by running: