OC 常见问题解决方案(译自官方文档)

以下分部分慢慢翻译原文,您需要哪部分的翻译请直接留言。我有邮箱通知,一天内帮你翻译。
另外还有官方没收录的问题:OC 卡 UEFI 启动图/ 卡 connectting Drivers

常见故障解决/General Troubleshooting

  • OC 版本: 0.5.9

本文解决关于 OC、macOS 的启动问题,以及 macOS 系统问题。 如果您不清楚您的问题在 macOS 启动过程中的确切位置,请阅读 macOS Boot Process 以清晰地了解更多。

笔记本用户想把已有的 Clover install 转换成 OpenCore 方案,请见 Clover to OpenCore conversion ,虽然该方案还没有完全完成。

如果在这里找不到您的问题,请看 the official OpenCore documentation: Configuration.pdf

OpenCore 启动过程的问题

Stuck on no vault provided!

关闭您的 Vaulting,位置在 config.plist 里的 Misc -> Security -> Vault ,详细设置如下:

  • Optional

如果您已经运行了 sign.command,那么 OC 会被插入256字节的 RSA-2048签名,所以你需要恢复 OpenCore.efi 文件。 原版 OpenCore.efi 可以在这里下载: OpenCorePkg

Note: Vault 和 FileVault 是两个不同的东西, 详见 Security and FileVault

Stuck on OC: Invalid Vault mode

这可能是拼写错误, OpenCore 中的选项是区分大小写的。请检查拼写, Optional 才是对的,其位于 Misc -> Security -> Vault

卡在 EndRandomSeed

Couple problems:

Booter Issues:

  • DevirtualiseMmio may be taking precious areas in memory that are needed for other uses, you may need to disable this quirk or whitelist the bad regions: Using DevirtualiseMmio
  • SetupVirtualMap may be needed depending on the firmware, generally this quirk should be avoided but most Gigabyte users and older hardware(Broadwell and older) will need this quirk to boot.
    • Z490 boards are known to fail with SetupVirtualMap enabled, especially on Asus and AsRock boards.
  • RebuildAppleMemoryMap may not be a fan of your firmware, use of this quirk is dependant on having EnableWriteUnprotector disabled and SyncRuntimePermissions enabled with the addition of having a Memory Attribute Table in your firmware. If your firmware doesn't have MATs, disable both RebuildAppleMemoryMap and SyncRuntimePermissions then enable EnableWriteUnprotector.

To verify whether your board has MATs, check the logs for something like this:

OCABC: MAT support is 1

