OpenCore 安装卡住的拯救手册Q&A

概述

本文最后更新:2022年10月13日

本文内容主要针对正在迁移到 OpenCore 这个天坑的用户,主要涉及常见的界面调整,-v 跑代码时卡住等问题,本文长期整理更新,遇到文中没有提到的问题欢迎反馈。本文涉及内容较多,可按下 Ctrl + F 或 Command + F 直接查找关键词。或到问答社区进行提问交流。

 

新手常见错误

Q1:启动时显示

OCABC: Incompatible OpenRuntime r10, require r11
Halting on critical error

A:此问题由升级替换文件不完全造成,/EFI/OC 目录下的 OpenCore.efi,/EFI/OC/Drivers 目录下的 OpenRuntime.efi,必须来自同一版本。

OpenCore 的关键文件:BOOTx64.efi、OpenCore.efi、OpenRuntime.efi、OpenCanopy.efi(用于支持官方主题服务)

 

Q2:启动时显示

This version of Mac OS X is not supported on this platform!

A:问题原因:使用了较新的机型ID,但是这个机型不支持旧版本系统,例如:MacPro7,1 仅能安装 macOS 10.15 及以上,不支持 macOS 10.13-10.14;另一种可能的原因是反过来,即:使用了太旧的机型ID,但这个机型不支持最新版本的系统。

 

Q3:

configuration requires vault but no vault provided!

A:这是最常见的新手错误了,修改 Config.plist 中:

Misc→Security→Vault→Optional

将 Vault 值设置为 Optional,注意大小写敏感。

 

Q4:OpenCore 启动界面不显示安装 U 盘,macOS 系统盘,Recovery 等选项。

A:修改 config.plist:

Misc→Security→ScanPolicy→ 0

填写 0 会扫描所有内容并开启所有选项。其它可选值:3870467,默认:983299

 

Q5:

oc:Image Kexts\XXXX.kext\Contents\MacOS\XXXX.kext is missing for kext XXXX.kext ()
Halting on critical error

A:上面的代码中,XXXX.kext 可能是任何值,例如 VirtualSMC.kext,CPUFriend.kext,AppleALC.kext 等等,但是问题的原因是一样的:在 /EFI/OC/Kexts/ 目录下没有对应的 kext 文件。解决方法也很简单,添加对应的 kext,或者在 config.plist 中禁用相关的 kext。下载 kext 可以看看 黑苹果星球整理的月度 kext 更新包。除此之外还有 XXX.efi is missing 之类的也是同类型错误,只是 XXX.efi 文件一般位于 /EFI/OC/Drivers/ 目录下。

 

Q7:

Start RandomSeed
End RandomSeed
+++++++++++++++++++++

A:修改 config.plist 中:

Booter:

以下选项项取决于 Memory Attribute Table(MAT)支持情况,如何确定 MAT 支持?

使用 Debug 版 OpenCore,并在 config 中设置以下选项:

  • Misc→Debug→Target→67

在 EFI 日志中查找以下内容:

OCABC: MAT support is 1

以上 1 代表支持,0 代表不支持 MAT。

如果支持:

  • EnableWriteUnprotector→False
  • RebuildAppleMemoryMap→True
  • SyncRuntimePermissions→True

如果不支持:

  • EnableWriteUnprotector→True
  • RebuildAppleMemoryMap→False
  • SyncRuntimePermissions→False

其它:

  • SetupVirtualMap→False/No
    • 大部分 GA 主板,以及更老的硬件如第 4 代酷睿需要开启;
    • Icelake 以及 Comet Lake 不能开启此项;
    • AMD B550 和 A520(以及最新 BIOS 的 X570)不能开启此项;
    • AMD 线程撕裂者 TRx40 不能开启此项;
    • 华硕 X299 v3006 及以上版本的 BIOS(包括其他品牌 X299 + 最新 BIOS)不能开启此项;
  • DevirtualiseMmio
    • 部分硬件平台并不能很好的适应这个 Quirk,例如部分 Z390 和绝大部分的 X99 和 X299。它的工作方式是占用 MMIO 区域并删除运行时属性,使它们可用作存放内核的空间,注意这个 Quirk 在绝大部分的系统上并不要求一定要填写 MmioWhiteList,但在某些非常难安装的平台(例如:线程撕裂者 TRX40 19H 或 10300H),在启用此 Quirk 的同时还需设置 MmioWhiteList,使用 Debug 版 OpenCore 并开启 DevirtualiseMmio,你会在日志中找到类似以下内容:
21:495 00:009 OCABC: MMIO devirt start
21:499 00:003 OCABC: MMIO devirt 0x60000000 (0x10000 pages, 0x8000000000000001) skip 0
21:503 00:003 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0
21:506 00:003 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0
21:510 00:003 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0
21:513 00:003 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0
21:516 00:003 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 0
21:520 00:003 OCABC: MMIO devirt end, saved 278608 KB
  • 将 devirt 后面的 0x 60000000 等 6 组十六进制数字转换为十进制:
    • MMIO devirt 0x60000000 -> 1610612736
    • MMIO devirt 0xFE000000 -> 4261412864
    • MMIO devirt 0xFEC00000 -> 4273995776
    • MMIO devirt 0xFED00000 -> 4275044352
    • MMIO devirt 0xFEE00000 -> 4276092928
    • MMIO devirt 0xFF000000 -> 4278190080
  • 然后填写到 MmioWhiteList 即可:

  • Kernel:
    • AMD 系统需要内核补丁
    • Intel 系统:
      • BIOS 中解锁 CFG-Lock,没有该选项的情况开启以下选项:
        • AppleXcpmCfgLock→True/Yes
        • AppleCpuPmCfgLock→True/Yes
  • UEFI:
    • Quirks
      • IgnoreInvalidFlexRatio→True/Yes
        • 此项仅适用于第4代酷睿或更老平台,不适用于 AMD 和第6代酷睿及更新平台。
    •  Output
      • ProvideConsoleGop→True/Yes
        • 部分平台可能需要此项以正常过渡到下一个屏幕,此功能原是 AptioMemoryFix 的一部分,现在在 OpenCore 中则是这个 Quirk。

 

