Skip to content

Latest commit

 

History

History
592 lines (397 loc) · 19.9 KB

Clover-config.md

File metadata and controls

592 lines (397 loc) · 19.9 KB
search

Converting common properties from Clover to OpenCore

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.

Kexts and Firmware drivers

See Kexts and Firmware drivers.

Acpi

ACPI Renames:

So with the transition from Clover to OpenCore we should start removing unneeded patches you may have carried along for some time:

  • EHCI Patches: Recommended to power off the controller with SSDT-EHCx_OFF. Skylake and newer users do not have an EHCI controller so no need for this.
    • change EHC1 to EH01
    • change EHC2 to EH02
  • XHCI Patches: Not needed once an Injector kext is made
    • change XHCI to XHC
    • change XHC1 to XHC
  • SATA patches: Purely cosmetic in macOS now
    • change SAT0 to SATA
    • change SAT1 to SATA
  • IMEI Patches: Handled by WhateverGreen
    • change HECI to IMEI
    • change HEC1 to IMEI
    • change MEI to IMEI
    • change IDER to MEID
  • GFX patches: Handled by WhateverGreen
    • change GFX0 to IGPU
    • change PEG0 to GFX0
    • change PEGP to GFX0
    • change SL01 to PEGP
  • EC Patches: See here on best solution: Getting started with ACPI
    • change EC0 to EC
    • change H_EC to EC
    • change ECDV to EC
    • change PGEC to EC
  • Audio renames: Handled by AppleALC
    • change HDAS to HDEF
    • change CAVS to HDEF
    • change AZAL to HDEF
    • change ALZA to HDEF
    • change B0D3 to HDAU
  • Z390 BIOS RTC bug fix: See here on best solution: Getting started with ACPI(SSDT-AWAC)
    • change STAS to [Blank]
    • Fix Z390 BIOS DSDT Device(RTC) bug
    • Fix 300-series RTC Bug
  • NVMe patches: NVMeFix fixes power management
    • change PXSX to ANS1
    • change PXSX to ANS2
  • Airport/WiFi Patches: AirportBrcmFixup
    • change PXSX to ARPT
  • Other purely cosmetic patches:
    • change LPC0 to LPCB(use SSDT-SBUS-MCHC for fixing SMBUS support)
    • change PC00 to PCIO
    • change FPU to MATH
    • change TMR to TIMR
    • change PIC to IPIC
    • change GBE1 to ETH0

Patches

  • TgtBridge patches:

    • ACPI -> Patch -> ... -> Base
  • DisableASPM:

    • DeviceProperties -> Add -> PciRoot... -> pci-aspm-default | Data | <00>
  • HaltEnabler:

    • ACPI -> Quirks -> FadtEnableReset -> YES

Fixes:

  • FixAirport:

  • FixIPIC:

    • CorpNewt's SSDTTime to make the proper SSDT, FixHPET - Patch out IRQ Conflicts
  • FixSBUS:

  • FixShutdown:

    • FixShutdown-USB-SSDT
    • _PTS to ZPTS Patch
    • This will not harm Windows or Linux installs as this is just adding missing methods that should've been there to start with. Blame the firmware writers
  • FixDisplay:

    • Manual framebuffer patching, WhateverGreen does most of the work already
  • FixHDA:

    • Handled by AppleALC
  • FixHPET:

    • CorpNewt's SSDTTime to make the proper SSDT, FixHPET - Patch out IRQ Conflicts
  • FixSATA:

    • Kernel -> Quirks -> ExternalDiskIcons -> YES
  • FixADP1:

    • Renames device AC0_ to ADP1, see Rename-SSDT for an example
    • Also injects Name (_PRW, Package (0x02) {0x1C,0x03}) into the device if not present. Source
  • FixRTC:

    • CorpNewt's SSDTTime to make the proper SSDT, FixHPET - Patch out IRQ Conflicts
  • FixTMR:

    • CorpNewt's SSDTTime to make the proper SSDT, FixHPET - Patch out IRQ Conflicts
  • AddPNLF:

  • AddMCHC:

  • AddIMEI:

    • SSDT-SBUS-MCHC
    • WhateverGreen will also handle fixing IMEI naming
    • For Sandy Bridge on Z77 or IvyBridge on Z67, the IMEI will need to be faked: SSDT-IMEI
  • FakeLPC:

    • DeviceProperties -> Add -> PciRoot... -> device-id
    • You'll want to spoof it to a supported LPC controller already in AppleLPC
  • FixIntelGfx:

    • WhateverGreen handles this
  • AddHDMI:

    • WhateverGreen handles this

