Creating the USB

Creating the USB

Last edited: Febuary 13, 2020

Requirements:

  • OpenCorePkg, highly recommend running the debug version to show more info

  • ProperTree or Xcode to edit .plist files (OpenCore Configurator is another tool but is heavily outdated and the Mackie version is known for corruption. Please avoid these kinds of tools at all costs!).

  • Cleaned NVRAM(This is seriously important if you used Clover before, as many variables will remain causing conflicts. Luckily with OC you can press CleanNvram in the boot picker when AllowNvramReset is enabled in your config)

  • Basic knowledge of how a Hackintosh works and what files yours requires(ie: Type of network controller).

  • You must remove Clover from your system entirely if you wish to use it as your main boot-loader. Keep a backup of your Clover based EFI. See here on what needs to be cleaned: Clover Conversion

Making the installer

Depending on which OS you're on, see your specific section on making the USB, then return here on setting up Opencore:

Setting up the EFI

To setup OpenCore’s folder structure, you’ll want to grab the EFI folder found in OpenCorePkg's releases page(this will already be done on the BOOT USB drive for windows users):

base EFI folder

Now something you'll notice is that it comes with a bunch of files in Drivers and Tools folder, we don't want most of these:

  • Remove from Drivers:

    • AppleUsbKbDxe.efi

    • NvmExpressDxe.efi

      • Used for Haswell and older when no NVMe driver is built into the firmware

    • XhciDxe.efi

      • Used for Sandy Bridge and older when no XHCI driver is built into the firmware

  • Remove from Tools:

    • CleanNvram.efi

      • We'll be using OpenCore's built-in function

    • VerifyMsrE2.efi

A cleaned up EFI:

Clean EFI

Now you can place your necessary firmware drivers(.efi) from AppleSupportPkg into the Drivers folder and Kexts/ACPI into their respective folders. Please note that UEFI drivers from Clover are not supported with OpenCore!(EmuVariableUEFI, AptioMemoryFix, OsxAptioFixDrv, etc). Please see the Clover firmware driver conversion for more info on supported drivers and those merged into OpenCore.

Here's what a populated EFI can look like:

Populated EFI folder

Reminder:

  • SSDTs and custom DSDTs go in ACPI folder

  • Kexts go in Kexts folder

  • Firmware drivers(.efi) go in the Drivers folder

Now head to Gathering Files to get the needed kexts and firmware drivers