Q8:

[EB|`B:WFDW] Err(0xE), 0 @ LocHB 71B4903C-14EC-42C4-BDC6-CE1449930E49
[EB|#LOG:DT] 2020-03-09T09:40:46 [EB|#LOG:EXITBS:START] 2020-07-22T04:21:02

方案一:针对移动端,修改 config.plist 中

  • UEFI→Quirks→IgnoreInvalidFlexRatio→True/Yes
  • UEFI→Quirks→ReleaseUsbOwnership→True/Yes
  • Booter→Quirks→RebuildAppleMemoryMap→False/No
  • Booter→Quirks→SetupVirtualMap→True/Yes

方案二:针对无法解开 CFG 锁的机型,修改 config.plist 中

  • Kernel→Quirks→AppleXcpmCfgLock→True/Yes
  • Kernel→Quirks→AppleCpuPmCfgLock→True/Yes
  • UEFI→Quirks→IgnoreInvalidFlexRatio→True/Yes
  • 如果无法关闭 VT-d,修改:
    • Kernel→Quirks→DisableIoMapper→True/Yes

方案三:参考 Q7。

 

Q9:

[EB|#LOG:EXITBS:START]

A:参考 Q7,因为基本上是同样的原因。

 

Q10:

IOConsoleUsers: time(0) 0->0, lin 0, llk1,
IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0

A:这个位置基本上卡在 GPU 正确初始化前,请确认以下设置:

  • GPU 支持 UEFI(尤其是 GT600/GT700 以及更早期显卡)
  • BIOS 中关闭了 CSM
    • 部分笔记本机型可能无法完全关闭
  • BIOS 中设置强制 PCIe 到 3.0
  • 如果使用核显,再次检查所注入的核显 ig-platform-id 和 device-id
    • 桌面端 UHD630 可以尝试 00009B3E
    • 尝试 -gfxmlr 启动参数,这可能同时可以解决“Divide by Zero”错误
    • 在 10.15.4 及以上版本 macOS 中,某些机型上的第八、九代酷睿可能需要添加启动参数 igfxonln=1
    • 更多参阅 WhateverGreen 补丁

 

启动界面&代码界面部分

Q1:启动界面看不到 macOS 启动分区

A:首先确认 /EFI/OC/Drivers 目录下有 HFSPlus.efi;

修改 config.plist:

Misc→Security→Scan Policy→设置为 0

UEFI→Quirks→UnblockFsConnet→True/Yes(部分惠普机型需要)

UEFI→APFS→EnableJumpStart→True/Yes

UEFI→APFS→HideVerbose→True/Yes

UEFI→APFS→MinDate→ -1

UEFI→APFS→MinVersion→ -1

 

Q2:选择启动项后黑屏

A:修改 config.plist:

UEFI→Output→ProvideConsoleGop→True/Yes

Booter→Quirks→RebuildAppleMemoryMap→True/Yes

如果未能解决问题,请使用 Debug 版本 OpenCore,这样会提示更多信息。

 

Q3:如何将 OpenCore 设置成图形化启动界面?

A:以下方法适用于 OpenCore 0.7.0 及以上。修改 config.plist:

  • Misc
    • Boot
      • Picker Mode → External
      • Picker Attribute GUI → 1
      • Show Picker → True/Yes
      • PickerVariant → Acidanthera\GoldenGate (或其它你下载的主题)
  • UEFI
    • Drivers
      • 加载 OpenCanopy.efi

下载 OcBinaryData,点此直达官方地址,将解压后的 Resources 文件夹覆盖到 /EFI/OC/ 目录下的同名文件夹。

 

Q4:如何固定选择启动项?

A:修改 config.plist:

Misc→Security→AllowSetDefault→True/Yes

在启动界面选择想要设置的项,按下 Ctrl + Enter,即可。

 

Q5:

OCB: OcScanForBootEntries failure - Not Found

A:这是由于 OpenCore 无法根据当前的 ScanPolicy 设置找到任何驱动器,此项设置为 0 将允许显示所有引导选项

修改 config.plist:Misc→Security→ScanPolicy→ 0

 

Q6:

OCB: failed to match a default boot option

A:原因及解决方法同 Q5。

 

Q7:

OCB: StartImage failed - Aborted
Halting on critical error

A:请升级 OpenCore 到 0.5.9 及更高版本,这主要是由错误的编译或文件版本不对应造成。

OpenCore 的关键文件必须来自同一版本:BOOTx64.efi、OpenCore.efi、OpenRuntime.efi、OpenCanopy.efi(用于支持官方主题服务)

 

Q8:

Forcing CS_RUNTIME for entitlement: com.apple.rootless.restricted-block-devices

A:这个一般出现在安装 macOS 11.0 Big Sur 的过程中,其实并没有卡住,注意观察硬盘灯,耐心等待,一般3-5分钟就会过。

 

Q9:

SetMulticastList() ===>
SetMylticastList() <===

A:同 Q8。

 

Q10:

OCB:OcScwfurBootEntries failure - not found
Halting on critical error

A:配置文件有错误,建议重新新建 config.plist。注:此错误新手遇到比较多,请注意 OpenCore 和 Clover 的 config 文件并不通用!

 

Q11:

ERROR allocating 0x3362 pages at 0x0000000001033000 alloc type 2 
Error loading kernel cache (0x9) 
Halting on critical error

A:原因一般是在 /EFI/OC/Drivers 目录下引入了很多 Clover 使用的 .efi 文件。并不是 Clover 适用的 .efi 文件 OpenCore 也适用,具体看:.efi 文件说明

解决办法是删除 Clover 使用的 .efi 文件,OpenCore 最基础只需保留 HfsPlus.efi,OpenRuntime.efi,OpenCanopy.efi(用于支持官方主题),其余都删除。

 

Q12:

OCS:No schema for Disabled at 12 index
OC:Driver HfaPlus.efi at 0 cannot be found!
Halting on critical error

A:默认的 OpenCore 不含 HFSPlus.efi 文件,需要添加到 /EFI/OC/Drivers 目录下。

 

Q13:

OCB:StartImage failed - Already started
Halting on critical error

A:一般发生在引导项选择时选择了 EFI 分区。解决方法:不要选择 EFI 分区,请直接选择系统分区。

 

Q14:

OCUI: Failed to load images
Halting on critical error

A:开启了 OpenCore 的 UI 界面,但是没有配置 OC 的 Resource 文件,请下载并复制到 /EFI/OC/Resource/ 文件。

下载 OcBinaryData,点此可直达官方地址

 

Q15:卡在主板 LOGO 界面

A:常见于 GA 主板,修改 config.plist→UEFI→Drivers 取消 AudioDxe.efi,删除或在名称前添加 # 号,暂时禁用。另一种方案,断电并拔掉电池静置 5-10 分钟,再开机。

 

Q16:

OC: Invalid Vault mode!

A:修改 config.plist 中:

Misc→Security→Vault→Optional

大概率是拼写错误,将 Vault 值设置为 Optional,注意大小写敏感。

 

Q17:

OC: OcAppleGenericInputTimerQuirkExit Status - Success
OC: OcAppleGenericInputKeycodeExit Status - Success

A:解决方法:

  • Intel:
    • BIOS 中解锁 CFG-Lock,没有该选项的情况开启以下选项:
      • AppleXcpmCfgLock→True/Yes
      • AppleCpuPmCfgLock→True/Yes
  • AMD 系统需要内核补丁

如果未能解决问题,请使用 Debug 版本 OpenCore,这样会提示更多信息。

 

Q18:

OCABC: Memory pool allocation failure - Not Found

A:这是由于错误的 BIOS 设置 和/或 错误的 Booter Quirks 值,请确认 Booter→Quirks 设置正确,并验证 BIOS 设置:

  • 开启 Above 4G Decoding
  • 关闭 CSM
  • 升级 BIOS 到最新版本

 

Q19:

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

A:这基本上是配置文件结构不正确造成的,请勿使用 Clover 的 config.plist 引导 OpenCore,以及版本不匹配的 OpenCore Configurator 配置 config.plist。

建议是,能学会树形目录编辑器就尽量学,例如 ProperTree

 

Q20:

apfs_module_start

A:卡在这个位置大部分都是 Z390 主板,需要添加一个 ACPI 补丁,内容如下:

Comment: 	Fix RTC _STA bug
Find: 		A00A9353 54415301
Replace: 	A00A910A FF0BFFFF

 

Q21:

OCB:LoadImage failed - Unsupported
Halting on critical error

A:一般发生在进入 Recovery 时。解决方法是在 /EFI/OC/Drivers/ 目录下添加 HFSPlus.efi 或 VBoxHfs.efi,一般使用前者。

 

Q22:

000340.041303 XHCI@14000000: AppleUSBXHCI::interruptOccurred: clearing change bits on unused port 23 with portSC 0x802a0
000341.204285 XHCI@14000000: AppleUSBXHCI::interruptOccurred: clearing change bits on unused port 24 with portSC 0x802a0
000341.227434 XHCI@14000000: AppleUSBXHCI::interruptOccurred: clearing change bits on unused port 25 with portSC 0x221203
000341.250544 XHCI@14000000: AppleUSBXHCI::interruptOccurred: clearing change bits on unused port 26 with portSC 0x802a0
...
...
IOUSBHost Interface(0x10000063d): matching deferred by IOUSBHostHIDDevice

A:一般是因为缺少 ACPI 补丁,没有正确驱动 USB 的 XHCI 节点。可尝试以下 ACPI 补丁:

Comment: Rename XHCI to XHC(USB)
Find: 58484349
Replace: 5848435F

Comment: Rename XHC1 to XHC(USB)
Find: 58484331
Replace: 5848435F

其它解决办法:

  • 检查镜像 md5;
  • 将 U 盘换到 USB2.0 或 USB3.1 的接口;
  • 添加解除 15 端口限制的补丁,或修改 config.plist→Kernel→Quirks→XhciPortLimit

 

Q23:

VM Swap Subsystem is ON

A:修改 config.plist

Kernel→Quirks→ThirdPartyDrivers→ Off/False

 

Q24:

Kernel Extensions in backtrace:
    com.apple.iokit.IOPCIFamily(2.9)[ADD485B5-3EF8-37C4-B3C5-F86326E497A4]@0xffffff7f9432f000->0xfffffff7f94365fff
    com.apple.driver.AppleACPIPlatform(6.1)[C111AA1C-DE22-39CC-BB44-4870383DDAA0]@0xffffff7f96306000->0xffffff7f963a0fff
        dependency: com.apple.iokit.IOACPIFamily(1.4)...
        dependency: com.apple.iokit.IOPCIFamily(2.9)...
        dependency: com.apple.driver.AppleSMC(3.1.9)...
com.apple.driver.AppleIntelCFLGraphicsFramebuffer(14.0.4)[...]@...

A:这个错误基本是是由 Framebuffer 设置不当造成的,例如7代酷睿使用了9代酷睿的核显 Framebuffer。

解决方法:修改合适的核显 Framebuffer 信息,可先删除 DeviceProperties 下有关核显的数值。其它参考:驱动 Intel 核显

 

Q25:

OCSB: No suitable signature - Security Violation
OCB: Apple Secure Boot prohibits this boot entry, enforcing!
OCB: LoadImage failed - Security Violation

A:这是由于过时的 Apple Secure Boot manifests 导致的,如果你在 OpenCore 中设置了 SecureBootModel,就会导致加载失败,这些文件丢失的原因实际上是 macOS 中的 BUG。解决方法(任选其一):

  1. Misc→Security→SecureBootModel→ Default 或 Disabled
  2. 重新安装 macOS 到最新版本
  3. 从 /usr/standalone/i386 拷贝 Secure Boot manifests 到 /Volumes/Preboot/<UUID>/System/Library/CoreServices

 

Q26:

[EB|`LD:OFS] Err(0xE) @ OPEN (System\\Library\\PrelinkedKernels\\prelinkedkernel)

