Indie Hackers - 創業駭客 (NoCode, Webflow)

OpenCore 安裝卡住的拯救手冊Q&A

概述

本文最後更新:2021年11月3日

本文內容主要針對正在遷移到 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,點此直達官方地址;或下載黑蘋果星球整理的文件包:

當前隱藏內容被隱藏

已有86975次閱讀

贊助永久會員免費查看

將解壓后的 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,點此可直達官方地址;或下載黑蘋果星球整理的文件包:

當前隱藏內容被隱藏

已有86975次閱讀

贊助永久會員免費查看

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//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.7.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 卡住,螢幕中間顯示一個半透明狀態  圖標,類似下圖:

[

](https://oss.heipg.cn/2020/07/1607584065-eb479605271a1f0.png)A:此問題一般由不同步的處理器 TSC 造成,對於大部分處理器,添加 CpuTscSync 一類的 Kext 即可解決問題(VoodooTSCSyncCpuTscSync)。

Q11:OpenCore 更新到 0.6.8 之後,主題失效,還有系統選擇介面游標「打滑」怎麼辦?

A:第一部分主題失效,是因為開發團隊大刀闊斧修改了主題服務文件,需要搭配新的主題文件才能開啟圖形介面,可以從官方下載也可以下載黑蘋果星球打包好的文件:

當前隱藏內容被隱藏

已有86975次閱讀

贊助永久會員免費查看

將解壓后的 Resources 資料夾覆蓋到 /EFI/OC/ 目錄下的同名資料夾。OpenCore 0.7.0 需要將 PickerVariant 輸入為 Acidanthera\GoldenGate 或其它你下載的主題名稱。

第二個主題介面游標「打滑」現象修改以下選項即可解決。

[

](https://oss.heipg.cn/2021/04/1619617543-232d08b94ad5010.png)

Q12:

進入安裝 程式后,在安裝介面彈出「未能安裝所需的固件更新」。

A:主要出現在安裝 macOS Monterey 12.0.1 的過程中,有兩種解決方法:

  • 第一,修改 config.plist 文件 → PlatformInfo → Generic → AdviseFeatures → 修改為 True/勾選;
  • 如果第一種方法無效,第二種方法是升級 OpenCore 的版本,安裝 12.0.1 建議 OpenCore 從 0.7.4 起步,升級可參考「升級引導工具的方法」;