DropTables:

  • ACPI -> Delete

SSDT:

Boot

Boot Argument:

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> boot-args

NeverHibernate:

  • Misc -> Boot -> HibernateMode -> None

Default Boot Volume:

  • Misc -> Security -> AllowSetDefault -> True
    • Press Ctrl+Enter in the picker to set default device
  • Alternative is Startup Disk in macOS's System Preferences, just like on real Macs

Boot Graphics

DefaultBackgroundColor:

  • NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> DefaultBackgroundColor
    • 00000000: Syrah Black
    • BFBFBF00: Light Gray
    • To calculate your own, convert an RGB value to HEX

EFILoginHiDPI:

  • Clover only flag, for OpenCore UI scaling see UIScale and UEFI -> Output

flagstate:

  • NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> flagstate | Data | <>
    • 0 -> <00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000(dumped from a mac)
    • NVRAM location needs to be double checked for this one

UIScale:

  • UEFI -> Quirks -> UIScale | Integer |
    • 1 —> 1x scaling, corresponds to normal displays.
    • 2 —> 2x scaling, corresponds to HiDPI displays.
    • -1 —> leaves the current variable unchanged.
    • 0 —> automatically chooses scaling based on the current resolution.

CPU

Type:

  • PlatformInfo -> Generic -> ProcessorType
  • See AppleSmBios.h for all supported values

HWPEnable: Better alternative is to properly manage MSR 0x770 with HWPEnable

QEMU: Proper VM/KVM support is implemented in OpenCore

TurboDisable: Better alternative is to control your frequencies with CPUFriend or ssdtPRGen

Devices

USB:

  • FixOwnership: UEFI -> Quirk -> ReleaseUsbOwnership
    • You should also enable XHCI Hand-off in your BIOS
  • ClockID: DeviceProperties -> Add -> PciRoot... -> AAPL,clock-id
  • HighCurrent: DeviceProperties -> Add -> PciRoot... -> AAPL, HighCurrent
    • Irrelevant for OS X 10.11 and newer
    • Newer variant is either PowerProperties defined in IOUSBHostFamily.kext -> AppleUSBHostPlatformProperties or added with a USBX SSDT for Skylake SMBIOS and newer

Audio:

For the following, you will need to know your PciRoot for your audio controller and its name(commonly known as HDEF but also HDAS, HDAU and such), this can be found with gfxutil:

path/to/gfxutil -f HDEF
  • Inject: DeviceProperties -> Add -> PciRoot... -> layout-id
  • AFGLowPowerState: DeviceProperties -> Add -> PciRoot... -> AFGLowPowerState -> <01000000>
  • ResetHDA: UEFI -> Audio -> ResetTrafficClass
    • Optionally there's also AppleALC's alctsel=1 boot-arg or JackFix

Add Properties:

  • No equivalent, need to specify with a PciRoot path

Properties:

  • DeviceProperties -> Add

FakeID: For the following, you will need to know your PciRoot for your device and apply their properties with DeviceProperties -> Add, PciRoot can be found with gfxutil

  • USB

    • device-id
    • device_type
    • device_type
  • IMEI

    • device-id
    • vendor-id
  • WIFI

    • name
    • compatible
  • LAN

    • device-id
    • compatible
    • vendor-id
  • XHCI

    • device-id
    • device_type: UHCI
    • device_type: OHCI

device_type: EHCI

  • device-id
  • AAPL,current-available
  • AAPL,current-extra
  • AAPL,current-available
  • AAPL,current-extra
  • AAPL,current-in-sleep
  • built-in

device_type: XHCI

  • device-id
  • AAPL,current-available
  • AAPL,current-extra
  • AAPL,current-available
  • AAPL,current-in-sleep
  • built-in

ForceHPET:

  • UEFI -> Quirks -> ActivateHpetSupport

Disable Drivers

Just don't add your drivers to UEFI -> Drivers, alternatively add # in-front of the driver in your config.plist for OpenCore to skip it.