A:当 Preboot 未被正确更新时,可能会发生这种情况。解决此问题:

  • 修改 config.plist→UEFI→APFS→JumpstartHotplug→True(macOS 11.0 可能必须开启此项才能进入 Recovery)
  • 重启,引导进入 Recovery
  • 开启终端,进行如下操作:
# 通过列出所有分区找到 Preboot 分卷
diskutil list

# 在列出的列表中,我们发现 Preboot 分卷是 disk5s2
/dev/disk5 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +255.7 GB   disk5
                                 Physical Store disk4s2
   1:                APFS Volume ⁨Big Sur HD - Data⁩       122.5 GB   disk5s1
   2:                APFS Volume ⁨Preboot⁩                 309.4 MB   disk5s2
   3:                APFS Volume ⁨Recovery⁩                887.8 MB   disk5s3
   4:                APFS Volume ⁨VM⁩                      1.1 MB     disk5s4
   5:                APFS Volume ⁨Big Sur HD⁩              16.2 GB    disk5s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 16.2 GB    disk5s5s

# 现在挂载指定的 Preboot 分卷
diskutil mount disk5s2

# 最后执行下面的命令来更新 Preboot 分卷
diskutil apfs updatePreboot /volume/disk5s2
  • 最后重启,注意你可能需要关闭 JumpstartHotplug。

 

