diff --git a/AMD/AMD-USB-map.md b/AMD/AMD-USB-map.md index b87fcb4004..625e7d0609 100644 --- a/AMD/AMD-USB-map.md +++ b/AMD/AMD-USB-map.md @@ -1,5 +1,4 @@ -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 With OpenCore I think it's about time we finally destroy some AMD myths, like how USB is just screwed on AMD and can't be mapped. Well, that is false! And I will show you the path of enlightenment. diff --git a/AMD/NullCPU-patch.md b/AMD/NullCPU-patch.md index 4497712cb0..1cea598d59 100644 --- a/AMD/NullCPU-patch.md +++ b/AMD/NullCPU-patch.md @@ -1,7 +1,6 @@ # Improve GPU power management and remove nullcpupowermanagement.kext -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 What you'll need: diff --git a/AMD/AMD-config.md b/AMD/fx.md similarity index 90% rename from AMD/AMD-config.md rename to AMD/fx.md index 7f38a17f3c..808f532f49 100644 --- a/AMD/AMD-config.md +++ b/AMD/fx.md @@ -1,7 +1,6 @@ -# AMD +# Bulldozer(15h) and Jaguar(16h) -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -17,7 +16,6 @@ Now with all that, we'll need some things to get started: * [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS): For generating our SMBIOS * [Sample.plist](https://github.com/acidanthera/OpenCorePkg/releases): This is found under the Docs folder of the release download * [AMD Kernel Patches](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore): Needed for booting macOS on AMD hardware(save these for later, we'll go over how to use them below) - * [Ryzen/Threadripper(17h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h) (Supports 10.13, 10.14, and 10.15) * [Bulldozer/Jaguar(15h/16h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/15h_16h) (Supports 10.13, 10.14, and 10.15) Now with those downloaded, we can get to really get started: @@ -50,7 +48,7 @@ This is where you'll add SSDTs for your system, these are very important to **bo Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -77,9 +75,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/456913818467958789/681325158815760384/Screen_Shot_2020-02-23_at_7.22.44_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696573787994325013/Screen_Shot_2020-04-05_at_10.15.09_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -87,12 +85,12 @@ This section is allowing spaces to be passthrough to macOS that are generally ig **Quirks**: -Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, one we need to change is `RebuildAppleMemoryMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc * **DevirtualiseMmio**: NO - * Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful for most firmware though breaks on most AMD systems. + * Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful especially on HEDT and Xeon systems * **DisableSingleUser**: NO * Disables the use of `Cmd+S` and `-s`, this is closer to the behaviour of T2 based machines * **DisableVariableWrite**: NO @@ -105,18 +103,23 @@ Settings relating to boot.efi patching and firmware fixes, for us we care about * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS * **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: NO + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties ![DeviceProperties](https://media.discordapp.net/attachments/456913818467958789/681334251865636866/Screen_Shot_2020-02-23_at_7.58.51_PM.png?width=1674&height=866) @@ -156,7 +159,6 @@ TL;DR, delete all the PciRoot's here as we won't be using this section. **Patch**: This is where the AMD kernel patching magic happens. Please do note that `KernelToPatch` and `MatchOS` from Clover becomes `Kernel` and `MinKernel`/ `MaxKernel` in OpenCore, you can find pre-made patches by [AlGrey](https://amd-osx.com/forum/memberlist.php?mode=viewprofile&u=10918&sid=e0feb8a14a97be482d2fd68dbc268f97)(algrey#9303): Kernel patches: -* [Ryzen/Threadripper(17h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h) (10.13, 10.14, and 10.15) * [Bulldozer/Jaguar(15h/16h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/15h_16h) (10.13, 10.14, and 10.15) To merge: @@ -213,12 +215,14 @@ Settings relating to the kernel, for us we'll be enabling `DummyPowerManagement` * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -231,7 +235,10 @@ Settings relating to the kernel, for us we'll be enabling `DummyPowerManagement` **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -264,7 +271,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -280,7 +287,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -294,8 +301,6 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **keepsyms=1** - this is a companion setting to debug=0x100 that tells the OS to also print the symbols on a kernel panic. That can give some more helpful insight as to what's causing the panic itself. * **npci=0x2000** - this disables some PCI debugging related to `kIOPCIConfiguratorPFM64`, alternative is `npci= 0x3000` which disables debugging related to `kIOPCIConfiguratorTBMSIEnable`and `gIOPCITunnelledKey`. Required for when getting stuck on `PCI Start Configuration` as there are IRQ conflicts relating to your PCI lanes. **Not needed if Above4GDecoding is enabled**. [Source](https://opensource.apple.com/source/IOPCIFamily/IOPCIFamily-370.0.2/IOPCIBridge.cpp.auto.html) * **agdpmod=pikera** - used for disabling boardID on Navi GPUs(RX 5000 series), without this you'll get a black screen. **Don't use if you don't have Navi** - * **alcid=1** - used for setting layout-id for AppleALC, see [supported codecs](https://github.com/acidanthera/applealc/wiki/supported-codecs) to figure out which layout to use for your specific system. - * **csr-active-config**: Settings for SIP, generally recommended to manually change this within Recovery partition with `csrutil` via the recovery partition @@ -307,9 +312,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -362,15 +367,15 @@ SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3 The order is `Product | Serial | Board Serial (MLB)` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -411,9 +416,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -436,12 +441,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -492,7 +499,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: NO - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES diff --git a/AMD/zen.md b/AMD/zen.md new file mode 100644 index 0000000000..53fc7cbae5 --- /dev/null +++ b/AMD/zen.md @@ -0,0 +1,542 @@ +# Ryzen and Threadripper(17h) + +* Supported version: 0.5.7 + +## Starting Point + +So making a config.plist may seem hard, its not. It just takes some time but this guide will tell you how to configure eveything, you won't be left in the cold. This also means if you have issues, review your config settings to make sure they're correct. Main things to note with OpenCore: + +* **All properties must be defined**, there are no default OpenCore will fall back on so **do not delete sections unless told explicitly so**. If the guide doesn't mention the option, leave it at default. +* **The Sample.plist cannot be used As-Is**, you must configure it to your system +* **DO NOT USE CONFIGURATORS**, these rarely respect OpenCore's configuration and even some like Mackie's will add Clover properties and corrupt plists! + +Now with all that, we'll need some things to get started: + +* [ProperTree](https://github.com/corpnewt/ProperTree): For editing our config, this editor has some super useful tools for OpenCore +* [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS): For generating our SMBIOS +* [Sample.plist](https://github.com/acidanthera/OpenCorePkg/releases): This is found under the Docs folder of the release download +* [AMD Kernel Patches](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore): Needed for booting macOS on AMD hardware(save these for later, we'll go over how to use them below) + * [Ryzen/Threadripper(17h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h) (Supports 10.13, 10.14, and 10.15) + +Now with those downloaded, we can get to really get started: + +* Grab the **Sample.plist** and rename to **config.plist** +* Open your new config.plist in ProperTree + * macOS: `ProperTree.command` + * Windows: `ProperTree.bat` +* Run the Clean Snapshot function(**Cmd/Ctrl + Shift + R** and point it at your EFI/OC folder), + * This will remove all the entries from the config.plist and then adds all your SSDTs, Kexts and Firmware drivers to the config + * Cmd+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 + +And now you're ready to configure it! + +**And read this guide more than once before setting up OpenCore and make sure you have it set up correctly. Do note that images will not always be the most up-to-date so please read the text below them, if nothing's mentioned then leave as default.** + +## ACPI + +![ACPI](https://i.imgur.com/zqNt4dV.png) + + +**Add:** + +This is where you'll add SSDTs for your system, these are very important to **booting macOS** and have many uses like [USB maps](https://usb-map.gitbook.io/project/), [disabling unsupported GPUs](/post-install/spoof.md) and such. And with our system, **its even required to boot**. Guide on making them found here: [**Getting started with ACPI**](../extras/acpi.md) + +* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) + * Hides the Embedded controller and creates a fake one for macOS, **needed for all Catalina users** and recommended for other versions of macOS + * This SSDT also has a second function, USBX. This is used for forcing USB power properties and requires SSDT-EC so this just jumbles them together. + * I've also provided a precompiled version for users with `EC0`, this is the most common device on AMD systems: [SSDT-EC-USBX-AMD.aml](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/extra-files/SSDT-EC-USBX-AMD.aml) + + Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. + +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. + +**Block** + +This blocks certain ACPI tabes from loading, for us we can ignore this + +**Patch**: + +This section allows us to dynamically modify parts of the ACPI (DSDT, SSDT, etc.) via OpenCore. For us, our patches are handled by our SSDTs. This is a much cleaner solution as this will allow us to boot Windows and other OSes with OpenCore + +**Quirk**: + +Settings relating to ACPI, leave everything here as default. + +* **FadtEnableReset**: NO + * Enable reboot and shutdown on legacy hardware, not recommended unless needed +* **NormalizeHeaders**: NO + * Cleanup ACPI header fields, only relevant for macOS High Sierra 10.13 +* **RebaseRegions**: NO + * Attempt to heuristically relocate ACPI memory regions, not needed unless custom DSDT is used. +* **ResetHwSig**: NO + * Needed for hardware that fails to maintain hardware signature across the reboots and cause issues with waking from hibernation +* **ResetLogoStatus**: NO + * Workaround for OEM Windows logo not drawing on systems with BGRT tables. + +## Booter + +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696571557115461632/Screen_Shot_2020-04-05_at_10.04.04_PM.png) + +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi + +**MmioWhitelist**: + +This section is allowing spaces to be passthrough to macOS that are generally ignored, useful when paired with `DevirtualiseMmio` + +**Quirks**: + +Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap` + +* **AvoidRuntimeDefrag**: YES + * Fixes UEFI runtime services like date, time, NVRAM, power control, etc +* **DevirtualiseMmio**: NO + * Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful especially on HEDT and Xeon systems +* **DisableSingleUser**: NO + * Disables the use of `Cmd+S` and `-s`, this is closer to the behaviour of T2 based machines +* **DisableVariableWrite**: NO + * Needed for systems with non-functioning NVRAM, you can verify [here](/post-install/nvram.md) if yours works +* **DiscardHibernateMap**: NO + * Reuse original hibernate memory map, only needed for certain legacy hardware +* **EnableSafeModeSlide**: YES + * Allows for slide values to be used in Safemode +* **EnableWriteUnprotector**: YES + * Removes write protection from CR0 register during their execution +* **ForceExitBootServices**: NO + * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares +* **ProtectSecureBoot**: NO + * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems +* **ProvideCustomSlide**: YES + * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS +* **SetupVirtualMap**: NO + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer +* **SignalAppleOS**: NO + * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: YES + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + +## DeviceProperties + +![DeviceProperties](https://media.discordapp.net/attachments/456913818467958789/681334251865636866/Screen_Shot_2020-02-23_at_7.58.51_PM.png?width=1674&height=866) + +**Add**: Sets device properties from a map. + +By default, the Sample.plist has this section set for iGPU and Audio. We have no iGPU so PCIRoot `PciRoot(0x0)/Pci(0x2,0x0)` can be removed from `Add` section. For audio we'll be VoodooHDA, so removal of `PciRoot(0x0)/Pci(0x1b,0x0)` is also recommended from both `Add` and `Block` sections + +TL;DR, delete all the PciRoot's here as we won't be using this section. + +## Kernel + +![Kernel](https://cdn.discordapp.com/attachments/456913818467958789/681344557090209798/Screen_Shot_2020-02-23_at_8.39.33_PM.png) +![](https://cdn.discordapp.com/attachments/456913818467958789/681344552526675988/Screen_Shot_2020-02-23_at_8.39.49_PM.png) + +**Add**: Here's where you specify which kexts to load, order matters here so make sure Lilu.kext is always first! Other higher priority kexts come after Lilu such as VirtualSMC, AppleALC, WhateverGreen, etc. A reminder that [ProperTree](https://github.com/corpnewt/ProperTree) users can run **Cmd/Ctrl + Shift + R** to add all their kexts in the correct order without manually typing each kext out. + +* **BundlePath** + * Name of the kext + * ex: `Lilu.kext` +* **Enabled** + * Self-explanatory, either enables or disables the kext +* **ExecutablePath** + * Path to the actual executable is hidden within the kext, you can see what path your kext has by right-clicking and selecting `Show Package Contents`. Generally, they'll be `Contents/MacOS/Kext` but some have kexts hidden within under `Plugin` folder. Do note that plist only kexts do not need this filled in. + * ex: `Contents/MacOS/Lilu` +* **PlistPath** + * Path to the `info.plist` hidden within the kext + * ex: `Contents/Info.plist` + +**Emulate**: Needed for spoofing unsupported CPUs like Pentiums and Celerons(AMD CPUs don't require this) + +* **CpuidMask**: Leave this blank +* **CpuidData**: Leave this blank + +**Block**: Blocks kexts from loading. Not relevant for us + +**Patch**: This is where the AMD kernel patching magic happens. Please do note that `KernelToPatch` and `MatchOS` from Clover becomes `Kernel` and `MinKernel`/ `MaxKernel` in OpenCore, you can find pre-made patches by [AlGrey](https://amd-osx.com/forum/memberlist.php?mode=viewprofile&u=10918&sid=e0feb8a14a97be482d2fd68dbc268f97)(algrey#9303): + +Kernel patches: +* [Ryzen/Threadripper(17h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h) (10.13, 10.14, and 10.15) + +To merge: +* Open both files, +* Delete the `Kernel -> Patch` section from config.plist +* Copy the `Kernel -> Patch` section from patches.plist +* Paste into where old patches were in config.plist + +![](/extra-files/gif.gif) + +**Quirks**: +Settings relating to the kernel, for us we'll be enabling `DummyPowerManagement`, `PanicNoKextDump`, `PowerTimeoutKernelPanic` and `XhciPortLimit`. Everything else should be left as default + +* **AppleCpuPmCfgLock**: NO + * Only needed when CFG-Lock can't be disabled in BIOS, Clover counterpart would be AppleIntelCPUPM. AMD users can ignore +* **AppleXcpmCfgLock**: NO + * Only needed when CFG-Lock can't be disabled in BIOS, Clover counterpart would be KernelPM. AMD users can ignore +* **AppleXcpmExtraMsrs**: NO + * Disables multiple MSR access needed for unsupported CPUs like Pentiums and certain Xeons +* **AppleXcpmForceBoost**: NO + * Forces maximum multiplier, only recommended to enable on scientific or media calculation machines that are constantly under load. Main Xeons benifit from this +* **CustomSMBIOSGuid**: NO + * Performs GUID patching for UpdateSMBIOSMode Custom mode. Usually relevant for Dell laptops. To be used in tandom with `PlatformInfo -> UpdateSMBIOSMode -> Custom` +* **DisableIoMapper**: NO + * AMD doesn't have DMAR or VT-D support so irrelevant +* **DummyPowerManagement**: YES + * New alternative to NullCPUPowerManagement, required for all AMD CPU based systems as there's no native power management. Intel can ignore +* **ExternalDiskIcons**: NO + * External Icons Patch, for when internal drives are treated as external drives but can also make USB drives internal. For NVMe on Z87 and below you just add built-in property via DeviceProperties. +* **IncreasePciBarSize**: NO + * Increases 32-bit PCI bar size in IOPCIFamily from 1 to 4 GB, enabling Above4GDecoding in the BIOS is a much cleaner and safer approach. Some X99 boards may require this, you'll generally expereince a kernel panic on IOPCIFamily if you need this +* **LapicKernelPanic**: NO + * Disables kernel panic on AP core lapic interrupt, generally needed for HP systems. Clover equivalent is `Kernel LAPIC` +* **PanicNoKextDump**: YES + * Allows for reading kernel panics logs when kernel panics occur +* **PowerTimeoutKernelPanic**: YES + * Helps fix kernel panics relating to power changes with Apple drivers in macOS Catalina, most notably with digital audio. +* **ThirdPartyDrives**: NO + * Enables TRIM, not needed for NVMe but AHCI based drives may require this. Please check under system report to see if your drive supports TRIM +* **XhciPortLimit**: YES + * This is actually the 15 port limit patch, don't rely on it as it's not a guaranteed solution for fixing USB. A more proper solution for AMD can be found here: [AMD USB Mapping](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/AMD/AMD-USB-map.md) + + +## Misc + +![Misc](https://cdn.discordapp.com/attachments/683011276938543134/683011604182466560/Screen_Shot_2020-02-28_at_10.52.25_AM.png) + +**Boot**: Settings for boot screen (Leave everything as default) +* **HibernateMode**: None + * Best to avoid hibernation with Hackintoshes all together +* **PickerMode**: `Builtin` + * Sets OpenCore to use the builtin picker +* **HideAuxiliary**: NO + * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour +* **HideSelf**: YES + * Hides the EFI partition as a boot option in OC's boot picker +* **ConsoleAttributes**: `0` + * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAudioAssist**: NO + * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled +* **PollAppleHotKeys**: NO + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: + * `Cmd+V`: Enables verbose + * `Cmd+Opt+P+R`: Cleans NVRAM + * `Cmd+R`: Boots Recovery partition + * `Cmd+S`: Boot in Single-user mode + * `Option/Alt`: Shows boot picker when `ShowPicker` set to `NO`, an alternative is `ESC` key +* **TakeoffDelay**: `0` + * Used to add a delay for hotkeys when OpenCore is a bit to fast to register, 5000-10000 microseconds is the prefered range for users with broken hotkeys support +* **Timeout**: `5` + * This sets how long OpenCore will wait until it automatically boots from the default selection + +**Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) + +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues +* **Target**: `67` + * Shows more debug information, requires debug version of OpenCore +* **DisplayLevel**: `2147483714` + * Shows even more debug information, requires debug version of OpenCore + +These values are based of those calculated in [OpenCore debugging](/troubleshooting/debug.md) + + +**Security**: Security is pretty self-explanatory, **do not skip** + +We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `RequireVault` and `ScanPolicy` + +* **AllowNvramReset**: YES + * Allows for NVRAM reset both in the boot picker and when pressing `Cmd+Opt+P+R` +* **AllowSetDefault**: YES + * Allow `CTRL+Enter` and `CTRL+Index` to set default boot device in the picker +* **AuthRestart**: NO: + * Enables Authenticated restart for FileVault2 so password is not required on reboot. Can be concidered a security risk so optional +* **ExposeSensitiveData**: `6` + * Shows more debug information, requires debug version of OpenCore +* **Vault**: `Optional` + * We won't be dealing vaulting so we can ignore, **you won't boot with this set to Secure** +* **ScanPolicy**: `0` + * `0` allows you to see all drives available, please refer to [Security](/post-install/security.md) section for further details. **Will not boot USBs with this set to default** + +**Tools** Used for running OC debugging tools like the shell, ProperTree's snapshot function will add these for you. For us, we won't be using any tools +* **Name** + * Name shown in OpenCore +* **Enabled** + * Self-explanatory, enables or disables +* **Path** + * Path to file after the `Tools` folder + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) + +**Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore + +Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info + +## NVRAM + +![NVRAM](https://cdn.discordapp.com/attachments/456913818467958789/681330600606826568/Screen_Shot_2020-02-23_at_7.44.23_PM.png) + +**Add**: + +4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 (Booter Path, mainly used for UI Scaling) + +* **UIScale**: + * `01`: Standard resolution(Clover equivalent is `0x28`) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) + +* **DefaultBackgroundColor**: Background color used by boot.efi + * `00000000`: Syrah Black + * `BFBFBF00`: Light Gary + +7C436110-AB2A-4BBB-A880-FE41995C9F82 (System Integrity Protection bitmask) + +* **boot-args**: + * **-v** - this enables verbose mode, which shows all the behind-the-scenes text that scrolls by as you're booting instead of the Apple logo and progress bar. It's invaluable to any Hackintosher, as it gives you an inside look at the boot process, and can help you identify issues, problem kexts, etc. + * **debug=0x100**- this disables macOS's watchdog which helps prevents a reboot on a kernel panic. That way you can *hopefully* glean some useful info and follow the breadcrumbs to get past the issues. + * **keepsyms=1** - this is a companion setting to debug=0x100 that tells the OS to also print the symbols on a kernel panic. That can give some more helpful insight as to what's causing the panic itself. + * **npci=0x2000** - this disables some PCI debugging related to `kIOPCIConfiguratorPFM64`, alternative is `npci= 0x3000` which disables debugging related to `gIOPCITunnelledKey`. Required for when getting stuck on `PCI Start Configuration` as there are IRQ conflicts relating to your PCI lanes. **Not needed if Above4GDecoding is enabled** + * **agdpmod=pikera** - used for disabling boardID on Navi GPUs(RX 5000 series), without this you'll get a black screen. **Don't use if you don't have Navi** + * **alcid=1** - used for setting layout-id for AppleALC, see [supported codecs](https://github.com/acidanthera/applealc/wiki/supported-codecs) to figure out which layout to use for your specific system. + + +* **csr-active-config**: Settings for SIP, generally recommended to manually change this within Recovery partition with `csrutil` via the recovery partition + +csr-active-config is set to `00000000` which enables System Integrity Protection. You can choose a number of other options to enable/disable sections of SIP. Some common ones are as follows: + +* `00000000` - SIP completely enabled +* `03000000` - Allow unsigned kexts and writing to protected fs locations +* `E7030000` - SIP completely disabled + +Recommended to leave enabled for best security practices + +* **nvda\_drv**: <> + * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** +* **prev-lang:kbd**: <> + * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): + * American: `en-US:0`(`656e2d55533a30` in HEX) + * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) + * Hint: `prev-lang:kbd` can be changed into a String so you can input `en-US:0` directly instead of converting to HEX + +| Key | Type | Value | +| :--- | :--- | :--- | +| prev-lang:kbd | String | en-US:0 | + +**Block**: Forcibly rewrites NVRAM variables, do note that `Add` **will not overwrite** values already present in NVRAM so values like `boot-args` should be left alone. + +**LegacyEnable**: NO +* Allows for NVRAM to be stored on nvram.plist, needed for systems without native NVRAM + +**LegacyOverwrite**: NO +* Permits overwriting firmware variables from nvram.plist, only needed for systems without native NVRAM + +**LegacySchema** +* Used for assigning NVRAM variables, used with LegacyEnable set to YES + +**WriteFlash**: YES +* Enables writing to flash memory for all added variables. + +## Platforminfo + +![PlatformInfo](https://i.imgur.com/CrqeCea.png) + +For setting up the SMBIOS info, we'll use CorpNewt's [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS) application. + +For this example, we'll choose the iMacPro1,1 SMBIOS but some SMBIOS play with certain GPUs better than others: + +* iMacPro1,1: AMD RX Polaris and newer +* MacPro7,1: AMD RX Polaris and newer(Note that MacPro7,1 is also a Catalina exclusive) +* MacPro6,1: AMD R5/R7/R9 and older +* iMac14,2: Nvidia Kepler and newer + + +Run GenSMBIOS, pick option 1 for downloading MacSerial and Option 3 for selecting out SMBIOS. This will give us an output similar to the following: + +```text + ####################################################### + # iMacPro1,1 SMBIOS Info # +####################################################### + +Type: iMacPro1,1 +Serial: C02YX0TZHX87 +Board Serial: C029269024NJG36CB +SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3 +``` + +The order is `Product | Serial | Board Serial (MLB)` + +The `Type` part gets copied to Generic -> SystemProductName. + +The `Serial` part gets copied to Generic -> SystemSerialNumber. + +The `Board Serial` part gets copied to Generic -> MLB. + +The `SmUUID` part gets copied toto Generic -> SystemUUID. + +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) + +**Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** + +[Apple Check Coverage page](https://checkcoverage.apple.com) + +**Automatic**: YES + +* Generates Platforminfo based on Generic section instead of DataHub, NVRAM, and SMBIOS sections + +**Generic**: + +* **SpoofVendor**: YES + * Swaps vendor field for Acidanthera, generally not safe to use Apple as a vendor in most case +* **AdviseWindows**: NO + * Used for when the EFI partition isn't first on the windows drive, generally found on systems that upgraded from Legacy to UEFI installs + +**UpdateDataHub**: YES +* Update Data Hub fields + +**UpdateNVRAM**: YES +* Update NVRAM fields + +**UpdateSMBIOS**: YES +* Updates SMBIOS fields + +**UpdateSMBIOSMode**: Create +* Replace the tables with newly allocated EfiReservedMemoryType, use Custom on Dell laptops requiring CustomSMBIOSGuid quirk + +## UEFI + +![UEFI](https://cdn.discordapp.com/attachments/683011276938543134/683518959873425639/Screen_Shot_2020-02-29_at_8.40.06_PM.png) + +**ConnectDrivers**: YES + +* Forces .efi drivers, change to NO will automatically connect added UEFI drivers. This can make booting slightly faster, but not all drivers connect themselves. E.g. certain file system drivers may not load. + +**Drivers**: Add your .efi drivers here + +Only drivers present here should be: + +* HfsPlus.efi +* ApfsDriverLoader.efi +* OpenRuntime.efi + +**Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS + +* **AudioSupport**: NO + * Used for enabling the audio port out, this requires AudioOut +* **AudioDevice**: [Blank] + * This will be the PciRoot of your audio device, [gfxutil](https://github.com/acidanthera/gfxutil/releases) and debug log are great ways to find this +* **AudioCodec**: 0 + * Specify your audio codec address, can be found in either debug log or with under `IOHDACodecAddress` in IOService +* **AudioOut**: 0 + * Specifies which output is used, use the debug log to see what your board has + * Same idea, can be found in either debug log or with [HdaCodecDump.efi](https://github.com/acidanthera/OpenCorePkg/releases) +* **MinimumVolume**: 20 + * Default sound level for audio output +* **PlayChime**: NO + * Emulates the iconic Mac startup sound + * This also requires [`AXEFIAudio_VoiceOver_Boot.wav`](https://github.com/acidanthera/OcBinaryData/blob/master/Resources/Audio/AXEFIAudio_VoiceOver_Boot.wav) under EFI/OC/Resources/Audio +* **VolumeAmplifier**: 0 + * Multiplication coefficient for system volume to raw volume linear translation from 0 to 1000, see [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info on calculation + +**Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support + +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards +* **KeyForgetThreshold**: `5` + * The delay between each key input when holding a key down, for best results use `5` milliseconds +* **KeyMergeThreshold**: `2` + * The length of time that a key will be registered before resetting, for best results use `2` milliseconds +* **KeySupport**: `YES` + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi +* **KeySupportMode**: `Auto` + * Keyboard translation for OpenCore +* **KeySwap**: `NO` + * Swaps `Option` and `Cmd` key +* **PointerSupport**: `NO` + * Used for fixing broken pointer support, commonly used for Z87 Asus boards +* **PointerSupportMode**: + * Specifies OEM protocol, currently only supports Z87 and Z97 ASUS boards so leave blank +* **TimerResolution**: `50000` + * Set architecture timer resolution, Asus Z87 boards use `60000` for the interface. Settings to `0` can also work for some + +**Output**: Relating to visual output + +* **TextRenderer**: `BuiltinGraphics` + * Used for fixing resoltuion of OpenCore itself, `Resolution` must be set to `Max` to work correctly +* **ConsoleMode**: [Blank] + * Specifies Console output size, best to keep it blank +* **Resolution**: `Max` + * Sets OpenCore's resolution, `Max` will use the highest avalible reolution or can be specified (`WxH@Bpp (e.g. 1920x1080@32) or WxH (e.g. 1920x1080)`) +* **ClearScreenOnModeSwitch**: NO + * Needed for when half of the previously drawn image remains, will force black screen before switching to TextMode. Do note that this is only required in cases when using `System` TextRenderer +* **IgnoreTextInGraphics**: NO + * Fix for UI corruption when both text and graphics outputs, only relevant for users using `System` TextRenderer +* **ProvideConsoleGop**: YES + * Enables GOP(Graphics output Protcol) which the macOS bootloader requires for console handle, **required for graphical output once the kernel takes over** +* **DirectGopRendering**: NO + * Use builtin graphics output protocol renderer for console, mainly relevant for MacPro5,1 users +* **ReconnectOnResChange**: NO +* **ReplaceTabWithSpace**: NO + * Depending on the firmware, some system may need this to properly edit files in the UEFI shell when unable to handle Tabs. This swaps it for spaces instead-but majority can ignore it but do note that ConsoleControl set to True may be needed +* **SanitiseClearScreen**: NO + * Fixes High resolutions displays that display OpenCore in 1024x768, only relevant for users using `System` TextRenderer + +**Protocols**: (Most values can be ignored here as they're meant for real Macs/VMs) + +* **AppleSmcIo**: NO + * Reinstalls Apple SMC I/O, this is the equivlant of VirtualSMC.efi which is only needed for users using FileVault +* **FirmwareVolume**: NO + * Fixes UI regarding Filevault, set to YES for better FileVault compatibility +* **HashServices**: NO + * Fixes incorrect cursor size when running FileVault, set to YES for better FileVault compatibility +* **UnicodeCollation**: NO + * Some older firmware have broken Unicode collation, fixes UEFI shell compatibility on these systems(generally IvyBridge and older) + + +**Quirks**: + +* **ExitBootServicesDelay**: `0` + * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 +* **IgnoreInvalidFlexRatio**: NO + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems +* **ReleaseUsbOwnership**: NO + * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` +* **RequestBootVarFallback**: YES + * Request fallback of some Boot prefixed variables from `OC_VENDOR_VARIABLE_GUID` to `EFI_GLOBAL_VARIABLE_GUID`. Used for fixing boot options. +* **RequestBootVarRouting**: YES + * Redirects AptioMemeoryFix from `EFI_GLOBAL_VARIABLE_GUID` to `OC\_VENDOR\_VARIABLE\_GUID`. Needed for when firmware tries to delete boot entries and is recommended to be enabled on all systems for correct update installation, Startup Disk control panel functioning, etc. +* **UnblockFsConnect**: NO + * Some firmware block partition handles by opening them in By Driver mode, which results in File System protocols being unable to install. Mainly relevant for HP systems when no drives are listed + +## Cleaning up + +And now you're ready to save and place it into your EFI under EFI/OC. + +For those having booting issues, please make sure to read the [Troubleshooting section](/troubleshooting/troubleshooting.md) first and if your questions are still unanswered we have plenty of resources at your disposal: + +* [AMD OS X Discord](https://discord.gg/QuUWg7) +* [r/Hackintosh Subreddit](https://www.reddit.com/r/hackintosh/) + +**Sanity check**: + +So thanks to the efforts of Ramus, we also have an amazing tool to help verify your config for those who may have missed something: + +* [**Sanity Checker**](https://opencore.slowgeek.com) + +# AMD BIOS Settings + +**Disable:** + +* Fast Boot +* Compatibility Support Module (CSM)(**Must be off, GPU errors like `gIO` are common when this option in enabled**) + +**Enable:** + +* Above 4G decoding(**This must be on, if you can't find the option then add `npci=0x2000` to boot-args. Do not have both this option and npci enabled at the same time**) +* EHCI/XHCI Hand-off +* OS type: Windows 8.1/10 UEFI Mode + +# [Post-install](/post-install/README.md) diff --git a/README.md b/README.md index 617399e455..e1298aa7b5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Introduction -* Last edited: March 15, 2020 -* Supported version: 0.5.6 + +* Supported version: 0.5.7 * [GitHub Pages link with Darkmode support](https://khronokernel.github.io/Opencore-Vanilla-Desktop-Guide/) ### About @@ -11,7 +11,7 @@ Please remember that OpenCore is still new and currently in beta. While quite st Lastly, this guide is only meant to be a starting point in your journey with OpenCore and not recommended for beginners unless absolutely necessary. For those starting, please see the [r/Hackintosh Vanilla Desktop Guide](https://hackintosh.gitbook.io/-r-hackintosh-vanilla-desktop-guide/). And those who have issues can visit both the [r/Hackintosh subreddit](https://www.reddit.com/r/hackintosh/) and [r/Hackintosh discord](https://discord.gg/u8V7N5C) for more help. -**This guide supports 0.5.6**, newer versions will require you to read the [Differences.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Differences/Differences.pdf). Guide will be updated soon after each [OpenCore release](https://github.com/acidanthera/OpenCorePkg/releases) +**This guide supports 0.5.7**, newer versions will require you to read the [Differences.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Differences/Differences.pdf). Guide will be updated soon after each [OpenCore release](https://github.com/acidanthera/OpenCorePkg/releases) ### Advantages of OpenCore @@ -44,8 +44,8 @@ Lastly, this guide is only meant to be a starting point in your journey with Ope * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\) - * If this can't be turned off in the BIOS\(or even found\) please consider patching it out. See [Fixing CFG Lock](extras/msr-lock.md) for more info. +* CFG Lock(MSR 0xE2 write protection) + * If this can't be turned off in the BIOS(or even found) please consider patching it out. See [Fixing CFG Lock](extras/msr-lock.md) for more info. * AMD CPU users don't need to worry about. **Enable:** diff --git a/SUMMARY.md b/SUMMARY.md index 2a779f119a..794be4cba4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -24,7 +24,8 @@ ## AMD Config.plist -* [AMD](/AMD/AMD-config.md) +* [Bulldozer/Jaguar](AMD/fx.md) +* [Zen](AMD/zen.md) ## Post Install diff --git a/clover-conversion/Clover-boot-arg.md b/clover-conversion/Clover-boot-arg.md index 240ad4ceda..77f1b2a3c2 100644 --- a/clover-conversion/Clover-boot-arg.md +++ b/clover-conversion/Clover-boot-arg.md @@ -1,7 +1,6 @@ # Clover Boot Arg Conversion -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 This section is mainly used for explaining what boot-args are no longer relevant, it's quite common for users to be still carrying legacy args which have little to no real affect in newer versions of macOS or have little use in OpenCore diff --git a/clover-conversion/Clover-config.md b/clover-conversion/Clover-config.md index d44baf17ea..50b9d5fe3c 100644 --- a/clover-conversion/Clover-config.md +++ b/clover-conversion/Clover-config.md @@ -1,7 +1,6 @@ # Converting common properties from Clover to Opencore -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So this little(well not so little as I reread this...) page is for users who are having issues migrating from Clover to OpenCore as some of their legacy quirks are required or the Configuration.pdf isn't well suited for laptop users. diff --git a/clover-conversion/README.md b/clover-conversion/README.md index 28c4da07a6..5cc665a0de 100644 --- a/clover-conversion/README.md +++ b/clover-conversion/README.md @@ -1,7 +1,6 @@ # Converting from Clover to OpenCore -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So you see the new fancy Opencore bootloader and just dying to try it out, well you've come to the right place! Many things in Clover have feature parity with Opencore but many do not, here we'll be going over what you can bring over and what you cannot. diff --git a/clover-conversion/clover-efi.md b/clover-conversion/clover-efi.md index 656c327f77..87c83373ff 100644 --- a/clover-conversion/clover-efi.md +++ b/clover-conversion/clover-efi.md @@ -1,18 +1,17 @@ # Clover Firmware driver conversion -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 Main thing to note is that you must specify your kexts and firmware drivers in your config.plist, or else they will not load. All kexts that are currently supported on Clover will work on Opencore, firmware drivers are a bit different. **Supported ones:** * ApfsDriverLoader.efi -* FwRuntimeServices.efi -* HFSPlus.efi +* OpenRuntime.efi +* HfsPlus.efi * VBoxHfs.efi * EnhancedFatDxe.efi -* AppleUsbKbDxe.efi +* OpenUsbKbDxe.efi * UsbMouseDxe.efi * XhciDxe.efi * AudioDxe.efi @@ -58,9 +57,9 @@ Main thing to note is that you must specify your kexts and firmware drivers in y * OsxFatBinaryDrv.efi * OsxLowMemFixDrv.efi * SMCHelper.efi -* UsbKbDxe.efi(replaced with AppleUsbKbDxe.efi) +* UsbKbDxe.efi(replaced with OpenUsbKbDxe.efi) # AptioMemoryFix -Well before we actually get started on converting the Clover config, we must first talk about converting from AptioMemoryFix. The main thing to note is that it's inside of OpenCore with FwRuntimeServices being an extension, this means that AptioMemoryFix and that there's also a lot more settings to choose from. Please see the hardware specific sections of the OpenCore guide to know what booter settings your system may require(HEDT like X99 and X299 should look to the closest CPU like Skylake-X should refer to Skylake guide and **read the comments** as they mention specifics for your system). +Well before we actually get started on converting the Clover config, we must first talk about converting from AptioMemoryFix. The main thing to note is that it's inside of OpenCore with OpenRuntime being an extension, this means that AptioMemoryFix and that there's also a lot more settings to choose from. Please see the hardware specific sections of the OpenCore guide to know what booter settings your system may require(HEDT like X99 and X299 should look to the closest CPU like Skylake-X should refer to Skylake guide and **read the comments** as they mention specifics for your system). diff --git a/config-HEDT/broadwell-e.md b/config-HEDT/broadwell-e.md index 9e2fc636c9..3d8cf54579 100644 --- a/config-HEDT/broadwell-e.md +++ b/config-HEDT/broadwell-e.md @@ -1,7 +1,6 @@ # Broadwell-E -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -46,7 +45,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -74,9 +73,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/683011276938543134/683505771153326081/Screen_Shot_2020-02-29_at_7.47.35_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696572990342823976/Screen_Shot_2020-04-05_at_10.11.39_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -84,7 +83,7 @@ This section is allowing devices to be passthrough to macOS that are generally i **Quirks**: -Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio` and `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio`, `DisableVariableWrite` and `RebuildAppleMemoryMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -92,8 +91,8 @@ Settings relating to boot.efi patching and firmware fixes, ones we need to chang * Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful especially on HEDT and Xeon systems * **DisableSingleUser**: NO * Disables the use of `Cmd+S` and `-s`, this is closer to the behaviour of T2 based machines -* **DisableVariableWrite**: NO - * Needed for systems with non-functioning NVRAM, you can verify [here](/post-install/nvram.md) if yours works +* **DisableVariableWrite**: YES + * Needed for systems with non-functioning NVRAM, you can verify [here](/post-install/nvram.md) if yours works. For X99 we'll assume NVRAM doesn't work but post install you can double check * **DiscardHibernateMap**: NO * Reuse original hibernate memory map, only needed for certain legacy hardware * **EnableSafeModeSlide**: YES @@ -102,18 +101,23 @@ Settings relating to boot.efi patching and firmware fixes, ones we need to chang * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS, recommeneded for ATPIO IV firmwares and HEDT platforms * **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: NO + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties @@ -202,12 +206,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -220,7 +226,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -253,7 +262,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -269,7 +278,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -294,9 +303,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -340,15 +349,15 @@ Serial: C02YX0TZHX87 Board Serial: C029269024NJG36CB SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -393,9 +402,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -418,12 +427,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -474,7 +485,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: YES - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -504,12 +515,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/config-HEDT/haswell-e.md b/config-HEDT/haswell-e.md index 08d8e8a2ad..6bd7dac590 100644 --- a/config-HEDT/haswell-e.md +++ b/config-HEDT/haswell-e.md @@ -1,7 +1,6 @@ # Haswell-E -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -46,7 +45,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -74,9 +73,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/683011276938543134/683505771153326081/Screen_Shot_2020-02-29_at_7.47.35_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696572990342823976/Screen_Shot_2020-04-05_at_10.11.39_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -84,7 +83,7 @@ This section is allowing devices to be passthrough to macOS that are generally i **Quirks**: -Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio` and `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio`, `DisableVariableWrite` and `RebuildAppleMemoryMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -92,8 +91,8 @@ Settings relating to boot.efi patching and firmware fixes, ones we need to chang * Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful especially on HEDT and Xeon systems * **DisableSingleUser**: NO * Disables the use of `Cmd+S` and `-s`, this is closer to the behaviour of T2 based machines -* **DisableVariableWrite**: NO - * Needed for systems with non-functioning NVRAM, you can verify [here](/post-install/nvram.md) if yours works +* **DisableVariableWrite**: YES + * Needed for systems with non-functioning NVRAM, you can verify [here](/post-install/nvram.md) if yours works. For X99 we'll assume NVRAM doesn't work but post install you can double check * **DiscardHibernateMap**: NO * Reuse original hibernate memory map, only needed for certain legacy hardware * **EnableSafeModeSlide**: YES @@ -102,18 +101,23 @@ Settings relating to boot.efi patching and firmware fixes, ones we need to chang * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS * **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: NO + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer. Mainly relevant for Skylake and newer + ## DeviceProperties @@ -202,12 +206,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -220,7 +226,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -253,7 +262,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -269,7 +278,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -294,9 +303,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -340,15 +349,15 @@ Serial: C02YX0TZHX87 Board Serial: C029269024NJG36CB SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -393,9 +402,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -418,12 +427,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -474,7 +485,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: YES - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -504,12 +515,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/config-HEDT/skylake-x.md b/config-HEDT/skylake-x.md index 56c89a87fa..e635bbe2d1 100644 --- a/config-HEDT/skylake-x.md +++ b/config-HEDT/skylake-x.md @@ -1,7 +1,6 @@ # Skylake-X -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -47,7 +46,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -75,9 +74,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/683011276938543134/683505771153326081/Screen_Shot_2020-02-29_at_7.47.35_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696572196310745128/Screen_Shot_2020-04-05_at_10.07.41_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -85,7 +84,7 @@ This section is allowing devices to be passthrough to macOS that are generally i **Quirks**: -Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio` and `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio`, `RebuildAppleMemoryMap`, `SyncRuntimePermissions` and `SetupVirtualMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -103,18 +102,22 @@ Settings relating to boot.efi patching and firmware fixes, ones we need to chang * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message -* **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS +* **SetupVirtualMap**: NO + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: YES + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer ## DeviceProperties @@ -198,12 +201,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -216,7 +221,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -249,7 +257,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -265,7 +273,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -290,9 +298,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -336,15 +344,15 @@ Serial: C02YX0TZHX87 Board Serial: C029269024NJG36CB SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -389,9 +397,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -414,12 +422,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -470,7 +480,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: NO - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -500,12 +510,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** * VT-x diff --git a/config.plist/coffee-lake.md b/config.plist/coffee-lake.md index 54676a6a70..2e8433f065 100644 --- a/config.plist/coffee-lake.md +++ b/config.plist/coffee-lake.md @@ -1,7 +1,6 @@ # Coffee Lake -* Last edited: March 19, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -50,7 +49,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -78,9 +77,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/683011276938543134/683505771153326081/Screen_Shot_2020-02-29_at_7.47.35_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696572196310745128/Screen_Shot_2020-04-05_at_10.07.41_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -88,12 +87,12 @@ This section is allowing devices to be passthrough to macOS that are generally i **Quirks**: -Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio` and `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, ones we need to change are `DevirtualiseMmio`, `RebuildAppleMemoryMap`, `SyncRuntimePermissions` and `SetupVirtualMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc * **DevirtualiseMmio**: YES - * Reduces Stolen Memory Footprint, expands options for `slide=N` values and very helpful with fixing Memory Allocation issues on Z390 + * Reduces Stolen Memory Footprint, expands options for `slide=N` values and very helpful with fixing Memory Allocation issues on Z390. Requires `ProtectUefiServices` as well on IceLake and Z390 Coffeelake * **DisableSingleUser**: NO * Disables the use of `Cmd+S` and `-s`, this is closer to the behaviour of T2 based machines * **DisableVariableWrite**: NO @@ -106,18 +105,24 @@ Settings relating to boot.efi patching and firmware fixes, ones we need to chang * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and Z390 systems' + * If on Z390, **enable this quirk** * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message -* **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS +* **SetupVirtualMap**: NO + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: YES + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties @@ -136,7 +141,7 @@ The two ig-platform-id's we use are as follows: * `0x3E920003` - this is used when the Desktop iGPU is only used for computing tasks and doesn't drive a display * `0300923E` when hex-swapped -Worth noting that for 10.12 -> 10.13.5, you would need to fake the iGPU to the same values in the Kaby Lake guide, as this was before native Coffee Lake iGPU showed up. 10.13.6 natively supports Coffee Lake +Worth noting that for 10.12 -> 10.13.5, you would need to fake the iGPU to the same values in the Kaby Lake guide, as this was before native Coffee Lake iGPU showed up. 10.13.6 natively supports Coffee Lake We also add 2 more properties, `framebuffer-patch-enable` and `framebuffer-stolenmem`. The first enables patching via WhateverGreen.kext, and the second sets the min stolen memory to 19MB. This is usually unnecessary, as this can be configured in BIOS(64MB recommended) but required when not available. @@ -152,7 +157,7 @@ For users with black screen issues after verbose on B360, B365, H310, H370, Z390 **Special note**: Mobile users should refer to mobile iGPU section for what properties should be used: [iGPU Patching](https://1revenger1.gitbook.io/laptop-guide/prepare-install-macos/display-configuration#igpu-patching) -`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` +`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` * Applies AppleALC audio injection, you'll need to do your own research on which codec your motherboard has and match it with AppleALC's layout. [AppleALC Supported Codecs](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs). @@ -237,12 +242,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -255,7 +262,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -288,7 +298,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -304,7 +314,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -329,9 +339,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -381,15 +391,15 @@ Serial: C02XG0FDH7JY Board Serial: C02839303QXH69FJA SmUUID: DBB364D6-44B2-4A02-B922-AB4396F16DA8 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -434,9 +444,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -459,12 +469,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -515,7 +527,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: NO - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -545,12 +557,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/config.plist/haswell.md b/config.plist/haswell.md index ae86362c07..2c66fc7b9b 100644 --- a/config.plist/haswell.md +++ b/config.plist/haswell.md @@ -1,7 +1,6 @@ # Haswell -* Last edited: March 19, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 **Both Haswell and Broadwell users can follow this** @@ -50,7 +49,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -78,9 +77,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/456913818467958789/681325158815760384/Screen_Shot_2020-02-23_at_7.22.44_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696573787994325013/Screen_Shot_2020-04-05_at_10.15.09_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -88,7 +87,7 @@ This section is allowing spaces to be passthrough to macOS that are generally ig **Quirks**: -Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, one we need to change is `RebuildAppleMemoryMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -106,18 +105,23 @@ Settings relating to boot.efi patching and firmware fixes, for us we care about * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS * **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: NO + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties @@ -166,7 +170,7 @@ We also add 2 more properties, `framebuffer-patch-enable` and `framebuffer-stole **Special note**: Mobile users should refer to mobile iGPU section for what properties should be used: [iGPU Patching](https://1revenger1.gitbook.io/laptop-guide/prepare-install-macos/display-configuration#igpu-patching) -`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` +`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` * Applies AppleALC audio injection, you'll need to do your own research on which codec your motherboard has and match it with AppleALC's layout. [AppleALC Supported Codecs](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs). @@ -251,12 +255,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -269,7 +275,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -302,7 +311,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -318,7 +327,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -343,9 +352,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -400,15 +409,15 @@ Serial: C02M9SYJFY10 Board Serial: C02408101J9G2Y7A8 SmUUID: 7B227BEC-660D-405F-8E60-411B3E4EF055 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -453,9 +462,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -478,12 +487,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -534,7 +545,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: YES - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -564,12 +575,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/config.plist/ivy-bridge.md b/config.plist/ivy-bridge.md index b7f1458e6f..f3572e9d29 100644 --- a/config.plist/ivy-bridge.md +++ b/config.plist/ivy-bridge.md @@ -1,7 +1,6 @@ # Ivy Bridge -* Last edited: March 19, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -48,7 +47,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -76,9 +75,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/456913818467958789/681325158815760384/Screen_Shot_2020-02-23_at_7.22.44_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696573787994325013/Screen_Shot_2020-04-05_at_10.15.09_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -86,7 +85,7 @@ This section is allowing spaces to be passthrough to macOS that are generally ig **Quirks**: -Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, one we need to change is `RebuildAppleMemoryMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -104,18 +103,23 @@ Settings relating to boot.efi patching and firmware fixes, for us we care about * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS * **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: NO + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties ![DeviceProperties](https://i.imgur.com/Aw9t9vI.png) @@ -144,7 +148,7 @@ We also add 2 more properties, `framebuffer-patch-enable` and `framebuffer-stole **Special note**: Mobile users should refer to mobile iGPU section for what properties should be used: [iGPU Patching](https://1revenger1.gitbook.io/laptop-guide/prepare-install-macos/display-configuration#igpu-patching) -`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` +`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` * Applies AppleALC audio injection, you'll need to do your own research on which codec your motherboard has and match it with AppleALC's layout. [AppleALC Supported Codecs](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs). @@ -229,12 +233,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -247,7 +253,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -280,7 +289,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -296,7 +305,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -321,9 +330,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -372,15 +381,15 @@ Serial: C02KCYZLDNCW Board Serial: C02309301QXF2FRJC SmUUID: A154B586-874B-4E57-A1FF-9D6E503E4580 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -425,9 +434,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -450,12 +459,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -506,7 +517,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: YES - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -536,12 +547,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/config.plist/kaby-lake.md b/config.plist/kaby-lake.md index 64d8e824cb..241ca83d14 100644 --- a/config.plist/kaby-lake.md +++ b/config.plist/kaby-lake.md @@ -1,7 +1,6 @@ # Kaby Lake -* Last edited: March 19, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -45,7 +44,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -73,9 +72,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/456913818467958789/681325158815760384/Screen_Shot_2020-02-23_at_7.22.44_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696571557115461632/Screen_Shot_2020-04-05_at_10.04.04_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -83,7 +82,7 @@ This section is allowing spaces to be passthrough to macOS that are generally ig **Quirks**: -Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, ones we need to change are `RebuildAppleMemoryMap`, `SyncRuntimePermissions` and `SetupVirtualMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -101,18 +100,23 @@ Settings relating to boot.efi patching and firmware fixes, for us we care about * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message -* **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS +* **SetupVirtualMap**: NO + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: YES + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties @@ -143,7 +147,7 @@ We also add 2 more properties, `framebuffer-patch-enable` and `framebuffer-stole **Special note**: Mobile users should refer to mobile iGPU section for what properties should be used: [iGPU Patching](https://1revenger1.gitbook.io/laptop-guide/prepare-install-macos/display-configuration#igpu-patching) -`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` +`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` * Applies AppleALC audio injection, you'll need to do your own research on which codec your motherboard has and match it with AppleALC's layout. [AppleALC Supported Codecs](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs). @@ -228,12 +232,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -246,7 +252,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -279,7 +288,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -295,7 +304,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -320,9 +329,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -371,15 +380,15 @@ Serial: C02Z2CZ5H7JY Board Serial: C02928701GUH69FFB SmUUID: AA043F8D-33B6-4A1A-94F7-46972AAD0607 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -424,9 +433,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -449,12 +458,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -505,7 +516,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: NO - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -535,12 +546,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/config.plist/skylake.md b/config.plist/skylake.md index fad3d04da1..c2a6ded9a2 100644 --- a/config.plist/skylake.md +++ b/config.plist/skylake.md @@ -1,7 +1,6 @@ # Skylake -* Last edited: March 19, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Starting Point @@ -45,7 +44,7 @@ For us we'll need a couple of SSDTs to bring back functionality that Clover prov Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI. -For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. +For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well. **Block** @@ -73,9 +72,9 @@ Settings relating to ACPI, leave everything here as default. ## Booter -![Booter](https://cdn.discordapp.com/attachments/456913818467958789/681325158815760384/Screen_Shot_2020-02-23_at_7.22.44_PM.png) +![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696571557115461632/Screen_Shot_2020-04-05_at_10.04.04_PM.png) -This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi +This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi **MmioWhitelist**: @@ -83,7 +82,7 @@ This section is allowing spaces to be passthrough to macOS that are generally ig **Quirks**: -Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap` +Settings relating to boot.efi patching and firmware fixes, ones we need to change are `RebuildAppleMemoryMap`, `SyncRuntimePermissions` and `SetupVirtualMap` * **AvoidRuntimeDefrag**: YES * Fixes UEFI runtime services like date, time, NVRAM, power control, etc @@ -101,18 +100,23 @@ Settings relating to boot.efi patching and firmware fixes, for us we care about * Removes write protection from CR0 register during their execution * **ForceExitBootServices**: NO * Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary -* **ProtectCsmRegion**: NO - * Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary +* **ProtectMemoryRegion**: NO + * Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares * **ProtectSecureBoot**: NO * Fixes secureboot keys on MacPro5,1 and Insyde firmwares +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems * **ProvideCustomSlide**: YES * If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message -* **SetupVirtualMap**: YES - * Fixes SetVirtualAddresses calls to virtual addresses -* **ShrinkMemoryMap**: NO - * Needed for systems with large memory maps that don't fit, don't use unless necessary +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS +* **SetupVirtualMap**: NO + * Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer * **SignalAppleOS**: NO * Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used +* **SyncRuntimePermissions**: YES + * Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer + ## DeviceProperties @@ -143,7 +147,7 @@ We also add 2 more properties, `framebuffer-patch-enable` and `framebuffer-stole **Special note**: Mobile users should refer to mobile iGPU section for what properties should be used: [iGPU Patching](https://1revenger1.gitbook.io/laptop-guide/prepare-install-macos/display-configuration#igpu-patching) -`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` +`PciRoot(0x0)/Pci(0x1f,0x3)` -> `Layout-id` * Applies AppleALC audio injection, you'll need to do your own research on which codec your motherboard has and match it with AppleALC's layout. [AppleALC Supported Codecs](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs). @@ -228,12 +232,14 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w * Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour * **HideSelf**: YES * Hides the EFI partition as a boot option in OC's boot picker -* **PickerAttributes**: +* **ConsoleAttributes**: `0` * Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info +* **PickerAttributes**: `0` + * Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info * **PickerAudioAssist**: NO * Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled * **PollAppleHotKeys**: NO - * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands: + * Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands: * `Cmd+V`: Enables verbose * `Cmd+Opt+P+R`: Cleans NVRAM * `Cmd+R`: Boots Recovery partition @@ -246,7 +252,10 @@ The reason being is that UsbInjectAll reimplements builtin macOS functionality w **Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`) -* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\) +* **AppleDebug**: YES + * Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer +* **DisableWatchDog**: YES + * Disables the UEFI watchdog, can help with early boot issues * **Target**: `67` * Shows more debug information, requires debug version of OpenCore * **DisplayLevel**: `2147483714` @@ -279,7 +288,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req * Self-explanatory, enables or disables * **Path** * Path to file after the `Tools` folder - * ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases) + * ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases) **Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore @@ -295,7 +304,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant * **UIScale**: * `01`: Standard resolution(Clover equivalent is `0x28`) - * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\) + * `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`) * **DefaultBackgroundColor**: Background color used by boot.efi * `00000000`: Syrah Black @@ -320,9 +329,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection Recommended to leave enabled for best security practices -* **nvda\_drv**: <> +* **nvda\_drv**: <> * For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.** -* **prev-lang:kbd**: <> +* **prev-lang:kbd**: <> * Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**): * American: `en-US:0`(`656e2d55533a30` in HEX) * Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt) @@ -368,15 +377,15 @@ Serial: C02S3HYWGG7L Board Serial: C02629102GUGPF7AD SmUUID: 3508AD44-B67D-4AD7-A109-7955130A1033 ``` -The `Type` part gets copied to Generic -> SystemProductName. +The `Type` part gets copied to Generic -> SystemProductName. -The `Serial` part gets copied to Generic -> SystemSerialNumber. +The `Serial` part gets copied to Generic -> SystemSerialNumber. -The `Board Serial` part gets copied to Generic -> MLB. +The `Board Serial` part gets copied to Generic -> MLB. -The `SmUUID` part gets copied toto Generic -> SystemUUID. +The `SmUUID` part gets copied toto Generic -> SystemUUID. -We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) +We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address) **Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"** @@ -421,9 +430,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your Only drivers present here should be: -* HFSPlus.efi +* HfsPlus.efi * ApfsDriverLoader.efi -* FwRuntimeServices.efi +* OpenRuntime.efi **Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS @@ -446,12 +455,14 @@ Only drivers present here should be: **Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support +* **KeyFiltering**: NO + * Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards * **KeyForgetThreshold**: `5` * The delay between each key input when holding a key down, for best results use `5` milliseconds * **KeyMergeThreshold**: `2` * The length of time that a key will be registered before resetting, for best results use `2` milliseconds * **KeySupport**: `YES` - * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi + * Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi * **KeySupportMode**: `Auto` * Keyboard translation for OpenCore * **KeySwap**: `NO` @@ -502,7 +513,7 @@ Only drivers present here should be: * **ExitBootServicesDelay**: `0` * Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2 * **IgnoreInvalidFlexRatio**: NO - * Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems + * Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems * **ReleaseUsbOwnership**: NO * Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership` * **RequestBootVarFallback**: YES @@ -532,12 +543,12 @@ So thanks to the efforts of Ramus, we also have an amazing tool to help verify y **Disable:** * Fast Boot -* VT-d\(can be enabled if you set `DisableIoMapper` to YES\) +* VT-d(can be enabled if you set `DisableIoMapper` to YES) * CSM * Thunderbolt * Intel SGX * Intel Platform Trust -* CFG Lock\(MSR 0xE2 write protection\)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) +* CFG Lock(MSR 0xE2 write protection)(**This must be off, if you can't find the option then enable both `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled**) **Enable:** diff --git a/extras/acpi.md b/extras/acpi.md index 7a7b32fbc2..f0acc972d4 100644 --- a/extras/acpi.md +++ b/extras/acpi.md @@ -1,7 +1,6 @@ # Getting started with ACPI -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 This section is dedicated to the process of both dumping and making ACPI tables. Due to the many different types of SSDT possible, the guide has been spun out into it's own. diff --git a/extras/gpu-patches.md b/extras/gpu-patches.md index 9a2516089b..2ce8d41408 100644 --- a/extras/gpu-patches.md +++ b/extras/gpu-patches.md @@ -1,7 +1,6 @@ # GPU Patching -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 This little section is for those who need more than what is provided by simple framebuffer patching and WhateverGreen's autopatches: diff --git a/extras/hardware.md b/extras/hardware.md index ce901a4cb3..b9c82d5807 100644 --- a/extras/hardware.md +++ b/extras/hardware.md @@ -1,7 +1,6 @@ # Supported hardware -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So this little section is for those who are wanting to know whether their hardware will work in macOS diff --git a/extras/kalsr-fix.md b/extras/kalsr-fix.md index 1a70b07e03..f99ba5fa20 100644 --- a/extras/kalsr-fix.md +++ b/extras/kalsr-fix.md @@ -1,7 +1,6 @@ # Fixing KASLR slide values -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Fixing KASLR slide values @@ -42,27 +41,35 @@ Fun Fact: It takes around 31 ms to find an area to operate in, manually setting The real fix to this is quite simple actually, the process is both the same for Clover and OpenCore users. What you'll need: -* Clover users: - * [AptioMemoryFix](https://github.com/acidanthera/AptioFixPkg/releases)(Don't mix Aptio fixes together or use OsxAptioFixDrvX, only AptioMemoryFix is supported in this guide) +* **Clover users**: * Clover Shell(most users already have this included, usually called shell64.efi or some variation) -* OpenCore users: - * [FwRuntimeServices](https://github.com/acidanthera/OpenCorePkg/releases) - * [OpenCoreShell](https://github.com/acidanthera/OpenCoreShell/releases)(Don't forget to enable this under `Root->Misc->Tools`) - * Config.plist settings: - * AvoidRuntimeDefrag: `YES` - * Fixes UEFI runtime services like date, time, NVRAM, etc - * DevirtualiseMmio: `YES` - * Reduces stolen memory footprint so we're given more options for slide values, **do not use on AMD CPU based systems** - * EnableSafeModeSlide: `YES` - * Allows us to use slide in safe mode, just so if you have other issues troubleshooting won't mess it up. - * EnableWriteUnprotector: `YES` - * Allows us to write to certain areas that the firmware locks, specifically the CR0 register. - * ProvideCustomSlide: `YES` - * Fixes slide values to *hopefully* use valid regions - * SetupVirtualMap: `YES` - * Creates a layer between macOS and your memory map for greater support and fewer chances of insecure write access. - * ShrinkMemoryMap: `YES` - * Fixes issues with very large memory maps that don't fit, very useful for X99 and X299 platforms and sometimes for Z390. + * This will be found under `EFI/CLOVER/tools` + * If you're missing this, you can grab it from the [CLOVER.zip](https://github.com/CloverHackyColor/CloverBootloader/releases) + * [OcQuirks](https://github.com/ReddestDream/OcQuirks/releases)(Don't mix Aptio fixes together or use OsxAptioFixDrvX, AptioMemoryFix, only OcQuirks is supported in this guide) + * Make sure this is inside `EFI/CLOVER/drivers/UEFI` + * OpenRuntime.efi(Bundled with OcQuirks) + * Make sure this is inside `EFI/CLOVER/drivers/UEFI` + * OcQuirks.plist(Bundled with OcQuirks) + * Make sure this is inside `EFI/CLOVER/drivers/UEFI` + +* **OpenCore users**: + * [OpenRuntime](https://github.com/acidanthera/OpenCorePkg/releases) + * [OpenShell](https://github.com/acidanthera/OpenCorePkg/releases)(Don't forget to enable this under `Root -> Misc -> Tools`) + +And we'll also need to configure our config.plist -> Booter(for OpenCore) or OcQuirks.plist(for Clover): + +* **AvoidRuntimeDefrag**: YES + * Fixes UEFI runtime services like date, time, NVRAM, power control, etc +* **DevirtualiseMmio**: YES + * Reduces Stolen Memory Footprint, expands options for `slide=N` values and very helpful with fixing Memory Allocation issues on Z390. +* **EnableSafeModeSlide**: YES + * Allows for slide values to be used in Safemode +* **ProtectUefiServices**: NO + * Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, 300 series and newer systems like Ice Lake and Comet Lake +* **ProvideCustomSlide**: YES + * This makes sure the kernel will only choose good regions and avoid those that may result inboot failures. It's still random but omits those bad reions in its randomization +* **RebuildAppleMemoryMap**: YES + * Generates Memory Map compatible with macOS, this makes sure our memory map will fit to what the kernel expects ## Prepping the BIOS @@ -83,6 +90,10 @@ The reason we need to reset the memory map is we want it to be more deterministi * `LED lighting`: Sorry mate, time to go. * `Legacy USB`: More Legacy Crap. +## Test boot + +With our adjusted EFI, config.plist and BIOS settings, it's time we try out our new setup. If you still have issues, well it looks like we'll need to do a deep dive and calculate our slide value + ## Finding the Slide value Now what you'll want to do is open the EFI shell in your boot manager of choice and run `memmap`. This will give you a list of all pages and their sizes. This is where the fun begins. @@ -121,7 +132,7 @@ Whenever the returned value is **not** the original(`0x6B500000` vs `0x6B626000` > But wait for just a second, this is higher than 256! -That is correct, this is caused by memory maps that include `Above4GDecoding` sectors which cannot be used. So you will need to keep going down the list until you find a small enough value(for us that would be `0000000000100000`) +That is correct, this is caused by memory maps that include `Above4GDecoding` sectors which cannot be used. So you will need to keep going down the list until you find a small enough value(for us that would be `0000000000100000`). And just to make it a bit clearer on the formula: @@ -150,7 +161,7 @@ Directory of fs0:\ fs0:\> memmap > memmap.txt ``` -This will add a `memmap.txt` file to the root of your EFI, you can then proceed to drop it into the r/Hackintosh discord and type `$slide [insert a link to memmap.txt]`. Do note that this doesn't always work so so may still need to do this manually. +This will add a `memmap.txt` file to the root of your EFI, you can then proceed to drop it into the r/Hackintosh discord in the #Sandbox channel and type `$slide [insert a link to memmap.txt]` ## Using DevirtualiseMmio diff --git a/extras/legacy.md b/extras/legacy.md index bad8e5597b..b5f3ab8854 100644 --- a/extras/legacy.md +++ b/extras/legacy.md @@ -1,7 +1,6 @@ # Legacy Install -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 Wanna try OpenCore but can't boot UEFI based sources? Well don't fret, there's hope for you! OpenCore supports DuetPkg which emulates a UEFI environment for legacy systems. @@ -34,7 +33,7 @@ This will provide you with an EFI partition with a `boot` file, this is where we **Note**: The firmware drivers used for legacy users differ slightly: -* [AppleUsbKbDxe.efi](https://github.com/acidanthera/OpenCorePkg/releases) +* [OpenUsbKbDxe.efi](https://github.com/acidanthera/OpenCorePkg/releases) * For picker support in the Opencore menu * [HfsPlusLegacy.efi](https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlusLegacy.efi) * Needed for seeing Hfs drives like installers, the legacy variant is required for SnadyBridge and older due to missing RDRAND instruction support diff --git a/extras/msr-lock.md b/extras/msr-lock.md index 01f66f6211..a7af8cbce4 100644 --- a/extras/msr-lock.md +++ b/extras/msr-lock.md @@ -1,7 +1,6 @@ # Fixing CFG Lock -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 Do note that this is only recommended for users who have already installed macOS, for users who are ibnstalling for the first time enable `AppleCpuPmCfgLock` and `AppleXcpmCfgLock` under `Kernel -> Quirks` diff --git a/extras/spoof.md b/extras/spoof.md index 3d7289c5aa..1745898020 100644 --- a/extras/spoof.md +++ b/extras/spoof.md @@ -1,7 +1,6 @@ # Disabling GPU -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## GPU Spoof @@ -103,7 +102,7 @@ Example of device path: } -A copy of this SSDT can be found here: [Spoof-SSDT.dsl](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/extra-files/Spoof-SSDT.dsl) You will need [MaciASL](https://github.com/acidanthera/MaciASL/releases) to compile this, reminder that .aml is assembled and .dsl is source code. You can compile with MaciASL by running File -> Save As -> ACPI Machine Language. +A copy of this SSDT can be found here: [Spoof-SSDT.dsl](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/extra-files/Spoof-SSDT.dsl) You will need [MaciASL](https://github.com/acidanthera/MaciASL/releases) to compile this, reminder that .aml is assembled and .dsl is source code. You can compile with MaciASL by running File -> Save As -> ACPI Machine Language. Source: CorpNewt diff --git a/installer-guide/android-install.md b/installer-guide/android-install.md index 1c1bdc334c..b4e8965065 100644 --- a/installer-guide/android-install.md +++ b/installer-guide/android-install.md @@ -1,7 +1,6 @@ # Making the installer with an Android Phone -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 (This is a joke, you can follow this but you really should just buy a $3 USB) diff --git a/installer-guide/linux-install.md b/installer-guide/linux-install.md index 5b6a6d2232..bfa74b1e0c 100644 --- a/installer-guide/linux-install.md +++ b/installer-guide/linux-install.md @@ -1,7 +1,6 @@ # Making the installer in Linux -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 diff --git a/installer-guide/mac-install.md b/installer-guide/mac-install.md index 8cea748152..fd755620cb 100644 --- a/installer-guide/mac-install.md +++ b/installer-guide/mac-install.md @@ -1,8 +1,7 @@ # Making the installer in macOS -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 While you don't need a fresh install of macOS to use OpenCore, some users prefer having a fresh slate with their boot manager upgrades. diff --git a/installer-guide/opencore-efi.md b/installer-guide/opencore-efi.md index bce1d4d99d..f2a4cd5483 100644 --- a/installer-guide/opencore-efi.md +++ b/installer-guide/opencore-efi.md @@ -1,7 +1,6 @@ # Creating the USB -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 Requirements: @@ -25,41 +24,34 @@ Depending on which OS you're on, see your specific section on making the USB, th 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](https://i.imgur.com/PvNIR4y.png) +![base EFI folder](https://cdn.discordapp.com/attachments/683011276938543134/696593582701805568/Screen_Shot_2020-04-05_at_11.33.56_PM.png) 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 + * OpenUsbKbDxe.efi * Used for OpenCore picker on **legacy systems running DuetPkg**, [not recommended and even harmful on Ivy Bridge and newer](https://applelife.ru/threads/opencore-obsuzhdenie-i-ustanovka.2944066/page-176#post-856653) * 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 * HiiDatabase.efi - * Used for fixing GUI support like Shell.efi on Sandy Bridge and older + * Used for fixing GUI support like OpenShell.efi on Sandy Bridge and older + * OpenCanopy.efi + * This is OpenCore's optional GUI, we'll be going over how to set this up in post-install so remove this for now * **Remove everything from Tools:** - * BootKicker.efi - * Used for fixing the Apple picker on genuine Macs - * CleanNvram.efi - * We'll be using OpenCore's built-in function - * GopStop.efi - * Used for [testing GOP](https://github.com/acidanthera/OpenCorePkg/blob/master/Application/GopStop/README.md) - * HdaCodecDump.efi - * Used for finding info for AudioDxe setup, this is not covered in this guide so not needed - * VerifyMsrE2.efi - * Used for [verifying MSR lock](/extras/msr-lock.md), for install we can ignore + * Way to many to list them all, but I recommend keeping OpenShell.efi for troubleshooting pruposes A cleaned up EFI: -![Clean EFI](https://i.imgur.com/2INJYol.png) +![Clean EFI](https://cdn.discordapp.com/attachments/683011276938543134/696593842849316904/Screen_Shot_2020-04-05_at_11.34.58_PM.png) 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](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/clover-conversion/clover-efi.md) for more info on supported drivers and those merged into OpenCore. Here's what a populated EFI can look like: -![Populated EFI folder](https://i.imgur.com/HVuyghf.png) +![Populated EFI folder](https://cdn.discordapp.com/attachments/683011276938543134/696594137591578644/Screen_Shot_2020-04-05_at_11.36.13_PM.png) **Reminder**: diff --git a/installer-guide/winblows-install.md b/installer-guide/winblows-install.md index fc27468d59..a996c1b076 100644 --- a/installer-guide/winblows-install.md +++ b/installer-guide/winblows-install.md @@ -1,7 +1,6 @@ # Making the installer in Windows -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 While you don't need a fresh install of macOS to use OpenCore, some users prefer having a fresh slate with their boot manager upgrades. diff --git a/ktext.md b/ktext.md index afc2b45803..d72ebe5a85 100644 --- a/ktext.md +++ b/ktext.md @@ -1,7 +1,6 @@ # Gathering files -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 This section is for gathering miscellaneous files for booting macOS, we do expect you to know your hardware well before starting and hopefully made a Hackintosh before as we won't be deep diving in here. @@ -17,12 +16,12 @@ These are the drivers used by OpenCore, for the majority of systems you only nee * Needed for seeing APFS volumes(ie. macOS) * [HfsPlus.efi](https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus.efi) **or** [VboxHfs.efi](https://github.com/acidanthera/AppleSupportPkg/releases) * Needed for seeing HFS volumes(ie. macOS Installers and Recovery partitions/images). **Do not mix HFS drivers** -* [FwRuntimeServices.efi](https://github.com/acidanthera/OpenCorePkg/releases) +* [OpenRuntime.efi](https://github.com/acidanthera/OpenCorePkg/releases) * Replacement for [AptioMemoryFix.efi](https://github.com/acidanthera/AptioFixPkg), used as an extension for OpenCore to help with patching boot.efi for NVRAM fixes and better memory management. For legacy users: -* [AppleUsbKbDxe.efi](https://github.com/acidanthera/OpenCorePkg/releases) +* [OpenUsbKbDxe.efi](https://github.com/acidanthera/OpenCorePkg/releases) * Used for OpenCore picker on **legacy systems running DuetPkg**, [not recommended and even harmful on UEFI(Ivy Bridge and newer)](https://applelife.ru/threads/opencore-obsuzhdenie-i-ustanovka.2944066/page-176#post-856653) * [NvmExpressDxe.efi](https://github.com/acidanthera/OpenCorePkg/releases) * Used for Haswell and older when no NVMe driver is built into the firmware, not needed if you're not using an NVMe drive diff --git a/misc/credit.md b/misc/credit.md index 37a92e56f3..b6c8bb5ba0 100644 --- a/misc/credit.md +++ b/misc/credit.md @@ -1,7 +1,6 @@ # Credit -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 No good guide is made by one man, here's credit to those who've helped out: diff --git a/post-install/README.md b/post-install/README.md index 27c63a45a6..0a2da42327 100644 --- a/post-install/README.md +++ b/post-install/README.md @@ -1,7 +1,6 @@ # Post Install -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So you've finally finsihed installing macOS with OpenCore but know there's still some things to clean up, well you've come to the right place! diff --git a/post-install/audio.md b/post-install/audio.md index 9e1a250f3f..0a0d4f16a3 100644 --- a/post-install/audio.md +++ b/post-install/audio.md @@ -1,7 +1,6 @@ # Fixing audio with AppleALC -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So to start, we'll assume you already have Lilu and AppleALC installed, if you're unsure if it's been loaded correctly you can run the following in terminal(This will also check if AppleHDA is loaded, as without this AppleALC has nothing to patch): diff --git a/post-install/iservices.md b/post-install/iservices.md index ca3e4c6e57..86e64f1642 100644 --- a/post-install/iservices.md +++ b/post-install/iservices.md @@ -1,7 +1,6 @@ # Fixing iMessage and other services with OpenCore -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 This page is for those having iMessage and other iServices issues, this is a very basic guide so will not go as in-depth into the issues as some other guides. This specific guide is a translation and reinterpretation of the AppleLife Guide on fixing iService: [Как завести сервисы Apple - iMessage, FaceTime, iCloud](https://applelife.ru/posts/727913) diff --git a/post-install/nvram.md b/post-install/nvram.md index f016db6072..41c2d4040f 100644 --- a/post-install/nvram.md +++ b/post-install/nvram.md @@ -1,7 +1,6 @@ # Emulated NVRAM -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So this section is for those who don't have native NVRAM, the most common hardware to have incompatible native NVRAM with macOS are X99 and some X299 series chipsets: @@ -58,7 +57,7 @@ Within your config.plist: * **Booter**: * `DisableVariableWrite`: set to `YES` -* **Misc -> Security**: +* **Misc -> Security**: * `ExposeSensitiveData`: set to `0x3` * **NVRAM**: * `LegacyEnable`: set to `YES` @@ -68,7 +67,7 @@ Within your config.plist: And within your EFI: -* `FwRuntimeServices.efi` driver(this is needed for proper sleep, shutdown and other services to work correctly +* `OpenRuntime.efi` driver(this is needed for proper sleep, shutdown and other services to work correctly Now grab the 'LogoutHook.command' and place it somewhere safe (e.g. within your user directory, as shown below): diff --git a/post-install/oc2hdd.md b/post-install/oc2hdd.md index 21165b38a1..d56fe5c0f5 100644 --- a/post-install/oc2hdd.md +++ b/post-install/oc2hdd.md @@ -1,7 +1,6 @@ # Moving OpenCore from USB to macOS Drive -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Grabbing OpenCore off the USB diff --git a/post-install/security.md b/post-install/security.md index fffc7c7ed5..e1eedb6e4c 100644 --- a/post-install/security.md +++ b/post-install/security.md @@ -1,7 +1,6 @@ # Security and FileVault -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 So something that makes OpenCore truly special is how it's been built with security in mind which is quite rare especially in the Hackintosh community. Well here we'll be going through and setting up some of OpenCore's great Security features: @@ -15,28 +14,28 @@ FileVault is macOS's builtin drive encyption, and with OpenCore support for it h To start, you'll need the following .efi drivers: -* FwRuntimeServices.efi - * [AppleUsbKbDxe.efi](https://github.com/acidanthera/AppleSupportPkg/releases) for DuetPkg users(systems without UEFI support) +* OpenRuntime.efi + * [OpenUsbKbDxe.efi](https://github.com/acidanthera/AppleSupportPkg/releases) for DuetPkg users(systems without UEFI support) **Do not use VirtualSMC.efi with OpenCore, its already baked inside**. You do however require VirtualSMC.kext still Setting in your config.plist: -* Misc -> Boot - * `PollAppleHotKeys` set to YES(While not needed can be helpfu\) -* Misc -> Security +* Misc -> Boot + * `PollAppleHotKeys` set to YES(While not needed can be helpfu) +* Misc -> Security * `AuthRestart` set to YES(Enables Authenticated restart for FileVault2 so password is not required on reboot. Can be concidered a security risk so optional) -* NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 +* NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 * `UIScale` set to `02` for high resolution small displays -* UEFI -> Input - * `KeySupport` set to YES(Only when using OpenCore's builtin input, users of AppleUsbKbDxe should avoid) +* UEFI -> Input + * `KeySupport` set to YES(Only when using OpenCore's builtin input, users of OpenUsbKbDxe should avoid) * UEFI -> Output * `ProvideConsoleGOP` to YES -* UEFI -> Protocols +* UEFI -> Protocols * `FirmwareVolume` set to YES * `HashServices` set to YES for Broadwell and older(this includes X99), this is needed for systems with broken SHA-1 hashing * `AppleSmcIo` set to YES(this replaces VirtualSMC.efi) -* UEFI -> Quirks +* UEFI -> Quirks * `RequestBootVarRouting` set to YES * `ExitBootServicesDelay` set to `3000`-`5000` if you recieve `Still waiting for root device` on Aptio IV firmwares(Broadwell and older) diff --git a/post-install/update.md b/post-install/update.md index 3df46a75ea..dd69453db2 100644 --- a/post-install/update.md +++ b/post-install/update.md @@ -1,7 +1,6 @@ # Updating OpenCore and macOS -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 ## Updating OpenCore @@ -38,7 +37,7 @@ So the process goes as follows: * `EFI/BOOT/BOOTx64.efi` * `EFI/OC/OpenCore.efi` - * `EFI/OC/Drivers/FwRuntimeServices`(**Don't forget this one, OpenCore will not boot with mismatched versions**) + * `EFI/OC/Drivers/OpenRuntime`(**Don't forget this one, OpenCore will not boot with mismatched versions**) * You can also update other drivers you have if present, these are just the ones that **must** be updated in order to boot correctly diff --git a/post-install/verbose.md b/post-install/verbose.md index 37091e6118..4f317724b0 100644 --- a/post-install/verbose.md +++ b/post-install/verbose.md @@ -1,7 +1,6 @@ # Fixing Resolution and Verbose -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 Wanting a more clean booting experience with macOS without all that verbose text while booting? Well you need a couple things: diff --git a/troubleshooting/debug.md b/troubleshooting/debug.md index bb000ffdbb..7fc8031eac 100644 --- a/troubleshooting/debug.md +++ b/troubleshooting/debug.md @@ -1,7 +1,6 @@ # OpenCore Debugging -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 Needing to figure out why you're getting issues or stalling? Well, you've come to the right place. @@ -28,7 +27,7 @@ To calculate the target, we can use a HEX calculator and then convert it to deci `0x53` converted to decimal becomes `83` -So we can set `Misc` -> `Debug` -> `Target` -> `83` +So we can set `Misc` -> `Debug` -> `Target` -> `83` **DisplayLevel** @@ -49,7 +48,7 @@ For us we just want the following: Just like with `Target`, we use a HEX calculator then convert to decimal: -`0x80000042` Converted to decimal `Misc` -> `Debug` -> `DisplayLevel` -> `2147483714` +`0x80000042` Converted to decimal `Misc` -> `Debug` -> `DisplayLevel` -> `2147483714` **DisableWatchdog**: YES Disables the UEFI watchdog, used for when OpenCore is stalling on something non-critical. diff --git a/troubleshooting/troubleshooting.md b/troubleshooting/troubleshooting.md index f73b548e24..9775646029 100644 --- a/troubleshooting/troubleshooting.md +++ b/troubleshooting/troubleshooting.md @@ -1,7 +1,6 @@ # General Troubleshooting -* Last edited: March 15, 2020 -* Supported version: 0.5.6 +* Supported version: 0.5.7 This section is for those having issues booting either OpenCore, macOS or having issues inside macOS. This page is devided up into a couple sections: @@ -77,7 +76,7 @@ Another other possible problem is IRQ conflicts, Clover has plenty of different Main things to check: * ScanPolicy set to `0` to show all drives -* Have the proper firmware drivers such as ApfsDriverLoader and HFSPlus(or VBoxHfs) +* Have the proper firmware drivers such as ApfsDriverLoader and HfsPlus(or VBoxHfs) * Enable `AvoidHighAlloc` if you're running a network recovery install ## Black screen after picker @@ -112,7 +111,7 @@ Same fix as `OCB: OcScanForBootEntries failure - Not Found`, OpenCore is unable ## Stuck on `OCABC: Memory pool allocation failure - Not Found` -This is due to either incorrect BIOS settings and/or incorrect Booter values. Make sure config.plist -> Booter -> Quirks is correct and verify your BIOS settings: +This is due to either incorrect BIOS settings and/or incorrect Booter values. Make sure config.plist -> Booter -> Quirks is correct and verify your BIOS settings: * Above4GDecoding is Enabled * CSM is Disabled(Enabling Windows8.1/10 WHQL Mode can do the same on some boards) @@ -123,7 +122,7 @@ This is due to either using a Clover config with OpenCore or using a configurato ## Stuck on `OC: Driver XXX.efi at 0 cannot be found` -Verify that your EFI/OC/Drivers matches up with your config.plist -> UEFi -> Drivers +Verify that your EFI/OC/Drivers matches up with your config.plist -> UEFi -> Drivers ## Stuck on `Buffer Too Small` @@ -164,14 +163,14 @@ Missing or incorrect `Executable path` * AMD kernel patches aren't working(AMD Users only): * Either outdated or missing kernel patches * Incompatible keyboard driver: - * Disable `PollAppleHotKeys` and enable `KeySupport`, then remove [AppleUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) from your config.plist -> UEFI -> Drivers - * If the above doesn't work, reverse: disable `KeySupport`, then add [AppleUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) to your config.plist -> UEFI -> Drivers + * Disable `PollAppleHotKeys` and enable `KeySupport`, then remove [OpenUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) from your config.plist -> UEFI -> Drivers + * If the above doesn't work, reverse: disable `KeySupport`, then add [OpenUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) to your config.plist -> UEFI -> Drivers ## Can't select anything in the picker * Incompatible keyboard driver: - * Disable `PollAppleHotKeys` and enable `KeySupport`, then remove [AppleUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) from your config.plist -> UEFI -> Drivers - * If the above doesn't work, reverse: disable `KeySupport`, then add [AppleUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) to your config.plist -> UEFI -> Drivers + * Disable `PollAppleHotKeys` and enable `KeySupport`, then remove [OpenUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) from your config.plist -> UEFI -> Drivers + * If the above doesn't work, reverse: disable `KeySupport`, then add [OpenUsbKbDxe](https://github.com/acidanthera/OpenCorePkg/releases) to your config.plist -> UEFI -> Drivers ## Stuck on `This version of Mac OS X is not supported: Reason Mac...` @@ -355,7 +354,6 @@ For Skylake-X, many firmwares including Asus and EVGA won't write to all cores. * DRM Broken * "Memory Modules Misconfigured" on MacPro7,1 * Apps crashing on AMD -* No temperature/fan sensor output ## Broken iMessage and Siri @@ -455,6 +453,8 @@ You can double check which controller is XHC0 via IOReg and checking the Vendor * Incorrect resolution with OpenCore * No temperature/fan sensor output * Can't find Windows/Bootcamp drive in picker +* Booting Windows results in Bluescreen or Linux crashes +* Booting Windows error: `OCB: StartImage failed - Already started` * iASL warning, # unresolved ## Can't run `acpidump.efi` @@ -531,6 +531,19 @@ Now to get onto troubleshooting: * Enable `Misc -> Boot -> Hideself` is enabled when Windows bootloader is loacated on the same drive * Enable `Platforminfo -> Generic -> AdviseWindows -> True` if the EFI partition isn't the first on the partition table + +## Booting Windows results in Bluescreen or Linux crashes + +This is due to alignment issues, make sure `SyncRuntimePermissions` is enabled on firmwares supporting MATs. Check your logs whether your fimrware supports Memory Attribute Tables(generally seen on 2018 firmwares and newer) + +Common Windows error code: + +* `0xc000000d` + +## Booting Windows error: `OCB: StartImage failed - Already started` + +This is due to OpenCore getting confused when trying to boot boot Windows and acidentally thinking it's booting OpenCore. This can be avoided by either adding a custom drive path under entires and have Windows with it's bootloader renamed *or* move Windows to it's own drive + ## iASL warning, # unresolved If you try to decompile your DSDT and get an error similar to this: diff --git a/update.md b/update.md deleted file mode 100644 index 750267749e..0000000000 --- a/update.md +++ /dev/null @@ -1,31 +0,0 @@ -# To-do list - -0.5.5 Changes: - -* ~~Remove NullCPUPowerManagement.kext~~ -* ~~Add DummyPowerManagement~~ -* ~~Replace SupportsCsm with AdviseWindows~~ -* ~~Add TakeoffDelay~~ - - -0.5.4 Changes: - -* ~~Remove all mentions of VirtualSMC.efi~~ -* ~~Add info for FileVault, AppleSmcIo~~ - * ~~Reinstalls Apple SMC I/O, this is the equivlant of VirtualSMC.efi~~ -* ~~Add AuthRestart info~~ - * ~~Enables Authenticated restart for FileVault2 so password is not required on reboot. Can be concidered a security risk so optional~~ -* ~~AllowSetDefault~~ - * Allow CTRL+Enter and CTRL+Index to set default boot device in the picker -* ~~Add SupportsCsm info for Windows~~ - * ~~Used for when the EFI partition isn't the first partition on the windows disk~~ -* ~~Add WriteFlash~~ - * Enables writing to flash memory for all added variables, recommeneded for most firmwares -* ~~Add LegacyOverwrite~~ - * ~~Permits overwriting firmware variables from nvram.plist, only needed for systems requiring emulated NVRAM like Z390~~ -* ~~Add AppleXcpmForceBoost~~ - * ~~Forces maximum multiplier, only recommended to enable on scientific or media calculation machines~~ -* ~~Rename UsbKbDxe to AppleUsbKbDxe~~ -* ~~Moved VerifyMsrE2 to OpenCorePkg~~ -* ~~Add IncreasePciBarSize quirk~~ - * ~~Expands IOPCIFamily's size from 1GB to 4GB, enabling Above4GDecoding in the BIOS is a much cleaner and safer approach. Some X99 boards may require this, you'll generally expereince a kernel panic on IOPCIFamily if you need this~~