Gui

Graphics

  • Note: PciRoot... should be replaced with

InjectIntel:

InjectAti:

  • DeviceProperties -> Add -> PciRoot... -> device-id
    • ie: <B0670000> for the R9 390X
  • DeviceProperties -> Add -> PciRoot... -> @0,connector-type
    • You may need to add additional Connectors (ie. @1,connector-type, @2,connector-type) for the amount of ports you have. See here for the list of connector types:
LVDS                    <02 00 00 00>
DVI (Dual Link)         <04 00 00 00>
DVI (Single Link)       <00 02 00 00>
VGA                     <10 00 00 00>
S-Video                 <80 00 00 00>
DP                      <00 04 00 00>
HDMI                    <00 08 00 00>
DUMMY                   <01 00 00 00>

InjectNVIDIA:

FakeIntel:

  • DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) -> device-id
    • ie. 66010003 for the HD 4000
  • DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) -> vendor-id -> <86800000>

FakeAti:

  • DeviceProperties -> Add -> PciRoot... -> device-id
    • ie: <B0670000> for the R9 390X
  • DeviceProperties -> Add -> PciRoot... -> ATY,DeviceID
    • ie: <B067> for the R9 390X
  • DeviceProperties -> Add -> PciRoot... -> @0,compatible
    • ie. ATY,Elodea for HD 6970M
  • DeviceProperties -> Add -> PciRoot... -> vendor-id-> <02100000>
  • DeviceProperties -> Add -> PciRoot... -> ATY,VendorID -> <0210>

Note: See here on making an SSDT for GPU Spoofing, DeviceProperties injection via OpenCore seems to fail sometimes when trying to spoof a GPU: Renaming GPUs For others like InjectAti, see the Sample.dsl in the WhateverGreen docs

Custom EDID

Dual Link:

  • DeviceProperties -> Add -> PciRoot... -> AAPL00,DualLink
    • 1 -> <01000000>
    • 0 -> <00000000>

NVCAP

display-cfg:

  • DeviceProperties -> Add -> PciRoot... -> @0,display-cfg
  • See fassl's post on the matter: NVIDIA injection

LoadVBios:

  • See sample.dsl for more info on custom VBIOS injection

PatchVBios: See LoadVBIOS

NVIDIAGeneric:

  • DeviceProperties -> Add -> PciRoot... -> model | string | Add the GPU name

NVIDIASingle: See disabling unsupported GPUs

NVIDIANoEFI:

  • DeviceProperties -> Add -> PciRoot... -> NVDA,noEFI | Boolean | True
  • See FredWst' comment for more info: GT 640 scramble

ig-platform-id:

  • DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) -> APPL,ig-platform-id

BootDisplay:

  • DeviceProperties -> Add -> PciRoot... -> @0,AAPL,boot-display

RadeonDeInit:

In most cases it is advisable to use WhateverGreen, which handles this automatically. This SSDT is not needed if WhateverGreen is used.

Kernel and Kext Patches

KernelPm:

  • Kernel -> Quirks -> AppleXcpmCfgLock -> YES
  • Note that Clover will auto-apply this patch without setting it if the MSR E2 was locked, so you may actually need AppleXcpmCfgLock even if Clover didn't

AppleIntelCPUPM:

  • Kernel -> Quirks -> AppleCpuPmCfgLock -> YES

DellSMBIOSPatch:

An odd quirk for Dell systems running APTIO V

  • Kernel -> Quirks -> CustomSMBIOSGuid -> YES
  • PlatformInfo -> UpdateSMBIOSMode -> Custom

KextsToPatch:

KernelToPatch:

ForceKextsToLoad:

  • Kernel -> Force

Kernel LAPIC:

  • Kernel -> Quirks -> LapicKernelPanic -> YES

KernelXCPM:

  • Kernel -> Quirks -> AppleXcpmExtraMsrs -> YES

For an extensive list of patches, please compare OpenCore's CommonPatches.c with Clover's kernel_patcher.c. Some patches are not transferred over so if you're having issues this is the section to check, example is converting the KernelIvyBridgeXCPM() to OpenCore:

Base: _xcpm_bootstrap
Comment: _xcpm_bootstrap (Ivy Bridge) 10.15
Count: 1
Enabled: YES
Find: 8D43C43C22
Identifier: kernel
Limit: 0
Mask: FFFF00FFFF
MinKernel: 19.
MaxKernel: 19.99.99
Replace: 8D43C63C22
ReplaceMask: 0000FF0000
Skip: 0

Source

For Low end Haswell+ like Celerons, please see here for recommended patches: Bugtracker Issues 365

USB Port Limit Patches:

  • Kernel -> Quirks -> XhciPortLimit -> YES

External Icons Patch:

  • Kernel -> Quirks -> ExternalDiskIcons -> YES
  • Used for when you internal disk are seen as external on macOS

AppleRTC

Issue with AppleRTC, quite a simple fix:

  • config.plist -> Kernel -> Quirks -> DisableRtcChecksum -> true

For some versions of MacOS (e.g. Catalina), boot.efi may write to the RTC. To prevent this, the below needs to be added as well:

  • config.plist -> NVRAM -> Add -> 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:rtc-blacklist = <58 59>

Note: If you still have issues, you'll need to use RTCMemoryFixup and exclude ranges. See here for more info, and here for a guide.

FakeCPUID:

  • Kernel -> Emulate:
    • Cpuid1Mask: <Clover_FCPUID_Extended_to_4_bytes_Swapped_Bytes> | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
      • ex(0x0306A9): A9060300 00000000 00000000 00000000
    • Cpuid1Data(Swap 00 for FF if needing to swap with a longer value)
      • ex: FFFFFFFF 00000000 00000000 00000000

Note: Finding CPUID's for Intel can be a bit harder than looking at Intel ARK, easiest way to find it is via Microsoft's Intel microcode update notes

Rt Variables

ROM:

  • No direct translation for UseMacAddr0 as you need to provide your hardware ROM, can be found in System Preferences -> Network -> Advanced -> Hardware
  • Also verify your En0 is still built-in when running OpenCore, this can break iMessage and iCloud when there's no built-in property.

MLB:

  • PlatformInfo -> Generic -> MLB

BooterConfig:

  • UEFI -> Quirks -> UIScale | Integer |
    • 1 —> 1x scaling, corresponds to normal displays.
    • 2 —> 2x scaling, corresponds to HiDPI displays.
    • -1 —> leaves the current variable unchanged.
    • 0 —> automatically chooses scaling based on the current resolution.

CsrActiveConfig:

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config:

    • 0x0: 00000000
    • 0x3: 03000000
    • 0x67: 67000000
    • 0x3E7: E7030000

SMBIOS

Product Name:

  • PlatformInfo -> Generic -> SystemProductName

Serial Number:

  • PlatformInfo -> Generic -> SystemSerialNumber

Board Serial Number:

  • PlatformInfo -> Generic -> MLB

SmUUID:

  • PlatformInfo -> Generic -> SystemUUID

Memory:

  • PlatformInfo -> CustomMemory -> True
  • PlatformInfo -> Memory

Slots AAPL Injection:

  • DeviceProperties -> Add -> PciRoot... -> APPL,slot-name | string | Add slot

System Parameters

CustomUUID:

InjectSystemID:

  • Also legacy as it's used for replicating Chameleon user's UUIDs

BacklightLevel:

  • Property set in NVRAM
  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> backlight-level | Data | <Insert value>
    • 0x0101 -> <0101>

InjectKexts:

  • No equivalent but you really have no excuse to keep FakeSMC inside macOS

NoCaches:

  • This only works up to 10.7 on Clover, and OpenCore requires an OS that supports a prelinked(10.7) so there can't be an equivalent

ExposeSysVariables:

  • Just add your SMBIOS properties under PlatformInfo
  • Confusing quirk tbh, it's not even mentioned in more recent versions of the Clover docs on AppleLife

NVIDIAWeb:

  • What this does is apply sudo nvram nvda_drv=1 on every boot. To get a similar effect you can find it under the following path:
  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> nvda_drv: <31>

Status

Section finished 100%:

  • Boot Graphics
  • Disable Drivers
  • KernelAndKextPatches
  • RTVariables
  • SMBIOS
  • SystemParameters

Section mostly finished:

  • Acpi
  • Boot
  • CPU
  • Device

Section missing:

  • GUI