# Adding The Base OpenCore Files

To setup OpenCore’s folder structure, you’ll want to grab the EFI folder found in OpenCorePkg's releases (opens new window). Note that they will be under either the IA32 or X64 folders, the former for 32-bit Firmwares and the latter for 64-bit Firmwares:

Regarding DEBUG versus RELEASE version:

  • DEBUG: Can greatly help with debugging boot issues, however can add some noticeable delay to boot times(ie. 3-5 seconds to get to the picker). Once installed you can easily transition to RELEASE
  • RELEASE: Much snappier boot times, however virtually no useful DEBUG info is provided in OpenCore making troubleshooting much more difficult.

And once downloaded, place the EFI folder(from OpenCorePkg) on the root of your EFI partition:

Note:

  • Windows users: you'll want to place the EFI folder on the root of the USB drive you made earlier
  • Linux users: This is the OPENCORE partition we created earlier
    • Note that Method 1 only creates 1 partition, while Method 2 creates 2 partitions

Now lets open up our EFI folder and see what's inside:

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:

  • Keep the following from Drivers(if applicable):
Driver Status Description
OpenUsbKbDxe.efi Optional Required for non-UEFI systems(pre-2012)
OpenPartitionDxe.efi Required to boot macOS 10.7-10.9 recovery
ResetNvramEntry.efi Required to reset the system's NVRAM
OpenRuntime.efi Required Required for proper operation
More info on provided drivers
  • AudioDxe.efi
    • Unrelated to Audio support in macOS
  • CrScreenshotDxe.efi
    • Used for taking screenshots in UEFI, not needed by us
  • HiiDatabase.efi
    • Used for fixing GUI support like OpenShell.efi on Sandy Bridge and older
    • Not required for booting
  • NvmExpressDxe.efi
    • Used for Haswell and older when no NVMe driver is built into the firmware
    • Don't use unless you know what you're doing
  • OpenCanopy.efi
  • OpenHfsPlus.efi
    • Open sourced HFS Plus driver, quite slow so we recommend not using unless you know what you're doing.
  • OpenPartitionDxe.efi
    • Required to boot recovery on OS X 10.7 through 10.9
      • Note: OpenDuet users(ie. without UEFI) will have this driver built-in, not requiring it
  • OpenUsbKbDxe.efi
  • Ps2KeyboardDxe.efi + Ps2MouseDxe.efi
    • Pretty obvious when you need this, USB keyboard and mouse users don't need it
    • Reminder: PS2 ≠ USB
  • ResetNvramEntry.efi
    • Allow resetting NVRAM from the boot picker
  • UsbMouseDxe.efi
    • similar idea to OpenUsbKbDxe, should only be needed on legacy systems using DuetPkg
  • XhciDxe.efi
    • Used for Sandy Bridge and older when no XHCI driver is built into the firmware
    • Only needed if you're using a USB 3.0 expansion card in an older machine
  • Keep the following from Tools:
Tool Status Description
OpenShell.efi Optional Recommended for easier debugging

A cleaned up EFI:

Clean EFI

Now you can place your necessary firmware drivers(.efi) into the Drivers folder and Kexts/ACPI into their respective folders. See Gathering Files for more info on which files you should be using.

  • Please note that UEFI drivers from Clover are not supported with OpenCore!(EmuVariableUEFI, AptioMemoryFix, OsxAptioFixDrv, etc). Please see the Clover firmware driver conversion (opens new window) for more info on supported drivers and those merged into OpenCore.

Here's what a populated EFI can look like (yours will be different):

Populated EFI folder

Reminder:

  • SSDTs and custom DSDTs(.aml) go in ACPI folder
  • Kexts(.kext) go in Kexts folder
  • Firmware drivers(.efi) go in the Drivers folder

# Now with all this done, head to Gathering Files to get the needed kexts and firmware drivers