OC 常见问题解决方案(译自官方文档)
以下分部分慢慢翻譯原文,您需要哪部分的翻譯請(qǐng)直接留言。我有郵箱通知,一天內(nèi)幫你翻譯。
另外還有官方?jīng)]收錄的問(wèn)題:OC 卡 UEFI 啟動(dòng)圖/ 卡 connectting Drivers
常見故障解決/General Troubleshooting
OC 版本: 0.5.9
本文解決關(guān)于 OC、macOS 的啟動(dòng)問(wèn)題,以及 macOS 系統(tǒng)問(wèn)題。 如果您不清楚您的問(wèn)題在 macOS 啟動(dòng)過(guò)程中的確切位置,請(qǐng)閱讀 macOS Boot Process 以清晰地了解更多。
筆記本用戶想把已有的 Clover install 轉(zhuǎn)換成 OpenCore 方案,請(qǐng)見 Clover to OpenCore conversion ,雖然該方案還沒(méi)有完全完成。
如果在這里找不到您的問(wèn)題,請(qǐng)看 the official OpenCore documentation: Configuration.pdf
OpenCore 啟動(dòng)過(guò)程的問(wèn)題
Stuck on no vault provided!
卡在 EndRandomSeed
卡在 [EB|#LOG:EXITBS:START]
看不到 macOS partitions
Black screen after picker
Stuck on OC: OcAppleGenericInput... - Success
Stuck on OCB: OcScanForBootEntries failure - Not Found
Stuck on OCB: failed to match a default boot option
Stuck on OCABC: Memory pool allocation failure - Not Found
Stuck on OCS: No schema for DSDT, KernelAndKextPatch, RtVariable, SMBIOS, SystemParameters...
Stuck on OC: Driver XXX.efi at 0 cannot be found
Stuck on Buffer Too Small
Stuck on Plist only kext has CFBundleExecutable key
Receiving Failed to parse real field of type 1
Stuck after selection macOS partition on OpenCore
Can't select anything in the picker
Stuck on This version of Mac OS X is not supported: Reason Mac...
Couldn't allocate runtime area errors?
SSDTs not being added
Booting OpenCore reboots to BIOS
OCABC: Incompatible OpenRuntime r4, require r10
Stuck on no vault provided!
關(guān)閉您的 Vaulting,位置在 config.plist 里的 Misc -> Security -> Vault ,詳細(xì)設(shè)置如下:
Optional
如果您已經(jīng)運(yùn)行了 sign.command,那么 OC 會(huì)被插入256字節(jié)的 RSA-2048簽名,所以你需要恢復(fù) OpenCore.efi 文件。 原版 OpenCore.efi 可以在這里下載: OpenCorePkg
Note: Vault 和 FileVault 是兩個(gè)不同的東西, 詳見 Security and FileVault
Stuck on OC: Invalid Vault mode
這可能是拼寫錯(cuò)誤, OpenCore 中的選項(xiàng)是區(qū)分大小寫的。請(qǐng)檢查拼寫, Optional 才是對(duì)的,其位于 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]
全稱應(yīng)該是 EfiBoot|#LOG:ExitBootServices:START,由于 OC 貼近底層,所以日志被盡量簡(jiǎn)化了。
實(shí)際上,這和 EndRandomSeed 是完全相同的錯(cuò)誤,所以以下解決方案也適用 EndRandomSeed (日志顯示不太一樣,是因?yàn)?10.15.4 及更高版本更改了調(diào)試協(xié)議):
有幾個(gè)問(wèn)題
Booter 問(wèn)題:
DevirtualiseMmio 可能占用了其他用途所需的寶貴內(nèi)存區(qū)域,你可能需要禁用這個(gè) quirk,或者把被占用的區(qū)域列入白名單保護(hù):Using DevirtualiseMmio 譯者注:打開 DevirtualiseMmio,并把 MmioWhitelist 里的兩個(gè) Address 地址都啟用,就是加入白名單。
SetupVirtualMap 是否需要開啟取決于固件,一般來(lái)說(shuō)應(yīng)該避免使用這個(gè) quirk,但大多數(shù)技嘉用戶以及舊硬件(Broadwell 及更舊的平臺(tái)) 需要這個(gè) quirk 才能啟動(dòng)。
Z490 主板在 啟用 SetupVirtualMap 后會(huì)出現(xiàn)問(wèn)題,尤其是在華碩和 AsRock 主板上。
RebuildAppleMemoryMap 它可能不喜歡你的固件。是否使用這個(gè) quirk 取決于您是否禁用了 EnableWriteUnprotector 和是否在固件里有 Memory Attribute Table 的情況下開啟了 SyncRuntimePermissions。如果你的固件沒(méi)有 MATs,請(qǐng)禁用 RebuildAppleMemoryMap 和 SyncRuntimePermissions, 開啟 EnableWriteUnprotector。
譯得不好,放原文: *
RebuildAppleMemoryMapmay not be a fan of your firmware, use of this quirk is dependant on havingEnableWriteUnprotectordisabled andSyncRuntimePermissionsenabled with the addition of having aMemory Attribute Tablein your firmware. If your firmware doesn't have MATs, disable bothRebuildAppleMemoryMapandSyncRuntimePermissionsthen enableEnableWriteUnprotector.
驗(yàn)證你的主板有沒(méi)有 MATs,檢查日志是否有如下
1 為有,0 為沒(méi)有,沒(méi)有日志的請(qǐng)使用 Debug 版本且把日志級(jí)別調(diào)高
OCABC: MAT support is 1
Kernel 問(wèn)題:
AMD: Missing kernel patches(只適用于 AMD CPUs, 請(qǐng)注意我們是 OpenCore 而不是 Clover。 Clover 用的是 MatchOS 而 OpenCore 用的是 MinKernel 和 Maxkernel)
Intel: 丟失 CFG 或 XCPM patches 補(bǔ)丁
開啟 AppleXcpmCfgLock 和 AppleCpuPmCfgLock, 這個(gè)開關(guān)會(huì)分別禁用 XNU 和 AppleIntelCPUPowerManagement 中的 PKG_CST_CNFIG_CONTROL。不建議用于作為長(zhǎng)期方案,因其會(huì)引發(fā)不穩(wěn)定情況.
另一個(gè)方案是適當(dāng)?shù)亟?CFG-Lock: Fixing CFG Lock
Intel: AppleXcpmExtraMsrs 可能需要, 通常用于奔騰、 HEDT 以及其他macOS不支持的古怪系統(tǒng)。 不適用于 AMD
UEFI 問(wèn)題:
ProvideConsoleGop 您可能忘記了這個(gè)選項(xiàng),該選項(xiàng)是過(guò)渡到下一屏所必須的,這原本是 AptioMemoryFix 的一部分但現(xiàn)在內(nèi)置在 OpenCore 里的這個(gè) quirk 了。 選項(xiàng)位于 UEFI -> Output
IgnoreInvalidFlexRatio 在 Broadwell 及更舊平臺(tái)上要 開啟。 不適用于 AMD 和 英特爾 Skylake 及更高平臺(tái)
看不到 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:
Verify you have added the correct kernel patches to your config(remember, OpenCore patches use MinKernel and MaxKernel while Clover has MatchOS)
Ryzen/Threadripper(17h)
Bulldozer/Jaguar(15h/16h)
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)
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 安裝盤的啟動(dòng)問(wèn)題
Stuck on RTC..., PCI ConfigurationBegins, Previous Shutdown..., HPET, HID: Legacy...
"Waiting for Root Device" or Prohibited Sign error
macOS installer in Russian
macOS Installer being damaged
Stuck on or near IOConsoleUsers: gIOScreenLock...
Scrambled Screen on laptops
Black screen after IOConsoleUsers: gIOScreenLock... on Navi
300 series Intel stalling on apfs_module_start...
Kernel Panic Cannot perform kext summary
Kernel Panic AppleIntelMCEReporter
Kernel Panic AppleIntelCPUPowerManagement
Frozen in the macOS installer after 30 seconds
15h/16h CPU reboot after Data & Privacy screen
Keyboard works but trackpad does not
Sleep crashing on AMD
Kernel Panic on Invalid frame pointer
kextd stall[0]: AppleACPICPU
MediaKit reports not enough space
DiskUtility failing to erase
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:
XLNCUSBFix.kext
If XLNCUSBFix still doesn't work, then try the following:
AMD StopSign-fixv5
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
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:
VoodooGPIO, VoodooInput, and VoodooI2CServices in any order (Found under VoodooI2C.kext/Contents/PlugIns)
VoodooI2C
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 安裝后的問(wèn)題
Broken iMessage and Siri
No on-board audio
BIOS reset or sent into Safemode after reboot/shutdown?
macOS GPU acceleration missing on AMD X570
DRM Broken
"Memory Modules Misconfigured" on MacPro7,1
Apps crashing on AMD
AssetCache Content Caching unavailable in virtual machine
Coffee Lake systems failing to wake
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
Follow directions here after UPDATE 5: Fix web pages
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:
Add igfxonln=1 to boot-args
Make sure you're using WhateverGreen v1.3.8 or newer
其他問(wèn)題
Can't run acpidump.efi
Fixing SSDTTime: Could not locate or download iasl!
Fix Python: Python is not installed or not found on PATH
Windows Startup Disk can't see APFS drives
Incorrect resolution with OpenCore
No temperature/fan sensor output
Can't find Windows/BootCamp drive in picker
"You can't change the startup disk to the selected disk" error
Booting Windows results in BlueScreen or Linux crashes
Booting Windows error: OCB: StartImage failed - Already started
iASL warning, # unresolved
No Volume/Brightness control on external monitors
Disabling SIP
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 EFIOCTools //note that its with forward slashes
fs0:EFIOCTools> 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:
iasl macOS version
iasl Windows version
iasl Linux version
Fix Python: Python is not installed or not found on PATH
Easy fix, download and install the latest python:
macOS link
Windows link
Linux link
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:
SMCAMDProcessor
Still in early beta but great work has been done, note it's been mainly tested on Ryzen
FakeSMC3_with_plugins
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):
00000000 - SIP completely enabled (0x0).
03000000 - Disable kext signing (0x1) and filesystem protections (0x2).
FF030000 - Disable all flags in macOS High Sierra (0x3ff).
FF070000 - Disable all flags in macOS Mojave and in macOS Catalina (0x7ff) as Apple introduced a value for executable policy.
FF0F0000 - Disable all flags in macOS Big Sur (0xfff) which has another new flag for authenticated root.
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
Disable SIP
Mount drive as writable (Run sudo mount -uw / in terminal)
macOS Big Sur
Disable SIP
Mount drive as writable (See below link for command)
Create a new snapshot after the changes (See below link for command)
Tag this snapshot for next boot (See below link for command)
Full credit and command links provided by ASentientBot and @mac_editor:
MacRumors Thread
eGPU.io thread
總結(jié)
以上是生活随笔為你收集整理的OC 常见问题解决方案(译自官方文档)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pixi.js 简单交互事件(点击、缩放
- 下一篇: CAD中的顽固图层删不掉如何解决