# config.plist Setup

Now that we've got all our Kexts(.kext), SSDTs(.aml) and firmware drivers(.efi), your USB should start to look something like this:

  • Note: Your USB will look different, everyone's system will have different requirements.

# Creating your config.plist

First we'll want to grab the sample.plist from the OpenCorePkg, this will be located under the Docs folder:

Next lets move it onto our USB's EFI partition(will be called BOOT on Windows) under EFI/OC/, and rename it to config.plist:

# Adding your SSDTs, Kexts and Firmware Drivers

For the rest of this guide, you're gonna need some form of plist editing. And for our guide, we'll be using ProperTree and GenSMBIOS to help automate some of the tedious work:

Next, let's open ProperTree and edit our config.plist:

  • ProperTree.command
    • For macOS
    • Pro tip: there's a buildapp.command utility in the Scripts folder that lets you turn ProperTree into a dedicated app in macOS
  • ProperTree.bat
    • For Windows

Once ProperTree is running, open your config.plist by pressing Cmd/Ctrl + O and selecting the config.plist file on your USB.

After the config is opened, press Cmd/Ctrl + Shift + R and point it at your EFI/OC folder to perform a "Clean Snapshot":

  • This will remove all the entries from the config.plist and then adds all your SSDTs, Kexts and Firmware drivers to the config
  • Cmd/Ctrl + R is another option that will add all your files as well but will leave entries disabled if they were set like that before, useful for when you're troubleshooting but for us not needed right now

Once done, you'll see your SSDTs, Kexts and firmware drivers populated in the config.plist:

If you wish to clean up the file a bit, you can remove the #WARNING entries. Though they cause no issues staying there, so up to personal preference.

# Selecting your platform

Now comes the important part, selecting the configuration path. Each platform has their own unique quirks that you need to account for so knowing your hardware is super important. See below for what to follow:

# Intel Desktop

Code Name Series Release
Ivy Bridge 3XXX 2012 era
Haswell 4XXX 2013-2014 era
Skylake 6XXX 2015-2016 era
Kaby Lake 7XXX 2017 era
Coffee Lake 8XXX-9XXX 2017-2019 era
Comet Lake 10XXX 2020 era

# Intel Laptop

Code Name Series Release
Ivy Bridge 3XXX 2012 era
Haswell 4XXX 2013-2014 era
Skylake 6XXX 2015-2016 era
Kaby Lake and Amber Lake 7XXX 2017 era
Coffee Lake and Whiskey Lake 8XXX 2017-2018 era
Coffee Lake Plus and Comet Lake 9XXX-10XXX 2019-2020 era
Ice Lake 10XXX 2019-2020 era

# Intel HEDT

This section includes both enthusiast and server based hardware.

Code Name Series Release
Haswell-E 5XXX 2014 era
Broadwell-E 6XXX 2016 era
Skylake/Cascade Lake-X/W 7XXX, 9XXX, 10XXX 2017-2019 era

# AMD

Code Name Series Release
Bulldozer/Jaguar It's weird AMD was really bad with naming back then
Zen 1XXX, 2XXX, 3XXX 2017-2020 era
  • Note: Threadripper 3rd gen(39XX) are not supported, 1st and 2nd gen however are supported

# Legacy

Note that these are only guidelines and will not be full-featured guides like the other generations. This is mainly due to not enough testing, verifiable information, and overall community support as this hardware become less and less used.

Code Name Series Release
Penryn Too many 2008-2010
Nehalem and Westmere 7XX, 8XX, 9XX 2008-2010
Sandy Bridge 2XXX 2011
Sandy and Ivy bridge-E 2XXX, 3XXX 2011-2013