Q27:

OCS: No schema for EnableForAll at 0 index, context <Quirks>!
OCS: No schema for EnableForAll at 5 index, contextr <Quirks>!
OCS: No schema for DummyPowerManagement at 8 index, context <Quirks>!
OCS: No schema for SkipCustomEtryCheck at 8 index, context <Boot>!

A:和其它升级 OpenCore 的问题一样,这一般是从 0.6.1 升级到 0.6.2,替换了文件却没有用新版 Sample.plist 重建 config.plist 造成的。解决的办法有两个:

  • 使用 0.6.2 版本的 Sample.plist 重建 config.plist;
  • 使用 BeyondCompare 等代码对比工具查找两个版本 Sample.plist 的不同之处,然后使用 VScode 等代码编辑器工具修正 0.6.1 版的 config.plist

 

Q28:

OC: Driver AudioDxe.efi at 0 cannot be found!
Halting on critical error

A:在 config.plist 中指定了加载某些文件,实际路径里却不存在。只是此问题指的是 .efi 驱动。此案例中,请检查 /EFI/OC/Driver/ 目录下是否存在 AudioDxe.efi,不存在的话请添加。如果不想要这个驱动的话,请在 config.plist → UEFI → Drivers 中取消该文件,其它情况以此类推。

 

Q29:

OsxAptioFix3Drv: Starting overrides for \System\Library\CoreServices\boot.efi
Using reloc block: no, hibernate wake: no
ERROR allocating 0x1c19 pages at 0x0000000009433000 alloc type 2
Error loading kernel cache (0x9)
Boot failed; will sleep for 10 seconds before exiting...
Error: Aborted returrned from boot.efi

  was error, press any key

* Hit any key to continue *

A:如果是 OpenCore,请不要使用 OsxAptioFix3Drv.efi 或其它类似的内存修复驱动,因为 OpenCore 已经自备了 OpenRuntime.efi 来解决内存问题。如果是 Clover,r5120 以下版本请使用 AptioMemoryFix.efi,r5120 及以上版本使用 OcQuirks.efi。

 

Q30:

Failed to parse real field of type 1

A:此错误一般是因为使用了 Xcode 造成,Xcode 把 HaltLevel 的 integer 值类型自动改成了 real,解决办法是不要使用 Xcode,把 HaltLevel 下的数字值类型修改回 integer:

# 以下是错误的
<key>HaltLevel</key>
<real>2147483648</real>

# 修正为
<key>HaltLevel</key>
<integer>2147483648</integer>

 

Q31:

Generation from SMC report as 2
AppleLMUController::smcGetKey Info Error: received error 0x84 when getting key info for 'ALRV'
AppleLMUController::smcReadKey Error:received error 0×84 when reading key 'MSLD'
AppleLMUController::smcReadKey Error:received error 0×84 when reading key 'ALV0'

A:此错误一般 ssdt 相关,主要表现在笔记本机型上。在此案例中,当用户设备中具备 ACPI0008 (Light Sensor device) 时,macOS 会启动 AppleSMCLMU.kext 与该设备匹配并且需要 LightSensor 的 SMC 密钥。因此,删除 SSDT-ALS0.aml,或进一步补充 ssdt 内容完全屏蔽该设备,一般即可解决该问题。

 

Q32:

IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0
之后黑屏

A:如果是 Navi 系显卡(RX5500/5600/5700/XT)

  • 添加启动参数 agdpmod=pikera
  • 可尝试切换到 MacPro7,1 ,启动参数修改为 agdpmod=ignore
  • 如果是微星的 Navi 显卡,可能需要添加以下补丁,位于 Kernel → Patch:
Base:
Comment: Navi VBIOS Bug Patch
Count: 1
Enabled: YES
Find: 4154592C526F6D2300
Identifier: com.apple.kext.AMDRadeonX6000Framebuffer
Limit: 0
Mask:
MinKernel: 19.00.00
MaxKernel: 19.99.99
Replace: 414D442C526F6D2300
ReplaceMask:
Skip: 0

 

Q33:

Kernel Panic: Cannot perform kext summary
Kernel Panic: Invalid frame pointer

A:一般情况下此时已经内核崩溃了(Kernel Panic),通常是预链接内核相关的问题造成的,尤其是 macOS 很难理解引导工具注入的内容。通过以下步骤验证:

  • Kext 加载顺序正确(没错,顺序也是重要的),Lilu.kext 必须、务必,一定排在其它所有 kext 之前;其它 kext,必须先是主插件(如 VirtualSMC),然后是它的卫星插件(如 SuperIO)
  • 大部分的 Kext 拥有可执行文件(位于 kext 内部的 Executable),剩下的 Kext 只有 plist 但是没有包含可执行文件(例如 USBPort.kext、XHCI-unspported.kext 等)
  • 不要在 config.plist 中添加多个相同的 Kext(例如,VoodooPS2Controller 中包含 VoodooInput,所以不要再单独添加)
  • 此类错误也可能会造成 Invalid frame pointer 一类的内核崩溃

 

Q34:

Kernel Panic: Invalid frame pointer

A:此部分大概率和 Booter → Quirks 相关,此部分主要和内存相关,主要涉及以下几个选项:

  • DevirtualiseMmio
    • 部分硬件平台并不能很好的适应这个 Quirk,例如部分 Z390 和绝大部分的 X99 和 X299。它的工作方式是占用 MMIO 区域并删除运行时属性,使它们可用作存放内核的空间,注意这个 Quirk 在绝大部分的系统上并不要求一定要填写 MmioWhiteList,但在某些非常难安装的平台(例如:线程撕裂者 TRX40 19H 或 10300H),在启用此 Quirk 的同时还需设置 MmioWhiteList,使用 Debug 版 OpenCore 并开启 DevirtualiseMmio,你会在日志中找到类似以下内容:
21:495 00:009 OCABC: MMIO devirt start
21:499 00:003 OCABC: MMIO devirt 0x60000000 (0x10000 pages, 0x8000000000000001) skip 0
21:503 00:003 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0
21:506 00:003 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0
21:510 00:003 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0
21:513 00:003 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0
21:516 00:003 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 0
21:520 00:003 OCABC: MMIO devirt end, saved 278608 KB
  • 将 devirt 后面的 0x 60000000 等 6 组十六进制数字转换为十进制:
    • MMIO devirt 0x60000000 -> 1610612736
    • MMIO devirt 0xFE000000 -> 4261412864
    • MMIO devirt 0xFEC00000 -> 4273995776
    • MMIO devirt 0xFED00000 -> 4275044352
    • MMIO devirt 0xFEE00000 -> 4276092928
    • MMIO devirt 0xFF000000 -> 4278190080
  • 然后填写到 MmioWhiteList 即可:

  • SetupVirtualMap
    • 大多数主板都需要开启这个 Quirks,如果没有开启,内核崩溃会很常见;
    • 但是,部分主板却无法使用它,并且可能导致内核崩溃:
      • Intel Ice Lake 系列(十代酷睿移动端,例如 1035G1)
      • Intel Comet Lake 系列(十代酷睿桌面端,例如 i5-10400)
      • AMD B550
      • AMD A520
      • AMD TRx40
  • 另一个问题可能是 macOS 与 CR0 寄存器的写保护冲突,要解决此问题,需要先确认你的主板是否有 MAT 支持,此部分参考 Q23;
    • 确定有 MAT 支持时:
      • EnableWriteUnprotector -> False
      • RebuildAppleMemoryMap -> True
      • SyncRuntimePermissions -> True
    • 当没有 MAT 支持时:
      • EnableWriteUnprotector -> True
      • RebuildAppleMemoryMap -> False
      • SyncRuntimePermissions -> False

 