Kernel Issues:

  • AMD: Missing kernel patches(only applies for AMD CPUs, make sure they're OpenCore patches and not Clover. Clover uses MatchOS while OpenCore has MinKernel and Maxkernel)
  • Intel: Missing CFG or XCPM patches
    • Enable AppleXcpmCfgLock and AppleCpuPmCfgLock, this disables PKG_CST_CNFIG_CONTROL within the XNU and AppleIntelCPUPowerManagement respectively. Not recommended long term solution as this can cause instability.
    • Alternatively you can properly disable CFG-Lock: Fixing CFG Lock
  • Intel: AppleXcpmExtraMsrs may be required, this is generally meant for Pentiums, HEDT and other odd systems not natively supported in macOS. Do not use on AMD

UEFI Issues:

  • ProvideConsoleGop is likely missing as this is needed for transitioning to the next screen, this was originally part of AptioMemoryFix but is now within OpenCore as this quirk. Can be found under UEFI -> Output
  • IgnoreInvalidFlexRatio missing, this is needed for Broadwell and older. Not for AMD and Skylake or newer

卡在 [EB|#LOG:EXITBS:START]

全称应该是 EfiBoot|#LOG:ExitBootServices:START,由于 OC 贴近底层,所以日志被尽量简化了。
实际上,这和 EndRandomSeed 是完全相同的错误,所以以下解决方案也适用 EndRandomSeed (日志显示不太一样,是因为 10.15.4 及更高版本更改了调试协议):
有几个问题

Booter 问题:

  • DevirtualiseMmio 可能占用了其他用途所需的宝贵内存区域,你可能需要禁用这个 quirk,或者把被占用的区域列入白名单保护:Using DevirtualiseMmio 译者注:打开 DevirtualiseMmio,并把 MmioWhitelist 里的两个 Address 地址都启用,就是加入白名单。
  • SetupVirtualMap 是否需要开启取决于固件,一般来说应该避免使用这个 quirk,但大多数技嘉用户以及旧硬件(Broadwell 及更旧的平台) 需要这个 quirk 才能启动。
    • Z490 主板在 启用 SetupVirtualMap 后会出现问题,尤其是在华硕和 AsRock 主板上。
  • RebuildAppleMemoryMap 它可能不喜欢你的固件。是否使用这个 quirk 取决于您是否禁用了 EnableWriteUnprotector 和是否在固件里有 Memory Attribute Table 的情况下开启了 SyncRuntimePermissions如果你的固件没有 MATs,请禁用 RebuildAppleMemoryMapSyncRuntimePermissions, 开启 EnableWriteUnprotector

译得不好,放原文: * RebuildAppleMemoryMap may not be a fan of your firmware, use of this quirk is dependant on having EnableWriteUnprotector disabled and SyncRuntimePermissions enabled with the addition of having a Memory Attribute Table in your firmware. If your firmware doesn't have MATs, disable both RebuildAppleMemoryMap and SyncRuntimePermissions then enable EnableWriteUnprotector.

验证你的主板有没有 MATs,检查日志是否有如下

1 为有,0 为没有,没有日志的请使用 Debug 版本且把日志级别调高

OCABC: MAT support is 1

Kernel 问题:

  • AMD: Missing kernel patches(只适用于 AMD CPUs, 请注意我们是 OpenCore 而不是 Clover。 Clover 用的是 MatchOS 而 OpenCore 用的是 MinKernelMaxkernel)
  • Intel: 丢失 CFG 或 XCPM patches 补丁
    • 开启 AppleXcpmCfgLockAppleCpuPmCfgLock, 这个开关会分别禁用 XNU 和 AppleIntelCPUPowerManagement 中的 PKG_CST_CNFIG_CONTROL。不建议用于作为长期方案,因其会引发不稳定情况.
    • 另一个方案是适当地禁用 CFG-Lock: Fixing CFG Lock
  • Intel: AppleXcpmExtraMsrs 可能需要, 通常用于奔腾、 HEDT 以及其他macOS不支持的古怪系统。 不适用于 AMD

UEFI 问题:

  • ProvideConsoleGop 您可能忘记了这个选项,该选项是过渡到下一屏所必须的,这原本是 AptioMemoryFix 的一部分但现在内置在 OpenCore 里的这个 quirk 了。 选项位于 UEFI -> Output
  • IgnoreInvalidFlexRatio 在 Broadwell 及更旧平台上要 开启。 不适用于 AMD 和 英特尔 Skylake 及更高平台

看不到 macOS partitions

Main things to check:

  • ScanPolicy set to 0 to show all drives
  • Have the proper firmware drivers such as HfsPlus(Note ApfsDriverLoader shouldn't be used in 0.5.8)
  • Set UnblockFsConnect to True in config.plist -> UEFI -> Quirks. Needed for some HP systems
  • Set UEFI -> APFS to see APFS based drives:
    • EnableJumpstart: YES
    • HideVerbose: YES
    • MinDate: -1
    • MinVersion: -1

Black screen after picker

This is due to missing ConsoleGOP, enable it under your config:

  • UEFI -> Output -> ProvideConsoleGop

Another possibility is that the problem occurres due to RebuildAppleMemoryMap being enabled, disable it under your config:

  • Booter -> Quirks -> RebuildAppleMemoryMap

If this doesn't help, grab the debug versions of OpenCore.efi and BOOTx64.efi and replace them in your EFI. This will show much more info on where your hack is actually getting stuck.

Stuck on OC: OcAppleGenericInput... - Success

So this isn't actually an error, instead OpenCore isn't showing you all the debug info. This is right before/while the kernel is being loaded so things we need to check for:

  • Intel:
    • CFG-Lock disabled in the BIOS or AppleCpuPmCfgLock and AppleCpuPmCfgLock enabled under Kernel -> Quirks
  • AMD:

If this doesn't help, grab the debug versions of OpenCore.efi and BOOTx64.efi and replace them in your EFI. This will show much more info on where your hack is actually getting stuck.

Stuck on OCB: OcScanForBootEntries failure - Not Found

This is due to OpenCore being unable to find any drives with the current ScanPolicy, setting to 0 will allow all boot options to be shown

  • Misc -> Security -> ScanPolicy -> 0

Stuck on OCB: failed to match a default boot option

Same fix as OCB: OcScanForBootEntries failure - Not Found, OpenCore is unable to find any drives with the current ScanPolicy, setting to 0 will allow all boot options to be shown

  • Misc -> Security -> ScanPolicy -> 0

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:

  • Above4GDecoding is Enabled
  • CSM is Disabled(Enabling Windows8.1/10 WHQL Mode can do the same on some boards)
  • BIOS is up-to-date(Z390 and HEDT are known for having poorly written firmwares)

Stuck on OCS: No schema for DSDT, KernelAndKextPatch, RtVariable, SMBIOS, SystemParameters...

This is due to either using a Clover config with OpenCore or using a configurator such as Mackie's Clover and OpenCore configurator. You'll need to start over and make a new config or figure out all the garbage you need to remove from your config. This is why we don't support configurators, they are known for these issues

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

Note that the entries are case-sensitive.

Stuck on Buffer Too Small

  • Enable Above4GDecoding in the BIOS

Stuck on Plist only kext has CFBundleExecutable key

Missing or incorrect Executable path

Receiving "Failed to parse real field of type 1"

  • A value is set as real when it's not supposed to be, generally being that Xcode converted HaltLevel by accident:

    <key>HaltLevel</key>
    
    <real>2147483648</real>
    

    To fix, swap real for integer:

    <key>HaltLevel</key>
    
    <integer>2147483648</integer>
    

Stuck after selection macOS partition on OpenCore

  • CFG-Lock not off(Intel Users only), couple solutions:
    • Patch your MSR E2(Recommended solution)
    • Enable AppleXcpmCfgLock and AppleCpuPmCfgLock, this disables PKG_CST_CNFIG_CONTROL within the XNU and AppleIntelCPUPowerManagement respectively. Not recommended long term solution as this can cause instability.
  • 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 OpenUsbKbDxe from your config.plist -> UEFI -> Drivers
    • If the above doesn't work, reverse: disable KeySupport, then add OpenUsbKbDxe to your config.plist -> UEFI -> Drivers

Can't select anything in the picker

  • Incompatible keyboard driver:
    • Disable PollAppleHotKeys and enable KeySupport, then remove OpenUsbKbDxe from your config.plist -> UEFI -> Drivers
    • If the above doesn't work, reverse: disable KeySupport, then add OpenUsbKbDxe to your config.plist -> UEFI -> Drivers

Stuck on This version of Mac OS X is not supported: Reason Mac...

This error happens when SMBIOS is one no longer supported by that version of macOS, make sure values are set in PlatformInfo->Generic with Automatic enabled. Reminder of supported SMBIOS in macOS 10.15 Catalina:

  • iMac13,x+
  • iMacPro1,1
  • MacPro6,1+
  • MacBook8,1+
  • MacBookAir5,x+
  • MacBookPro9,x+

And reminder, the following SMBIOS require newer versions of macOS:

  • iMac19,x 10.14.4 (18E226)
  • MacPro7,1 10.15.0 (19A583)
  • MacBookAir9,1 10.15.4 (19E287)
  • MacBookPro16,1 10.15.1 (19B2093)
  • MacBookPro16,2 10.15.4 (19E2269)
  • MacBookPro16,3 10.15.4 (19E2269)

Couldn't allocate runtime area errors

See Fixing KASLR slide values

SSDTs not being added

So with OpenCore, there's some extra security checks added around ACPI files, specifically that table length header must equal to the file size. This is actually the fault of iASL when you compiled the file. Example of how to find it:

* Original Table Header:
*     Signature        "SSDT"
*     Length           0x0000015D (349)
*     Revision         0x02
*     Checksum         0xCF
*     OEM ID           "ACDT"
*     OEM Table ID     "SsdtEC"
*     OEM Revision     0x00001000 (4096)
*     Compiler ID      "INTL"
*     Compiler Version 0x20190509 (538510601)

The Length and checksum value is what we care about, so if our SSDT is actually 347 bytes then we want to change Length to 0x0000015B (347)(the 015B is in HEX)

Best way to actually fix this is to grab a newer copy of iASL or Acidanthera's copy of MaciASL and remaking the SSDT

Booting OpenCore reboots to BIOS

  • Incorrect EFI folder structure, make sure all of your OC files are within an EFI folder located on your ESP(EFI system partition)

Directory Structure from OpenCore's DOC

OCABC: Incompatible OpenRuntime r4, require r10

Outdated OpenRuntime.efi, make sure BOOTx64.efi, OpenCore.efi and OpenRuntime are all from the same exact build. Anything mismatched will break booting

  • Note: FwRuntimeServices has been renamed to OpenRuntime with 0.5.7 and newer

macOS installer 安装盘的启动问题

Stuck on RTC..., PCI Configuration Begins, Previous Shutdown..., HPET, HID: Legacy...

Well this general area is where a lot of PCI devices are first setup and configured, and is where most booting issues will happen. Other names include:

  • apfs_module_start...,
  • Waiting for Root device,
  • Waiting on...IOResources...,
  • previous shutdown cause...

The main places to check:

  • Missing EC patch:

    • For desktops, make sure you have your EC SSDT both in EFI/OC/ACPI and ACPI -> Add, double check it's enabled.
    • If you don't have one, grab it here: Getting started with ACPI
  • IRQ conflict:

    • Most common on older laptops and pre-builts, run SSDTTime's FixHPET option and add the resulting SSDT-HPET.aml and ACPI patches to your config( the SSDT will not work without the ACPI patches)
  • PCI allocation issue:

    • UPDATE YOUR BIOS, make sure it's on the latest. Most OEMs have very broken PCI allocation on older firmwares, especially AMD
    • Make sure either Above4G is enabled in the BIOS, if no option available then add npci=0x2000 to boot args.
      • AMD CPU Note: Do not have both the Above4G setting enabled and npci in boot args, they will conflict. This rule does not apply to X99
    • Other BIOS settings that are important: CSM disabled, Windows 8.1/10 UEFI Mode enabled
  • NVMe or SATA issue:

    • Sometimes if either a bad SATA controller or an unsupported NVMe drive are used, you can commonly get stuck here. Things you can check:
      • Not using either a Samsung PM981 or Micron 2200S NVMe SSD
      • Samsung 970EvoPlus running the latest firmware(older firmwares were known for instability and stalls, see here for more info)
      • SATA Hot-Plug is disabled in the BIOS(more commonly to cause issues on AMD CPU based systems)
      • Ensure NVMe drives are set as NVMe mode in BIOS(some BIOS have a bug where you can set NVMe drives as SATA)
  • NVRAM Failing:

    • Common issue HEDT and 300 series motherboards, you have a couple paths to go down:
      • 300 Series Consumer Intel: See Getting started with ACPI on making SSDT-PMC.aml
      • HEDT: See Emulating NVRAM on how to stop NVRAM write, note that for install you do not need to run the script. Just setup the config.plist
  • RTC Missing:

    • Commonly found on 300 series and X299/Cascade Lake-X refresh motherboards, caused by the RTC clock being disabled by default. See Getting started with ACPI on creating an SSDT-AWAC.aml
    • Some drunk firmware writer at HP also disabled the RTC on the HP 250 G6 with no way to actually re-enable it, for users cursed with such hardware you'll need to create a fake RTC clock for macOS to play with:

Example of what a disabled RTC with no way to enable looks like(note that there is no value to re-enable it like STAS):

"Waiting for Root Device" or Prohibited Sign error

Generally seen as a USB error, couple ways to fix:

  • If you're hitting the 15 port limit, you can temporarily get around this with XhciPortLimit but for long term use, we recommend making a USBmap. CorpNewt also has a guide for this: USBmap Guide

  • Another issue can be that certain firmware won't pass USB ownership to macOS, to fix this we can enable UEFI -> Quriks -> ReleaseUsbOwnership in your config.plist

    • Enabling XHCI Handoff in the BIOS can fix this as well
  • For 15h and 16h AMD CPUs, you may need to add the following:

  • If XLNCUSBFix still doesn't work, then try the following:

Another possible issue is missing USB ports in your DSDT, macOS isn't great at finding hardware and needs things explicitly defined to it for many things. This means if a USB port is not defined, macOS won't be able to find it. To fix this we use USBInjectAll to fix booting, note that this only works on Intel USB Chipsets and should only be required on Broadwell and older systems(with some newer AsRock boards also needing it)

For AMD users with missing ports in DSDT, you're gonna have to try all the ports in your system and pray, generally 3.1 AsMedia ports work without issue.

On rare occasions(mainly laptops), the SATA controller isn't officially supported by macOS. To resolve this, we'll want to do a few things:

  • Set SATA to AHCI mode in the BIOS
    • macOS doesn't support hardware RAID or IDE mode properly.
    • Note drives already using Intel Rapid Storage Technology(RST, soft RAID for Windows and Linux) will not be accesible in macOS.
  • SATA-unsupported.kext
    • Adds support to obscure SATA controllers, commonly being laptops.
    • For very legacy SATA controllers, AHCIPortInjector.kext may be more suitable.

Note that you will only experience this issue after installing macOS onto the drive, booting the macOS installer will not error out due to SATA issues.

macOS installer in Russian

Default sample config is in Russian because slavs rule the Hackintosh world, check your prev-lang:kbd value under NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82. Set to 656e2d55533a30 for American: en-US:0 and a full list can be found in AppleKeyboardLayouts.txt. For those using with a simple text editor(ie. UEFI Shell, Notepad++, etc), 656e2d55533a30 will become ZW4tVVM6MA==

You may also need to reset NVRAM in the boot picker as well

Still didn't work? Well time for the big guns. We'll force remove that exact property and let OpenCore rebuild it:

NVRAM -> Block -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> Item 0 then set it Type String and Value prev-lang:kbd

macOS Installer being damaged

If you've download macOS before October 2019, you likely have an expired macOS Installer certificate, there's 2 ways to fix this:

  • Download newest copy of macOS
  • Change date in terminal to when the certificate was valid

For the latter:

  • Disconnect all networking devices(Ethernet, disable Wifi)
  • In the recovery terminal set to September 1st, 2019:
date 0901000019

Stuck on or near IOConsoleUsers: gIOScreenLock.../gIOLockState (3...

This is right before the GPU is properly initialized, verify the following:

  • GPU is UEFI capable(GTX 7XX/2013+)
  • CSM is off in the BIOS
  • Forcing PCIe 3.0 link speed
  • Double check that ig-platform-id and device-id are valid if running an iGPU.
    • Desktop UHD 630's may need to use 00009B3E instead
  • Trying various WhateverGreen Fixes
    • -igfxmlr boot argument. This can also manifest as a "Divide by Zero" error.
  • Coffee Lake iGPU users may also need igfxonln=1 in 10.15.4 and newer

Scrambled Screen on laptops

Scrambled Screen
Enable CSM in your UEFI settings. This may appear as "Boot legacy ROMs" or other legacy setting.

Black screen after IOConsoleUsers: gIOScreenLock... on Navi

  • Add agdpmod=pikera to boot args
  • Switch between different display outputs
  • Try running MacPro7,1 SMBIOS with the boot-arg agdpmod=ignore

For MSI Navi users, you'll need to apply the patch mentioned here: Installer not working with 5700XT #901

Specifically, add the following entry under Kernel -> Patch:

Base:
Comment: Navi VBIOS Bug Patch
Count: 1
Enabled: YES
Find: 4154592C526F6D2300
Identifier: com.apple.kext.AMDRadeonX6000Framebuffer
Limit: 0
Mask:
MinKernel:
MaxKernel:
Replace: 414D442C526F6D2300
ReplaceMask: 
Skip: 0

300 series Intel stalling on apfs_module_start...

Commonly due to systems running AWAC clocks, pleas see the Getting started with ACPI section

Kernel Panic Cannot perform kext summary

Generally seen as an issue surrounding the prelinked kernel, specifically that macOS is having a hard time interpreting the ones we injected. Verify that your kexts are in the correct order(master then plugins, Lilu always being first) and that kexts with executables have them and plist only kexts don't.

Kernel Panic AppleIntelMCEReporter

With macOS Catalina, dual socket support is broken, and a fun fact about AMD firmware is that some boards will actually report multiple socketed CPUs. To fix this, add AppleMCEReporterDisabler to both EFI/OC/Kexts and config.plist -> Kernel -> Add

Kernel Panic AppleIntelCPUPowerManagement

This is likely due to faulty or outright missing NullCPUPowerManagement, the one hosted on AMD OSX's Vanilla Guide is corrupted. Go yell at Shannee to fix it. To fix the issue, remove NullCPUPowerManagement from Kernel -> Add and EFI/OC/Kexts then enable DummyPowerManagement under Kernel -> Quirks

Frozen in the macOS installer after 30 seconds

This is likely due to faulty or outright missing NullCPUPowerManagement, the one hosted on AMD OSX's Vanilla Guide is corrupted. Go yell at Shannee to fix it. To fix the issue, remove NullCPUPowerManagement from Kernel -> Add and EFI/OC/Kexts then enable DummyPowerManagement under Kernel -> Quirks

15h/16h CPU reboot after Data & Privacy screen

Follow directions here after UPDATE 2: Fix Data and Privacy reboot

macOS frozen right before login

This is a common example of screwed up TSC, for most system add CpuTscSync

For Skylake-X, many firmwares including Asus and EVGA won't write to all cores. So we'll need to reset the TSC on cold boot and wake with TSCAdjustReset. Compiled version can be found here: TSCAdjustReset.kext. Note that you must open up the kext(ShowPackageContents in finder, Contents -> Info.plist) and change the Info.plist -> IOKitPersonalities -> IOPropertyMatch -> IOCPUNumber to the number of CPU threads you have starting from 0(i9 7980xe 18 core would be 35 as it has 36 threads total)

The most common way to see the TSC issue:

Case 1 Case 2

Keyboard works but trackpad does not

Make sure that VoodooInput is listed before VoodooPS2 and VoodooI2C kexts in your config.plist.

VoodooI2C Troubleshooting

Check the order that your kexts load - make they match what is shown under Gathering Files:

  1. VoodooGPIO, VoodooInput, and VoodooI2CServices in any order (Found under VoodooI2C.kext/Contents/PlugIns)
  2. VoodooI2C
  3. Satellite/Plugin Kext

Make sure you have SSDT-GPIO in EFI/OC/ACPI and in your config.plist under ACPI -> Add in your config.plist. If you are still having issues, reference the Getting Started With ACPI GPIO page.

Kernel Panic on Invalid frame pointer

So this is due to some issue around the Booter -> Quirks you set, main things to check for:

  • DevirtualiseMmio
    • Certain MMIO spaces are still required to function correctly, so you'll need to either exclude these regions in Booter -> MmioWhitelist or disable this quirk outright
  • SetupVirtualMap
    • required for firmwares that need virtual memory address to be corrected, this is commonly found on laptops and Gigabyte systems
    • Note that Icelake's memory protections break this quirks so avoid it
  • RebuildAppleMemoryMap
    • Makes sure the memory map is compatible with macOS, some OEMs like Lenovo do not like this quirk so disable it

kextd stall[0]: AppleACPICPU

This is due to either a missing SMC emulator or broken one, make sure of the following:

  • Lilu and VirtualSMC are both in EFI/OC/kexts and in your config.plist
  • Lilu is before VirtualSMC in the kext list
  • Last resort is to try FakeSMC instead, do not have both VirtualSMC and FakeSMC enabled

MediaKit reports not enough space

This error is due to a small EFI, by default Windows will create a 100MB EFI whereas macOS will expect 200MB. To get around this you have 2 way to go:

  • Expand the EFI of the drive to 200MB(See Google on how)
  • Format the entire drive instead of just the partition
    • Note by default Disk Utility only shows partitions, press Cmd/Win+2 to show all devices(Alternatively you can press the view button)
Default Show All Devices(Cmd+2)

DiskUtility failing to erase

This is either 1(or more) of 5 issues:

  • Formatting partition and not the drive, see MediaKit reports not enough space
  • DiskUtility has an odd bug where it will fail on first erase, try erasing again
  • SATA Hot-plug support in the BIOS is causing issues(try disabling this option)
  • Old firmware, make sure the drive is on the latest firmware
  • And finally, you may just have a bad drive

macOS 安装后的问题

Broken iMessage and Siri

  • En0 device not setup as Built-in, couple ways to fix:
    • Find PCI path for your NIC with gfxutil(ie: ethernet, GBE1, ). Then via DeviceProperties in your config.plist, apply the property of built-in with the value of 01 and type Data. Hackintool can also grab the PciRoot path if you're having issues with gfxutil. Recommended method
    • NullEthernet.kext + SSDT-RMNE. Only recommended when first solution doesn't work

If these fixes do not work, see the Fixing iServices page for more in-depth guide.

No on-board audio

Refer to Fixing Audio with AppleALC section

BIOS reset or sent into Safemode after reboot/shutdown

Issue with AppleRTC, quite a simple fix:

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

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

The following boot-arg should handle 99% of cases(pair this with RTCMemoryFixup):

rtcfx_exclude=00-FF

If this works, slowly shorten the excluded area until you find the part macOS is getting fussy on

macOS GPU acceleration missing on AMD X570

Verify the following:

  • GPU is UEFI capable(GTX 7XX/2013+)
  • CSM is off in the BIOS
  • Forcing PCIe 3.0 link speed

DRM Broken

See Fixing DRM page

"Memory Modules Misconfigured" on MacPro7,1

Add MacProMemoryNotificationDisabler kext to EFI/OC/Kexts and Kernel -> Add. Note that this kext has an odd quirk here it requires WhateverGreen to function correctly.

Apps crashing on AMD

Easy fix, buy Intel

So with AMD, whenever Apple calls CPU specific functions the app will either not work or outright crash. Here are some apps and their "fixes":

  • Adobe Products don't always work
    • Some fixes can be found here: Adobe Fixes
    • Do note these fixes just disables functionality, they're not really fixes
  • Virtual Machine running off of AppleHV's framework will not work(ie: Parallels 15, VMware)
    • VirtualBox works fine as it doesn't use AppleHV
    • VMware 10 and older can work as well
    • Parallels 13.1.0 and older are known to work as well
  • Docker broken
    • Docker toolbox is the only solution as it's based off of VirtualBox, many features are unavailable with this version
  • Xcode Apple Watch simulator is broken in Catalina
    • Mojave works fine
  • IDA Pro won't install
    • There's an Intel specific check in the installer, app itself is likely fine
  • 15/16h CPU web pages crashing

Sleep crashing on AMD

This is generally seen on AMD who use the chipset's USB controller, specifically for the Ryzen series and newer. The main way to tell if you're having issues with this is checking logs after either sleeping or waking:

  • In terminal:
    • log show --last 1d | grep "Wake reason" verify it

Should result in something like this:

```text`
Sleep transition timed out after 180 seconds while calling power state change callbacks. Suspected bundle: com.apple.iokit.IOUSBHostFamily.


You can double check which controller is XHC0 via IOReg and checking the Vendor ID(1022 for AMD chipset). The fix for this sleep issue is either:

* Avoid the chipset USB all together(ideally set `_STA = 0x0` to disable the controller outright with an SSDT)
* Correct the USBX power properties to what the controller expects

## AssetCache Content Caching unavailable in virtual machine

Errors such as:
```bash
$ sudo AssetCacheManagerUtil activate
AssetCacheManagerUtil[] Failed to activate content caching: Error Domain=ACSMErrorDomain Code=5 "virtual machine"...

arise due to VMM flag being exposed by sysctl.

Apply VmAssetCacheEnable kernel patch to disguise the flag and allow normal operation.

Coffee Lake systems failing to wake

In macOS 10.15.4, there were some changes made to AGPM that can cause wake issues on Coffee Lake systems. Specifically displays hooked up to the iGPU would fail to wake. To resolve this:

其他问题

Can't run acpidump.efi

Call upon OpenCore shell:

shell> fs0: //replace with proper drive

fs0:\> dir //to verify this is the right directory

  Directory of fs0:\

   01/01/01 3:30p  EFI

fs0:\> cd EFI\OC\Tools //note that its with forward slashes

fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z

Fixing SSDTTime: Could not locate or download iasl!

This is usually due to an outdated version of Python, try either updating Python or add iasl to the scripts folder for SSDTTime:

Fix Python: Python is not installed or not found on PATH

Easy fix, download and install the latest python:

Make sure Add Python to PATH

Windows Startup Disk can't see APFS drives

  • Outdated BootCamp drivers(generally ver 6.0 will come with brigadier, BootCamp Utility in macOS provides newer version like ver 6.1). CorpNewt has also forked brigadier fixing these issues as well: CorpNewt's brigadier

Incorrect resolution with OpenCore

  • Follow Fixing Resolution and Verbose for correct setup, set UIScale to 02 for HiDPI
  • Users also have noticed that setting ConsoleMode to Max will sometimes fail, leaving it empty can help

No temperature/fan sensor output

So couple things:

  • iStat Menus doesn't yet support MacPro7,1 readouts
  • VirtualSMC's bundled sensors do not support AMD

For iStat, you'll have to wait for an update. For AMD users, you can use either:

Note for AMD with FakeSMC:

  • FileVault support requires more work with FakeSMC
  • Make sure no other SMC kexts are present, specifically those from VirtualSMC

Can't find Windows/BootCamp drive in picker

So with OpenCore, we have to note that legacy Windows installs are not supported, only UEFI. Most installs now are UEFI based but those made by BootCamp Assistant are legacy based, so you'll have to find other means to make an installer(Google's your friend). This also means MasterBootRecord/Hybrid partitions are also broken so you'll need to format the drive you want to install onto with DiskUtility. See the Multiboot Guide on best practices

Now to get onto troubleshooting:

  • Make sure Misc -> Security -> ScanPolicy is set to 0 to show all drives
  • Enable Misc -> Boot -> Hideself is enabled when Windows bootloader is located on the same drive

"You can't change the startup disk to the selected disk" error

This is commonly caused by irregular partition setup of the Windows drive, specifically that the EFI is not the first partition. To fix this, we need to enable this quirk:

  • PlatformInfo -> Generic -> AdviseWindows -> True

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 firmware 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 Windows and accidentally thinking it's booting OpenCore. This can be avoided by either move Windows to it's own drive or adding a custom drive path under BlessOverride. See Configuration.pdf for more details.

iASL warning, # unresolved

If you try to decompile your DSDT and get an error similar to this:

iASL Warning: There were 19 external control methods found during disassembly, but only 0 were resolved (19 unresolved)

This happens when one ACPI table requires the rest for proper referencing, it does not accept the creation of DSDTs as we're only using it for creating a select few SSDTs. For those who are worried, you can run the following:

iasl * [insert all ACPI files here]

No Volume/Brightness control on external monitors

Oddly enough, macOS has locked down digital audio from having control. To bring back some functionality, the app MonitorControl has done great work on improving support in macOS

Disabling SIP

SIP or proper known as System Integrity Protection, is a security technology that attempts to prevent any malicious software and the end user from damaging the OS. First introduced with OS X El Capitan, SIP has grown over time to control more and more things in macOS, including limiting edits to restricted file locations and 3rd party kext loading with kextload(OpenCore is unaffected as kexts are injected at boot). To resolve this, Apple has provided numerous configuration options in the NVRAM variable csr-active-config which can either be set in the macOS recovery environment or with OpenCore's NVRAM section(The latter will be discussed below).

You can choose different values to enable or disable certain flags of SIP. Some useful tools to help you with these are CsrDecode and csrstat. Common values are as follows (bytes are pre-hex swapped for you):

Note: Disabling SIP with OpenCore is quite a bit different compared to Clover, specifically that NVRAM variables will not be overwritten unless explicitly told so under the Delete section. So if you've already set SIP once either via OpenCore or in macOS, you must override the variable:

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

Writing to the macOS system partition

With macOS Catalina and newer, Apple split the OS and user data into 2 volumes where the system volume is read-only by default. To make these drives writable we'll need to do a few things:

macOS Catalina

  1. Disable SIP
  2. Mount drive as writable (Run sudo mount -uw / in terminal)

macOS Big Sur

  1. Disable SIP
  2. Mount drive as writable (See below link for command)
  3. Create a new snapshot after the changes (See below link for command)
  4. Tag this snapshot for next boot (See below link for command)

Full credit and command links provided by ASentientBot and @mac_editor:

posted @ 2020-07-17 09:53  蓝天上的云℡  阅读(38341)  评论(0编辑  收藏  举报