Q35:

Kernel Panic: AppleIntelMCEReporter

A:在 macOS Catalina 处理器双插槽支持被损坏,但部分 AMD 主板的固件会报告已接入多插槽处理器,因此 macOS 内置的 AppleIntelMCEReporter.kext 会造成内核崩溃。此问题通常出现在 AMD 处理器的机型上,有两种解决办法,添加一个第三方 Kext:AppleMCEReporterDisabler.kext;或编辑 config.plist,使用 Kernel → Block 功能阻止 macOS 加载 AppleIntelMCEReporter.kext(识别符:com.apple.driver.AppleTyMCEDriver,OpenCore 默认配置文件 Sample.plist 中有提供)。

 

Q36:

SMCLightSensor alsd: @ No iterator
AppleIntelLpssI2CController::_serviceMatchingTimeSubr: fTimerServiceMatching timed out, fNotifications 0
AppleIntelLpssI2CController::_serviceMatchingTimeSubr: fTimerServiceMatching timed out, fNotifications 0

A:此错误分两个部分,第一部分,LightSensor 没有匹配到可用的光传感器,这可能是你的笔记本没有,或不被支持,可先暂时关闭 SMCLightSensor.kext;第二部分,I2C 服务匹配超时,这可能是 macOS 内置的 I2C 控制程序无法匹配你的设备,解决方法,在 config.plist → Kernel → Block 中添加以下内容,并使用 VoodooI2C.kext 替代:

Comment: Prevent Apple I2C kexts from attaching to I2C controllers
Enabled: YES
Identifier: com.apple.driver.AppleIntelLpssI2C

Comment: Prevent Apple I2C kexts from attaching to I2C controllers
Enabled: YES
Identifier: com.apple.driver.AppleIntelLpssI2CController

 

Q37:选择 macOS Recovery 后,提示以下代码,并返回引导界面:

OCB: LoadImage failed - Not Found

A:修改 config.plist 中 Misc → Security → DmgLoading → Any/Signed,建议修改为 Any。

 

Q38:启动时 Kernel Panic:

Kernel Extension in backtrace:
    com.apple.iokit.IOPCIFamily(2.9)[ xxxx...
    com.apple.driver.AppleACPIPlatform(6.1)[ xxxx...
        dependency: com.apple.driver.AppleSMC(3.1.9)[ xxxx...
        dependency: com.apple.iokit.IOACPIFamily(1.4)[ xxxx...
        dependency: com.apple.iokit.IOPCIFamily(2.9)[ xxxx....

A:可能有多种情况会遇到这个内核崩溃,这里主要讲解 X79 和 X99 平台,起因是苹果在 macOS Big Sur 修改了大部分 IOPCIFamily.kext 中的内容,因此造成的部分机型遭遇内核崩溃。由于目前(2021/6/16) Big Sur 还没有源码放出,如果没有反汇编大佬进行调试,则无从知晓真正的原因。可以考虑解决的办法如下:

  • X79/X99/X299 平台务必加上 npci=0x2000 或 npci=0x3000 这个启动参数;
  • 尝试 SSDT-RTC0-RANGE.aml 或 SSDT-UNC.aml 这两个 ACPI 补丁,可以从 OC 团队的开发堆栈里找到源文件;

 

Q39:跑码过程中出现禁止符号,然后字符变成乱码,如下:

A:此错误源头和 USB 强相关。首先检查 BIOS 设置:

  • 开启 USB XHCI Handoff 和 Legacy USB Support,如果安装到 SATA 接口硬盘,把 SATA 模式设置为 AHCI;

接下来有两种选择:

  • 第一种是把 U 盘插到纯 2.0 接口(外观上一般为黑色 4 针);
  • 第二种是先在 Windows 对 USB 接口进行定制,具体原因和方法见「黑苹果 Windows 定制 USB」,完成后使用定制好的 USB 文件再尝试安装;

 

Q40:安装 macOS Big Sur 11.3 及以上版本时,跑完进度条后见到如下界面:

A:此问题的源头来自 macOS 系统本身。苹果自 macOS Big Sur 11.3 开始修改了 USB 映射方式,导致 OpenCore 依赖的 Quirks 特性 XhciLimitPort 失效(Clover 自 r5123 开始完全是 OC 内核,因此同理)。截止 OpenCore 0.8.6 开发版,Acidanthera 团队仍未修复,估计也不太可能修复了。

简单来说,就是此时 macOS 没有找到任何键盘/鼠标/妙控板等操控设备,它以为自己运行在白苹果电脑上,于是提示用户打开秒控鼠标/妙控板的开关。至于没有检测到的原因就说来话长了,具体可参考「黑苹果 Windows 定制 USB」的前言部分。

知道原因后解决问题就比较简单,把你的鼠标键盘插到纯 USB2.0 接口(外观上一般为黑色 4 针)即可,有的机型甚至重新插拔一下都可以。进入系统后建议优先考虑定制 USB 接口。

 

Q41:

ifnet_attach: All kernel threads created for interface en0 have been scheduled at least once. Proceeding.
_dlil_attach_flowswitch_nexus: en0 9000 1500
IOKit Daemon (kernelmanagerd) stall[0], (240s): 'PXSX'

A:通常情况下,此情况会出现在安装 macOS Big Sur,问题的源头是因为 Big Sur 完全删除了类 AirPortBrcm4360,为了兼容这个情况,acidanthera 团队从 Airportbrcmfixup.kext 中单独剔出了AirPortBrcm4360 和 AirPortBrcmNIC 注入器(injector),在安装 Big Sur 并使用 Airportbrcmfixup.kext 时,必须不能加载 AirPortBrcm4360_Injector.kext(或为其设置 MaxKernel 值 19.9.9)。

如果你的无线博通网卡是免驱动类型时(例如奋威 T919 或型号较新的苹果原装拆机卡),则完全不需要使用 Airportbrcmfixup.kext。

 

Q42:关于 12.0 的无线和蓝牙驱动

macOS Monterey 12.0 大幅修改了蓝牙和无线网卡的驱动框架,一是因为抛弃了 2015 年以前推出的机型支持,二是为通用控制做准备。虽然黑苹果老卡可以通过第三方驱动得到支持,但是在设置上和以往有一些区别。简单来说就是以下几点:

  • 除免驱卡外(例如奋威 T919 或其它型号较新的苹果原装拆机卡),必须使用新驱动 BlueToolFixup.kext
  • 蓝牙驱动 BrcmPatchRAM 中的注入器(BrcmBluetoothInjector.kext),不能在 12.0 中启用,会卡住。可以删除或不启用,如果你有切换多个版本系统的需求,OpenCore 还可设置 MaxKernel 值 20.99.99 ,Clover 则需要建立不同版本号的 Kext 目录下的文件夹;
  • 英特尔网卡,需要将 IntelBluetoothFirmware 升级到最新,同样不能使用 IntelBluetoothInjector.kext;
  • 其它可参考「修复蓝牙在 macOS 12.0 Monterey 的方法」;

 

其他部分

Q1:如何关闭 OpenCore 输出到 ESP 分区下的日志文件?

A:修改 config.plist

Misc→Debug→Target→ 0

  • 0:关闭日志记录
  • 3:允许屏幕输出日志
  • 19:允许屏幕输出 UEFI 变量日志
  • 65:在 ESP 分区根目录生成日志文件 opencore-年-月-日-时分秒.txt,但屏幕上不显示日志

 

Q2:macOS 安装界面是俄语?

修改 config.plist:

NVRAM → 7C436110-AB2A-4BBB-A880-FE41995C9F82 → prev-lang:kbd

  • 改类型为 data 值,内容为 7A682D48 616E773A 323532
  • 或类型为 string 值,内容为 zh-Hans:252

 

Q3:硬盘提示 BIError Domain 3

A:修改 config.plist:

SMBIOS 改机型为 iMacPro1,1 或 MacBookPro16,1 等 2018年及以后的机型。

 

Q4:卡在“找不到安装器资源”?

A:这个问题的原因可能是多种多样的:

  • 检查镜像的 md5 值是否相符
  • 某些版本的镜像是特定机型使用的,例如 Catalina 19H4 就是特定机型版本,此类情况请更换镜像系统版本
  • 对于 High Sierra 和 Mojave,需要使用终端修改时间,并断开网络
  • 对于 Catalina,请用终端验证一下系统时间是否和真实时间相差 8 小时,如果是,使用终端改为真实时间
  • 删除 drivers/UEFI 目录下的 EmuVariableUefi.efi(此项针对 Clover 用户)
  • 修改机型为最近三年,比如 MacBookPro14,1、MacBookPro15,1、iMac17,1 等等
  • 如果是双硬盘,拔掉那个不安装 macOS 的,待安装完后再插回去

 

Q5:进入安装界面后,找不到硬盘。

A:此问题大多数情况下是因为使用了 VBoxHfs.efi,这个驱动在某些机型上(主要是笔记本和品牌台式机)无法读取本地硬盘,解决方法是换用 HFSPlus.efi。另一种可能,请检查硬盘是否处在 RAID 模式,RAID 状态无法正常安装 macOS。

 

Q6:进入 macOS 后,无法挂载 EFI 分区,无论使用命令行或配置工具都不行。

A:笔者曾经遇到过这个问题,在试过无数方法后,发现是格式化硬盘的时候忘记格式化 ESP 分区😂,请用命令行或 Diskgenuis 等工具格式化 ESP 分区为 FAT32 即解决问题。

 

Q7:首次安装跑完代码界面后,进入一个灰色的屏幕,鼠标可以移动,但是其它什么都不显示。

A:笔者在安装 Big Sur 时遇到过这个问题。首先确保排除所有 config 设置及 kext 可能的问题:主要是针对内存设置的几个 Quirks;核显的 ig-platform-id 及其它属性先删除或屏蔽;以及尝试搭配使用不同版本的 Whatevergreen.kext。以笔者遇到的例子,最终排查结果如下:这个没有任何菜单和选项的灰色界面,其实是 Recovery 模式下 macOS Base System 的第二屏幕显示的内容,这个时候尝试重新插拔一下你的显示器接口,如果你有其他显示设备,可以尝试再接一个上去完成安装。对于 macOS,首推使用 DisplayPort 接口,1.2 及以上;其次是 HDMI,4k 需要 2.0 及以上;不推荐 DVI 接口;完全不建议使用 VGA 接口以及各类转接头。

 

Q8:升级到 Big Sur beta 11.0.1 后,右上角图标栏有大约三个图标的空白。

A:在此案例中,是搜狗输入法未能很好适配 Big Sur 造成的,升级搜狗输入法到最新版本可解决问题。

 

Q9:反复检查,设置都对,但 macOS 就是一直黑屏。

A:此现象有多种原因。在 AMD 平台的案例中,请在 BIOS 中关闭 Serial Port。

 

Q10:进入登陆界面后,macOS 卡住,屏幕中间显示一个半透明状态  图标,类似下图:

A:此问题一般由不同步的处理器 TSC 造成,对于大部分处理器,添加 CpuTscSync 一类的 Kext 即可解决问题(VoodooTSCSyncCpuTscSync)。

 

Q11:OpenCore 更新到 0.6.8 之后,主题失效,还有系统选择界面光标“打滑”怎么办?

A:第一部分主题失效,是因为开发团队大刀阔斧修改了主题服务文件,需要搭配新的主题文件才能开启图形界面,可以从官方下载也可以下载黑苹果星球打包好的文件:

已有136196次阅读

将解压后的 Resources 文件夹覆盖到 /EFI/OC/ 目录下的同名文件夹。OpenCore 0.7.0 需要将 PickerVariant 输入为 Acidanthera\GoldenGate 或其它你下载的主题名称。

第二个主题界面光标“打滑”现象修改以下选项即可解决。

 

Q12:

进入安装程序后,在安装界面弹出“未能安装所需的固件更新”。

A:主要出现在安装 macOS Monterey 12.x 的过程中,有两种解决方法:

  • 第一,修改 config.plist 文件 → PlatformInfo → Generic → AdviseFeatures → 修改为 True/勾选;
  • 如果第一种方法无效,第二种方法是升级 OpenCore 的版本,安装 12.0.1 建议 OpenCore 从 0.7.4 起步,升级可参考「升级引导工具的方法」;

 

 

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,联系:admin#heipg.cn,或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:admin#heipg.cn,我们将第一时间配合处理!

黑苹果星球 » OpenCore 安装卡住的拯救手册Q&A

90 评论

  1. 进安装界面前卡在nvme:fatal error 怎么回事

    1. 具体情况具体分析,单从这个只能得出可能和硬盘有关,其它无法判断

  2. oc引导卡这里unsupported cpu unsupported pch 然后灰屏 关机 cpu是 i5 3230m 望指导 谢谢

    1. 建议直接更换EFI文件,或到交流群里发问

  3. 已经无语了,Please go to XXXXXXto report this Panic.
    怎么查都没有关于这个问题的,怎么改config都卡在这里

    1. 发生内核崩溃(Kernel Panic)的时候,最后一行是不变的,都是这一句,出问题的地方要在OC日志或者安装器日志或者跑码内容里检查,勾选Kernel→PanicNoKextDump和PowerTimeoutKernelPanic,启动参数加入-v debug=0x100 keepsyms=1以获取更多信息,如果还不够的话,DebugEnhancer.kext也可以考虑加入一下

    2. 我的也是相同问题

  4. 联想V4400,oc引导一直卡在[EB|#LOG:EXITBS:START],0.7.3,0.7.7都试过了,按上面的Q7、Q8、Q9的方法做了还是卡,请问怎么办,有没有解

    1. 要看具体配置,bios设置和oc设置

      1. 需要看哪些信息,怎么看

      2. 之前是能引导的,后来为了换无线网卡,刷BIOS加了无线网卡白名单,刷了后无线网卡可以用了,但黑苹果就不能引导了,再把BIOS刷回去也不能引导了。

        1. 更新完BIOS一般需要重新设置一遍选项

          1. bios全部按教程重新设了,在bios中csm、vt-d已经关闭了,cfg锁也通过cfg-lock.efi关闭了,相关的几个参数也勾选了。

          2. 试一下勾上AppleCpuPmCfgLock和AppleXcpmCfgLock

        2. 我用debug版的oc打了日志,麻烦大神帮我看看是什么问题

  5. 联想P720工作站,双U,至强金牌5118,skylake-sp,cfg lock以解锁。
    怎么弄都过不去, 一直卡在:
    [EB|`B:WFDW] Err(0xE), 0 @ LocHB 71B4903C-14EC-42C4-BDC6-CE1449930E49

    1. 双路机型都很难装,搜一下主板芯片组的nvram相关内容

  6. 谁知道结尾是OC:Watchdog status is 0是什么错误

    1. 这个不是错误,是提示Apple Watchdog的状态。如果你指的是开机出现一段英文字母结尾是这个的话,是因为你的OpenCore主文件是Debug版本,使用OpenCore发行包中的Release版本替换掉主文件就行,方法和升级OC一样

      1. 请问安装时出现这个页面是要一直等下去吗?谢谢

        1. 这个页面正常时间最多不超过3秒,除非有其它特别设置

      2. 那个如果提示watchdog status 1,然后自动黑屏重启咋办啊

  7. 我用debug版的oc打了日志,麻烦大神帮我看看哪里有问题

  8. 系统安装完了, 卡在了选择国家的设置那里............然后黑屏无反应,重启重新进入也是一样

    1. 试一下把nvram中的prev-lang:kbd值清空看看

  9. 谁知道#[EB.LD.PWLFNV|!] Err(0x5) <- RT.GV wake-fallure 7C436110-AB2A-4BBB-A880-FE41995C9F82是什么错误,求指导

  10. 首次安装跑完代码界面后,进入一个灰色的屏幕,鼠标可以移动,但是其它什么都不显示。

    我遇到了这个问题 OC7.9 屏蔽独显 双显示器 都试过了 没用

    1. 欢迎你探索出原因和方案后来分析和分享

    2. 兄弟你最后解决了吗

发表回复