OPENCORE 精闢解說

公告:

  • 由於Opencore 已更新到OC 0.9.2,某部分的設定有所變更。

前言

本文是基於OpenCore-0..9.2 發行版所編寫的,並且已Opencore Vanilla Desktop Guide  為做基礎,有可能會有英翻中的錯誤,在此事先說明。本教學內容皆取自於自各大黑蘋果教學網站精髓,經個人多次測試除錯之後,重新編譯中文引導教學。針對 Z300 型主機板不支援 NVRAM 的部分,已經有解決方案。請參考這裡

  • GA Z490 ELITE AC Hackintosh 構建教學
  • GA Z590 ELITE AX Hackintosh 構建教學

以下是我個人推薦 OpenCore 相關的教學網站。

OpenCore更新日誌

V0.9.2

  • Added `DisableIoMapperMapping` quirk, thx @CaseySJ
  • Fixed disabling single user mode when Apple Secure Boot is enabled
  • Improved guard checks for `GopBurstMode` on systems where it’s not needed
  • Improved compatibility of `GopBurstMode` with some very non-standard GOP implementations
  • Fixed possible hang with `GopBurstMode` enabled on DEBUG builds
  • Enabled `GopBurstMode` even with natively supported cards, in EnableGop firmware driver
  • Fixed inability to patch force-injected kexts
  • Fixed `ExternalDiskIcons` quirk on macOS 13.3+, thx @fusion71au Fixed various recent reversions and some longer-standing minor bugs in `Builtin` text renderer
  • Applied some additional minor optimizations to `Builtin` text renderer
  • Implemented `InitialMode` option to allow fine control over text renderer operating mode
  • Added support for `ConsoleMode` text resolution setting to `Builtin` renderer
  • Fixed regression for ACPI quirks `RebaseRegions` and `SyncTableIds`
  • Updated build process to provide stable and bleeding-edge versions of `EnableGop`
  • Implemented minor improvements in `PickerMode` `Apple`
  • Improved filtering algorithm for `LogModules` option
  • Fixed crash when gathering system report on virtualised CPUs

本文教學日誌

本篇教學為 OC 0.7.6 版本,內容部分已不再繼續更新,當新用戶一開始構建黑果時,可以參考本教學所有的步驟!依序設定來完成引導文件!而這裡備註事項,將會以小幅度更新作為微型指南!

  • SETP 1:升級 OpenCore 0.7.7 版本,簡易指南請參可這裡!
  • SETP 2:升級 OpenCore 0.7.8 版本,簡易指南請參可這裡!
  • SETP 3:升級 OpenCore 0.7.9 版本,簡易指南請參可這裡!
  • SETP 4:升級 OpenCore 0.8.0 版本,簡易指南請參可這裡!
  • SETP 5:升級 OpenCore 0.8.1 版本,簡易指南請參可這裡!
  • SETP 6:升級 OpenCore 0.8.2 版本,簡易指南請參可這裡!
  • SETP 7:升級 OpenCore 0.8.3 版本,簡易指南請參可這裡!
  • SETP 8:升級 OpenCore 0.9.2 版本,簡易指南請參可這裡

準備工作

本教學是針對我個人使用技嘉 Z390 AORUS PRO WIFI 主機板製作,同時也支援其他主機板。 會因版本隨時更新修改。
Coffee Lake 版本

製作USB引導碟

ㄧ、安裝映像檔:隨取一隻USB碟,打開磁碟工具。從左邊的欄位找到要製作USB引導碟的『主體』。選擇『清除』,選擇格式:Mac OS 擴充格式(日誌式),架構為GUID分區圖配置表,名稱暫時為USB。

《OPENCORE 精闢解說》
磁碟工具

二、安裝macOS映像檔:請下載官方的macOS映像檔下來,打開終端機,key in 安裝macOS終端機參數。若B是想要製作其他系統的引導碟,可按下詳細說明。

Ventura

sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/USB
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/USB

Monterey

sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/USB 

Big Sur

sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/USB

Catalina

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/USB
《OPENCORE 精闢解說》
用終端機來安裝macOS引導安裝碟

做到這裡,我們可以把它白果專用的引導碟。若是加入CLOVER 或 OpenCore 程序,就是黑果專用的引導碟。

禁用:

  • 快速啟動
  • VT-d(如果將DisableIoMapper設置為YES,則可以啟用)
  • CSM
  • Thunderbolt
  • Intel SGX
  • Intel Platform Trust
  • CFG鎖(MSR 0xE2寫保護)
    • 如果無法在BIOS中關閉(甚至找不到),請考慮對其進行修補。有關更多信息,請參見固定CFG鎖。
    • AMD CPU用戶無需擔心。

啟用:

  • VT-x
  • 4G以上解碼
  • Hyper-Threading
  • Execute Disable Bit
  • EHCI/XHCI Hand-off
  • 操作系統類型:Windows 8.1 / 10 UEFI模式
  • 舊版RTC設備(與Z370 +相關)

基本文件夾結構

要配置 OpenCore 的文件夾結構,您需要從 OpenCorePkg 抓取那些文件,並構建您的EFI使其類似於以下內容:

《OPENCORE 精闢解說》
OpenCore 檔案結構

ㄧ、收集 OPENCORE 文件

  • 請打開下載好的OC引導文件,把Doc文件夾下面的 SampleFull.plist 改名為 config.plist,並把此文件移動到EFI目錄裡面。
  • 打開EFI ㄧ> Kexts 資料夾,把主機板相關硬體的kexts 先放進去。
  • 根據作者指示,放入KEXT有一定的順序排列。
OC-ACPI、Drivers、Kexts、Tools 已經內建許多工具,我們只保留自己所需要的工具即可。

ACPI:加入修補程式

Coffeelake:

備註:如果想要自行編譯SSDT修補程式,請看下製作修補方法

Firmware Drivers 我最常用的有:

  • CrScreenshotDxe.efi 用於在UEFI中拍攝屏幕截圖。
  • OpenCanopy.efi 這是OpenCore GUI 所需要文件,若只想要文字目錄者去刪除。
  • OpenRuntime.efi 記憶體分配驅動。
  • HfsPlus.efi 讓系統認出HFS格式的硬碟文件(自行加入)

Kexts:根據主機板的晶片加入適當的仿驅動,以下是我主機板常用的kext

  • VirtualSMC 模擬在實際macs上找到的SMC晶片,如果沒有此macOS,它將無法啟動。
    替代方法是FakeSMC,它可以具有更好或更壞的支持,而該支持通常在舊硬件上使用。
  • Lilu 一個修補程序,用於修補許多過程,這些過程對於AppleALC和WhateverGreen是必需的,對於VirtualSMC是推薦的。
  • SMCProcessor.kext –用於監視CPU溫度,不適用於基於AMD CPU的系統
  • SMCSuperIO.kext 用於監視風扇速度,不適用於基於AMD CPU的系統
  • WhateverGreen 顯示卡驅動
  • AppleALC 音效卡驅動
  • IntelMausi.kext  Intel 網路卡驅動
  • USBInjectAll  USB 驅動。

有關於其他KEXT文件的說明,請看這裡

備註:從2019 年9 月以後,Acidanthera 開發的內核驅動(Lilu, AppleALC 等等) 不再會在Clover 上做兼容性測試。

Tools 選擇所需要韌體驅動文件:

  • CFGLock.efi 解鎖 CFG 工具(自行加入)
  • CleanNvram.efi  清除NVRAM的工具。
  • OpenControl.efi 開啟主控臺
  • OpenShell.efi 調適用工具
  • ResetSystem.efi 重啟系統

新增主題的文件:OC引導主題設定方法。例如主題NDK 相關制定和製作方法,請到這裡。(這裡先不寫)

我把下載、編譯好的文件,放入該處的資料夾中,整個 EFI 文件夾大致如下:

《OPENCORE 精闢解說》
OC資料夾所需要的文件

整合OC資料夾所有文件

原 config.plist 文件是沒有做過任何編寫的過程。官方雖然推薦使用蘋果官方XCode工具軟體來編寫文件,但因為該軟體檔案過於巨大,許多小夥伴不會使用該工具,所以本教學採用這個 OpenCore Configuration 軟體來直接『編寫』在config.plist ,該圖像式GUI 介面有具有親和力,小夥伴更容易上手。同時也是一種簡單快速整合的方法。但是要注意OC版本對應其該工具,就不會容易出錯。以下的教學,以 OpenCore Configuration 作為示範。如果你是喜歡使用 ProperTree  工具編輯的用戶者,請參考這裡。

待寫。

做到這裡,記得要儲存,不要做任何的設定。若是使用windows 使用者,可以繼續使用該工具,根據我以下的教程來編寫cconfig.plist。使用macOS 使用者,請改用XCode 10.3 軟體。

提取主機硬件訊息

如果你目前使用的Clover 引導的話,可以事先下載有關於目前主機所有的DTST和SSDT相關訊息,最間單的方法,使用這個軟體讓它跑完整個程序,所有的文件包括CLOVER、kext、DTST、SSDT等相關文件,結合成一個壓縮檔,請務必要保留該檔案備用,我們會在OC優化課程當中會用到。

Config.plist 引導文件修改

這個章節我會把 config 文件 的由上而下來說明。內容可能會寫的因翻譯的不同結果會有所差異,敬請見諒。這是為了為了讓『小白』能夠明白各個選項的用途,而寫的引導教程。OpenCore 官方強烈建議使用 Apple XCode 軟體來編輯這個 Config.plist,其他的任何編輯軟體未經官方認可,包括 Plistedit pro 軟體,即有可能會傷害 config.plist 文件的本體。

請記住,OpenCore中的Config.plist與Clover的config.plists不同。它們不能混合和匹配。而且,如果您不知道所有內容,您還需要閱讀文檔。
首先讓我們開啟剛剛編寫好的config.plist 文件,並由 Xcode 軟體來進行編寫。如下圖。

《OPENCORE 精闢解說》

從上圖有看到四個警告標語,分別為:

  • 這只是一個示例。不要嘗試加載它。
  • 在啟動之前,請確保您了解每個字段。
  • 在大多數情況下,建議使用Sample.plist。
  • 僅在特殊情況下使用SampleCustom.plist。

這四個標語是沒有任何意義,請直接刪除即可,但我們要留意的是以下項目:

  • ACPI:用於加載,阻止和修補ACPI。
  • DeviceProperties:在此處設置PCI設備補丁,例如Intel Framebuffer補丁。
  • Kermel:我們在哪裡告訴OpenCore要加載哪些kext,要加載的順序以及要阻止的kext。
  • Mise:OpenCore引導加載程序本身的設置。
  • NVRAM:在這裡設置引導標誌和SIP之類的NVRAM屬性。
  • Platforminfo:這是我們設置您的SMBIOS的地方。
  • UEFI:告訴OpenCore加載哪些驅動程序以及加載順序。

ACPI

1-1.ACPI-Add

《OPENCORE 精闢解說》
ACPI

ACPI 選項包括了四個部分:Add, Block, Patch, Quirks。這是為系統添加SSDT的地方,這些對於啟動macOS非常重要,並且具有許多用途,假設你有修改的SSDT或者DSDT文件能力,請先將文件放入EFI/OC/ACPI下。

對於我們來說,我們需要幾個SSDT 修正檔,將 PC 的環境,進而修護模擬成macOS 的環境。

  • SSDT-PLUG:允許在Haswell及更高版本上進行本機CPU電源管理,有關更多詳細信息,請參閱《ACPI入門指南》
  • SSDT-EC-USBX:固定嵌入式控制器和USB電源,要進行設置,您需要PNP0C09在DSDT中找出設備的名稱EC0,即H_ECPGECECDV
  • SSDT-AWAC:這是300系列RTC 插件,對於大多數B360,B365,H310,H370,Z390和某些Z370主板都是必需的,它們會阻止系統引導macOS。如果AWAC SSDT由於遺漏了傳統RTC時鐘而與AWAC SSDT不兼容,則可以選擇SSDT-RTC0 來檢查您是否需要它以及使用哪個時鐘,請參閱“ ACPI入門”頁面。
  • SSDT-PMC:因此,真正的300系列主板(非Z370)不會在ACPI中將FW芯片聲明為MMIO,因此XNU會忽略UEFI內存映射所聲明的MMIO區域。該SSDT帶回了NVRAM支持。有關更多詳細信息,請參見《ACPI入門指南》

在這裡,您將為系統添加SSDT修補程序,這些修補程序對筆記本電腦和OEM台式機最有用,但對於 USBMap禁用不受支持的GPU等也很常見。

我們可以使用 CorpNewt 的 SSDTTime 來設置正確SSDT 修正檔。其餘的SSDT可以使用 MaciASL 進行編譯,編譯後的SSDT具有.aml附檔名(已彙編),並將進入EFI / OC / ACPI文件夾。您可以通過運行File-> SaveAs-> ACPI Machine Language 使用MaciASL進行編譯。

1-2.ACPI–Block

對應Clover-ACPI-Drop Tables,除非你明白確切意義,暫時不填寫。

1-3.ACPI–Patch

這裡我們需要填寫一下熱補丁。取得熱補丁的方法,可以是對應Clover-ACPI-補丁用來做熱補丁,你也可以用Hackintool 工具軟體,製作OC 引導文件的臨時config.plist。使用XCode 程式將熱補丁拷貝過去。10.15中,把EC控制器 (EC0) 改名為 EC 來確保能進入Cataline 作業系統。假設你還不知道你的控制器叫什麼名字,請將下面熱補丁都填上:

Comment:EC0 to EC
Find:4543305F
Replace:45435F5F

解決RTC問題:

Comment:Fix AsRock Z390 BIOS DSDT Device(RTC) bug
Find:A00A9353 54415301
Replace:A00A910A FF0BFFFF

注意:某些主機板的 EC 控制器名字可能會叫 H_EC 等,請自行提取 DSDT並蒐索PNP0C09,來獲取EC控制器的名字。

1-4.ACPI-Quirks

該項目共有有五項,選擇Yes or No ,大致解釋如下:

QuirksValue解釋
FadtEnableResetNO主要用於老舊主板的開關機功能,如果你關機變重啟,可以勾選,一般情況下不勾選
NormalizeHeadersNO清理ACPI標頭字段,僅與macOS High Sierra 10.13相關(Z390選Yes)
RebaseRegionsNO嘗試試探性地重定位ACPI內存區域,除非使用了自定義DSDT,否則不需要。
ResetHwSigNO休眠相關項:在重新啟動後,無法維持硬體簽名,並導致從休眠中喚醒的問題的硬體設備。(桌機不需要設定)
ResetLogoStatusNO 重置日誌,一般不勾选
SyncTableldsNO將表標識符與 SLIC 表同步。 這可以解決修補表與 SLIC 表不兼容的問題,從而導致舊版本的許可問題

Booter

本節專門討論與OpenRuntime進行boot.efi修補有關的怪癖,它是AptioMemoryFix.efi的替代品

《OPENCORE 精闢解說》
Booter

2-1 MmioWhitelist

暫不討論。

2-2 Patch

本節允許設備直通通常被忽略的macOS,對於我們來說,我們可以忽略本節。

2-3.Booter-Quirks

本節是針對有關boot.efi修補和韌體修復設置,以下是我們需要做的變化DevirtualiseMmioRebuildAppleMemoryMapSyncRuntimePermissionsSetupVirtualMap

《OPENCORE 精闢解說》
Boorer 0.7.2
  1. AllowRelocationBlock:No
  2. AvoidRuntimeDefrag:YES
    此選項可修復UEFI運行時服務(日期,時間,NVRAM,電源控制等)。不支援NVRAM的主機板,必須啟動該功能。
  3. DevirtualiseMmio:Yes
    減少被盜的內存佔用空間,擴展slide=N值的選項,對於解決Z390上的內存分配問題非常有幫助。需要ProtectUefiServices以及對IceLake和 Z390 Coffeelake 搭配使用。如何找出 slide值(請參考這裡)。使用Z490主板者,因支援 NVRAM 之緣故,故毋須勾選此項。
  4. DisableSingleUser:No
    是否開啟單用戶模式(-s)。禁用Cmd+S-s,這更接近基於T2的計算機的行為。一般是不勾選,黑蘋果無需使用。
  5. DisableVariableWrite:Yes
    這是一個安全選項,允許在macOS中限制NVRAM訪問。這種Quick的要求OC_FIRMWARE_RUNTIME 實現的協議 OpenRuntime.efi,對一些非原生NVRAM主板需要模擬nvram.plist,進而寫入variable值。因此我們要禁止此項來防止其他程序對nvram進行寫入。
    注意:如果你的主機板若是支持原生nvram ,請選擇NO!已加入SSDT-PMC.aml者請選擇No
  6. DiscardHibernateMap:No
    重用原始的休眠記憶體訪問,僅某些舊版硬件需要。
  7. EnableSafeModeSlide:Yes
    此Quick的必要性取決於安全模式的可用性。如果啟動到安全模式失敗,則可以嘗試啟用此選項。此選項與在啟動到安全模式時遇到問題的用戶有關(例如,通過按住shift或使用-x boot參數)。默認情況下,安全模式強制滑動0,就好像系統是使用slide = 0 引導參數啟動的。此 Quick 嘗試修補boot.efi 以解除該限制,並使用其他值(從1到255)。需搭配ProvideCustomSlide一起啟用此Quick。像z390這樣本來也不用分佈式註入內存方式的(KASLR),我就選擇YES
  8. EnableWriteUnprotector:
    此選項通過在執行期間從CR0寄存器中刪除寫保護(WP)位來繞過UEFI運行時服務的代碼頁中的RˆX權限。這個 Quick 需要OC_FIRMWARE_RUNTIME在中實現的協議 FwRuntimeServices.efi。所以 nvram 能正常寫入而不受到UEFI內的一些服務的影響,任何主機板必須要選擇 YES
  9. ForceExitBootServices:
    確保ExitBootServices調用即使MemoryMap發生了更改也成功,除非有必要,否則請勿使用) 正常情況下選 NO
  10. ProtectMemoryRegions:
  11. ProtectSecureBoot:保護 UEFI 安全引導變量寫入參數時不被干擾而引起衝突。選擇Yes
  12. ProtectUefiServices
    這是保護UEFI Service 不被韌體給覆蓋的功能。包括硬體和虛擬機(例如VMware)在內的某些現代韌體可能會在驅動程序加載和相關操作期間更新指向UEFI Service 。這會直接破壞了影響記憶體管理的其他 Quirks,例如 DevirtualiseMmioProtectCsmRegion 或 ShrinkMemoryMap,並且還可能破壞其他 Quirks,具體取決於這些 Quirks。當使用Z390主板的用戶請選擇 Yes ,在 boot-args 的參數 slide=x and UEFI /Drivers/MemoryAllocation.efi 二者刪除,選擇No時,二者得保留。需與DevirtualiseMmio 搭配使用。
  13. ProvideCustomSlide:Yes
    當在記憶體不足時,提供自定義的KASLR slide,此選項強制 macOS 在可用的當中使用偽隨機值。這也確保了slide=出於安全原因,永遠不會將參數傳遞給操作系統。我選擇 Yes
    Only N/255 slide values are usable!
  14. ProvideMaxSlide:0
  15. RebuildAppleMemoryMap:No
    生成與macOS兼容的內存映射,用於修復戴爾5490上啟動macOS的問題,默認不勾選(false)。
  16. SetupVirtualMap:Yes
    該Quick的必要性由早期啟動故障確定,通過執行分配的虛擬記憶體到物理記憶體的早期啟動身份映射來解決此問題。因此,我們通過虛擬記憶體來建立連續性記憶體來提供OC使用,並同時映射到分散的物理記憶體當中。所以這個選項我們選擇 YES。若是開啟此項無法開機時,嘗試開啟RebuildAppleMemoryMap,兩者選擇其一。
  17. SignalAppleOS(新增):No
    讓電腦以為每次開機都是macOS,適用於部分 MacBook Pro 不允許 iGPU 於 Windows 使用。
  18. SyncRuntimePermissions:Yes
    更新運行時環境的記憶體權限,主要用於早期的macOS或Linux/Windows,默認不勾选(false)。

DeviceProperties

《OPENCORE 精闢解說》
DeviceProperties

此項是用來描述/注入設備信息。主要是顯卡與聲卡,當然,也可以定制一些設備到關於本機-系統報告-PCI列表中去。

3-1 ADD:設置設備屬性

PciRoot(0x0)/Pci(0x1b,0x0) -> Layout-id

  • 應用AppleALC音頻注入,您需要對主板具有的編解碼器進行自己的研究,並將其與AppleALC的佈局相匹配。AppleALC支持的編解碼器
  • 對於我們來說,我們將使用boot-arg alcid=xxx來完成此操作。alcid將覆蓋存在的所有其他佈局ID
  • 有趣的事實:字節順序被換的原因是由於字節序,特別是小Endians現代的CPU使用排序字節。你知道的越多!

我們可以透過 Hackintool 工具來尋找在Z390 音效卡的位置,。

PciRoot(0x0)/Pci(0x1f,0x3) 就是音效卡的位置。然後在注入音效ID 07000000即可。

《OPENCORE 精闢解說》
《OPENCORE 精闢解說》

PciRoot(0x0)/Pci(0x2,0x0) 內顯設定

本部分是通過WhateverGreen的幀緩衝器修補指南設置的,用於修復某些iGPU屬性,例如ig-platform-id。我們為此獲得適當值的方法是查看打算使用的幀緩衝區,然後交換成對的十六進製字節。

如果我們將ig-plat視為0xAABBCCDD,我們的交換版本將如下所示DDCCBBAA

我們使用的兩個ig-platform-id如下:

  • 0x3E9B0007 -使用Desktop iGPU驅動顯示器時使用
    • 07009B3E 十六進制交換時
  • 0x3E920003 -當Desktop iGPU僅用於計算任務且不驅動顯示器時使用
    • 0300923E 十六進制交換時

值得注意的是,對於10.12-> 10.13.5,您需要在Kaby Lake指南中將iGPU偽造為相同的值,因為這是在原生Coffee Lake iGPU出現之前。10.13.6本地支持Coffee Lake

另外再添加了2個屬性,framebuffer-patch-enableframebuffer-stolenmem。第一個通過WhateverGreen.kext啟用修補程序,第二個將最小失竊內存設置為19MB。這通常是不必要的,因為可以在BIOS中配置(建議64MB),但在不可用時需要配置。

對於在B360,B365,H310,H370,Z390上顯示詳細信息後出現黑屏問題的用戶,請參閱BusID iGPU修補頁面

類型
AAPL,ig-platform-id數據07009B3E
framebuffer-patch-enable數據01000000
framebuffer-stolenmem數據00003001

(這是不帶dGPU且沒有iGPU內存的BIOS選項的桌機 UHD 630的範例)

特別說明:移動用戶應參考移動iGPU部分以了解應使用的屬性:iGPU修補

Delete:刪除設備屬性,可忽略此部分

Kernel

《OPENCORE 精闢解說》
Kernel edit

4-1ADD

在這裡指定要加載的 kext,原來的排序非常重要,在編寫config 文件時,請確保 Lilu.kext 始終是第一個!Lilu之後依序為 VirtualSMC、AppleALC、WhateverGreen 等。提醒您,ProperTree用戶可以運行Cmd / Ctrl + Shift + R以正確的順序添加其所有kext,而無需手動鍵入每個kext。但排序可能會弄亂。

  • Comment
    • Name of the kext
    • ex: Lilu.kext
  • 已啟用
    • Self-explanatory,啟用或禁用kext
  • ExecutablePath
    • 實際可執行文件的路徑隱藏在kext中,您可以通過右鍵單擊並選擇kext的路徑Show Package Contents。通常,它們將是文件夾,Contents/MacOS/Kext但有些Plugin文件夾中隱藏了kext 。請注意,只有plist kexts不需要填寫。
    • 例如: Contents/MacOS/Lilu
  • PlistPath
    • info.plist隱藏在kext中的路徑
    • ex: Contents/Info.plist

4-2 BLOCK:

禁用一些驅動。默認即可。

4.3 Emulate

欺騙不受支持的CPU(如奔騰和賽揚)時需要

  • Cpuid1Mask:將此留空
  • Cpuid1Data:將此留空

此屬性滿足兩個需求: •啟用對不受支持的CPU型號的支持。為不受支持的CPU變體啟用XCPM支持。 通常,只需要注意EAX的值,因為它代表完整的CPUID。其餘字節將保留為零。字節順序為Little Endian,因此,例如,A9 06 03 00代表CPUID 0x0306A9 (Ivy Bridge)。
對於XCPM支持,建議使用以下組合仿冒。
•Haswell-E(0x306F2)至Haswell(0x0306C3):
Cpuid1Data:C3 06 03 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask::FF FF FF FF 00 00 00 00 00 00 00 00 00 00
•Broadwell-E (0x0406F1)to Broadwell(0x0306D4):
Cpuid1Data:D4 06 03 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask::FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00。

Cpuid1Mask 類型:plist數據,16字節
故障安全:全零
說明:Cpuid1Data中有效位的位掩碼。 當每個Cpuid1Mask位設置為0時,將使用原始CPU位,否則,設置位採用Cpuid1Data的值。

4-4 Patch

範例裡面的4個一般情況下不用,2個RTC的補丁可以用於華碩的主板(二選一),但需要測試。主要解決華碩主板重啟BIOS重置,需要按F1跳過的問題。

4-5 Quirks:

與內核,設置對我們來說,我們將實現DisableIOMapper, 除了AppleCpuPmCfgLockAppleXcpmCfgLock先解鎖CFG以外,這裏只要勾選DisableIoMapper、PanicNoKextDumpPowerTimeoutKernelPanic、XhciPortLimit。其他的應保留為默認值。

《OPENCORE 精闢解說》
Kernel-Quires

以下為Quires 簡易說明

  1. AppleCpuPmCfgLock:是
    • 僅當無法在BIOS中禁用CFG-Lock時才需要,如果你BIOS裡面CFG/MSR已經关闭,則不勾选。反之選。如何檢查CFG是否關閉?利用Hackintool-工具-點擊Intel標誌-從appleintellnfo獲取,查找CFG Lock,如果顯示0(MSR not lockde)則是啟用,如果顯示1(MSR locked)則是關閉。BIOS裡面沒有CFG/MSR相關選項的,如何CFG Lock 啟用的方法請看這裡。
  2. AppleXcpmCfgLock:是
    • 僅當無法在BIOS中禁用CFG-Lock時才需要,Clover對應的對像是KernelPM。請確認您可以禁用CFG-Lock,大多數係統無法使用它啟動,因此需要使用此Quirks
  3. AppleXcpmExtraMsrs:否
    • 主要是在無原生電源管理的CPU上使用,一般是Haswell-EBroadwell-ESkylake-X這三種CPU,必須勾选其他CPU不用勾選。
  4. AppleXcpmForceBoost:否
    • 此補丁將0xFF00寫入到MSR_IA32_PERF_CONTROL (0x199),一般CPU都不勾選。
  5. CustomSMBIOSGuid:否
    • 對UpdateSMBIOSMode自定義模式執行GUID修補。通常與戴爾筆記本電腦有關
  6. DisableIoMapper:是
    • 禁用VT-D,如果BIOS有相關設定就關閉它,若無在Boot-args加入dart=0加入此參數。SIP可以留在Catalina中,因此是更好的替代選擇。
  7. DisableRtcChecksum:這個選項讓Lilu。在沒有keepsyms=1引導參數的情況下,kext和其他一些可能在macOS Big Sur中發揮最佳性能。一般不勾選
  8. DisableRtcChecksum:一般 在AppleRTC中禁用校驗和寫入(0x58-0x59)。
  9. ExtendBTFeatureFlags:否。
    將FeatureFlags設置為0x0F以獲得藍牙的全部功能,包括連續性。
  10. ExternalDiskIcons:否
    AHCI控制器相關。現在主流機板對AHCI支持都很好,對於Z87及以下版本的NVMe,您只需通過DeviceProperties添加內置屬性。
  11. ForceSecureBootScheme:
    IMG4驗證的強制x86方案。
  12. IncreasePciBarSize:否
    將IOPCIFamily中的32位PCI磁條大小從1 GB增加到4 GB,在BIOS中啟用Above4GDecoding是一種更加干淨和安全的方法。某些X99板可能需要這樣做,如果需要,通常會在IOPCIFamily上遇到內核恐慌。請注意,在Mojave和更高版本上不需要
  13. LapicKernelPanic:否
    禁用HP系統通常需要的AP核心lapic中斷的內核恐慌。三葉草等效為Kernel LAPIC
  14. LegacyCommpage:否
    對10.4-10.6有效。
  15. PanicNoKextDump:是
    顯示kext出錯信息,一般選NO
  16. PowerTimeoutKernelPanic:是
    當遇到睡眠不能喚醒,只有重啟後才能喚醒的情況下勾選,桌機選NO。
  17. ProvideCurrentCpuInfo:否。
    向內核提供當前CPU信息。一般 這個quirk目前為內核提供了正確的TSC和FSB值,並且禁用了CPU拓撲驗證。注意:這些修補程序當前以Microsoft Hyper-V為目標,可能需要擴展以用於其他目不勾選
  18. ThirdPartyDrives:否
    啟用TRIM,NVMe不需要,但是基於AHCI的驅動器可能需要此功能。請檢查系統報告下的內容,以查看您的驅動器是否支持TRIM
  19. XhciPortLimit:是
    這實際上是15端口限制補丁程序,請不要依賴它,因為它不是固定USB的保證解決方案。請盡可能創建一個USB3.0端口編譯。原因是UsbInjectAll 重新實現了內置的macOS功能,而沒有適當的當前調整。僅在一個僅plist的kext中描述您的端口會更清潔,這不會浪費運行時內存,

4-6 Scheme

無須理會

Misc

《OPENCORE 精闢解說》
Mise 編譯

5-1 BlessOverride

這個選擇是尋找一些不同位置的EFI,一般空。

5-2 BOOT

引導屏幕設置(將所有內容保留為默認值)

  1. ConsoleAttributes:0
    設置圖形界面背景與前景顏色,默認為0,此處將不介紹,請看官方說明。
  2. HibernateMode:None。最好避免一起使用Hackintoshes進行休眠
    None — 禁用休眠
    Auto — 從RTC 或NVRAM 中檢測RTC — 從RTC 檢測NVRAM — 從NVRAM 檢測
  3. HideAuxiliary:否。
    隱藏引導是磁盤一些輔助選項,勾選時,隱藏如:recovery、Clean NVRAM等,按ESC、0或空格後,顯示而不隱藏。除非按下空格鍵,否則會更接近真實的Mac行為
    Description :默認情況下,隱藏開機引導項菜單中的輔助條目。滿足任一以下條件的引導項條目即會被視為「輔助項目」該引導項是macOS Recovery 分區引導項目是macOS Time Machine 分區引導項目被標註為 Auxiliary 引導項目是一個系統(如Clean NVRAM)即使被隱藏,仍然可以通過空格進入「擴展模式」查看所有條目(引導項菜單會被重新加載):隱藏輔助條目則助於加快啟動速度。
  4. PickerAttributes
    使用純文本用戶界面時背景與前景顏色選擇。根據UEFI規範,用參數的選擇,來調節背景與前景的顏色,默認值為0
  5. LauncherOption:啟動器中的選項
    Disabled-什麼都不做。Full -在引導加載程序啟動時,在UEFI變量存儲中創建或更新優先級最高的引導選項。要使該選項生效,必須啟用RequestBootVarRouting。Short -創建一個短啟動選項而不是一個完整的啟動選項。這種變體對於一些較老的固件很有用,特別是Insyde,但也可能是其他不能處理完整設備路徑的軟件。該選項提供了與第三方操作系統安裝的集成,並在它們覆蓋\EFI\BOOT\BOOTx64時進行升級。efi文件。通過在這個文件路徑中創建一個自定義選項,OpenCore不再用於引導。用於引導的路徑在LauncherPath選項中指定。
  6. LauncherPath:
    啟動程序選項的啟動路徑。Default是默認OpenCore.efi,其他路徑如\EFI\Launcher.efi。
  7. PickerVariant:
    用於引導管理的特定圖標集的選擇,一般選擇 Acidanthera\GoldenGate
  8. PickerAudioAssist:否,開啟/關閉(true/false)啟動時音頻。
    Description :在開機引導菜單中啟用螢幕中朗讀。macOS Bootloader屏幕朗讀的偏好設置是存在isVOEnabled.int32文件的preferences.efires中、並受操作系統控制。這裡僅提供一個等效的開關。切換OpenCore開機引導菜單和macOS BootLoader FileVault 2登錄界面也可以使用快捷鍵CommandF5:螢幕幕朗讀依賴可以正常工作的音效設備。
  9. PollAppleHotKeys:
    是否開一些組合熱鍵,如command+K;command+S。如果發現開機鍵槃無法選擇,則不勾選。並刪除OC/Drivers下的UsbKbDxe.efi。
  10. PickerMode:是否顯示開機啟動盤顯示,一般勾選
    Builtin設置OpenCore默認值。純文字介面。
    External模式:如果圖形界面引導可用則啟用,否則使用純文本用戶界面。Resources資料夾,包含開機聲音、圖形界面所需的圖片以及相應驅動。
    文件下載。
    Apple模式:如果蘋果引導可用則啟用,否則使用純文本用戶界面。在External模式下,完全禁用OpenCore對所有引導管理,除非有強制策略。在Apple模式下,可以繞過強制策略。要實現External模式,使用者可自定義界面,使用OcSupportPkg、 OcBootManagementLib庫,外部圖形接口參考在ExternalUi測試驅動程序中提供。OpenCore-Builtin模式引導包含在引導過程中支持幾個快捷鍵,類似於蘋果的BDS,目前有以下幾個:
    ㄧ、Default-默認選項:使用OpenCore內置引導
    二、ShowPicker項:勾選此項,則此項變為默認項,強制picker顯示,可以在引導時使用Option。
    三、ResetNvram項:在勾選AllowNvramReset的情況下,可以使用CMD+OPT+P+R組合鍵來實現清除(Reset) NVRAM,當然還可以用另一種方​​式來清除NVRAM。BootApple項:執行此選項會找到的蘋果操作系統的第一個引導,除非蘋果已經創建了默認選擇的操作系統。按住X鍵可選擇此選項。BootAppleRecovery項:此選項執行引導到Apple操作系統恢復模式。當在默認選擇的操作系統,或者不是由蘋果公司創建,在沒有恢復的情況下首先找到的操作系統。按住CMD+R組合鍵可選擇此選項。
  11. PollAppleHotKeys:否
    • 允許您在引導過程中使用Apple的熱鍵,具體取決於您可能需要使用OpenUsbKbDxe.efi而不是OpenCore的內置支持的固件。請注意,如果您可以在OC的選擇器中選擇任何內容,則禁用此選項會有所幫助。常用命令:
      • Cmd+V:啟用-V
      • Cmd+Opt+P+R:清理NVRAM
      • Cmd+R:引導恢復分區
      • Cmd+S:以單用戶模式引導
      • Option/AltShowPicker設置為時顯示啟動選擇器NO,替代方法是ESCCMD+S+MINUS — 禁用KASLR slide,需要事先禁用SIP。
      • Shift — 啟用安全模式。1
  12. ShowPicker:Yes
    是否顯示開機啟動盤顯示。
  13. TakeoffDelay0
    在選擇啟動硬碟之前與快捷鍵操作的延遲。一般是0,對於一些鍵盤驅動需要填寫5000-10000(微秒)。
  14. Timeout5
    這設置了OpenCore從默認選擇中自動啟動之前要等待的時間
《OPENCORE 精闢解說》
MISE-Boot

Debug:

有助於調試OpenCore引導問題

  1. AppleDebug:No
    • 啟用boot.efi日誌記錄,對於調試非常有用。請注意,這僅在10.15.4及更高版本上受支持
  2. ApplePanic:No
  3. DisableWatchDog:NO
    • 禁用UEFI看門狗,可以幫助解決早期啟動問題
  4. DisplayDelay:0
    • 顯示更多的調試信息,需要OpenCore的調試版本
  5. DisplayLevel2147483650
    • 顯示更多的調試信息,需要OpenCore的調試版本
  6. SerialInit:No
  7. SysReport:No
  8.  Target:3
    • 一般設定值。

5-3 Entries:

添加一些路徑。現在暫時不管

5-4 Security

安全設置

《OPENCORE 精闢解說》
  1. AllowNvramReset:是
    允許在啟動選擇器中和按下時重置NVRAM Cmd+Opt+P+R
  2. AllowSetDefault:是
    允許CTRL+EnterCTRL+Index在選擇器中設置默認啟動設備
  3. AllowToggleSip:啟用OpenCore選擇器中禁用和啟用系統完整性保護的入口,一般不勾选
  4. ApECID:蘋果磁盤加密引導標識。
    將此值設置為任何非零64位整數,將允許使用個性化的Apple Secure Boot標識符。如果要使用此設置,請確保使用加密安全的隨機數生成器生成一個64位隨機數。使用此值集和SecureBootModel有效且未被禁用,可以實現Apple Secure Boot的安全引導或實現完整全面的系統文件加密驗證。
  5. AuthRestart:否:
    為FileVault2啟用經過身份驗證的重啟,因此重啟時不需要密碼。可以視為安全風險,因此是可選的
  6. ExposeSensitiveData:由於使用nvram,填入3
  7. BlacklistAppleUpdate:勾選時,忽略試圖更新蘋果外圍固件的啟動選項(如multiupdate .efi)。
  8. DmgLoading:定義用於macOS恢復的磁盤映像(DMG)加載策略
    Signed —引導有Apple簽名的DMG鏡像。只選擇此項
    Any —引導任何DMG鏡像
  9. EnablePassword:啟用密碼保護。
  10. ExposeSensitiveData6
    顯示更多的調試信息,需要OpenCore的調試版本
  11. HaltLevelOptional
    顯示級別,填入:(0x80000000)的十進制2147483648
  12. SecureBootModel:蘋果安全啟動硬件參數,一般不啟用安全模式的情況下選擇默認 Default。這裏我選擇 Disabled。原因是PlatformInfo和SecureBootModel是獨立的,允許使用任何SMBIOS啟用Apple安全引導。將SecureBootModel設置為任何有效值,但要實現完全的安全性,還需要指定ApECID值。注意:默認值會隨著時間的推移而增加,以支持最新的主要發行版操作系統。不建議同時使用ApECID和默認值。Disabled
  13. ScanPolicy0
    • 0掃描所有硬體等的設備。
    • 默認17760515即可。
  14. Vault:磁盤加密
    • 當Optional時,為選擇磁盤不加密,一般情況下都填寫Optional
    • 當Basic時,啟用基本的系統文件加密驗證
    • 當Secure時,啟用完整全面的系統文件加密驗證

5-5 Tools:

用於運行OC調試工具。你可以使用OC文件內建的工具來使用它,這裏我只列出我常用的工具。

《OPENCORE 精闢解說》
NISE-Tool

NVRAM

《OPENCORE 精闢解說》
NVRAM

6-1 ADD

6-1-1 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14(Booter路徑,主要用於UI縮放)

  • DefaultBackgroundColor:boot.efi使用的背景色
    • 00000000:Syrah Black
    • BFBFBF00: 淺灰
  • UIScale
    • 01:標準分辨率(相當於三葉草0x28
    • 02:HiDPI(通常要求FileVault在較小的顯示器上正常運行,等效於Clover 0x2A

6-1-2 UID:

4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102 OpenCore的NVRAM GUID,主要與RTCMemoryFixup 用戶有關

rtc-blacklist:data <>

  • 要與RTCMemoryFixup結合使用,請參見此處以獲取更多信息:修復RTC寫入問題
  • 大多數用戶可以忽略此部分

6-1-3 UUID:

7C436110-AB2A-4BBB-A880-FE41995C9F82(系統完整性保護位掩碼)

  • General Purpose boot-args:
  • SystemAudioVolume:系統音量大小調節,默認46,建議60.
引導參數描述
-v這將啟用詳細模式,該模式顯示啟動時滾動顯示的所有幕後文本,而不是Apple徽標和進度條。對於任何Hackintosher來說,它都是無價之寶,因為它可以讓您深入了解啟動過程,並可以幫助您確定問題,問題擴展等。
調試= 0x100這會禁用macOS的看門狗,這有助於防止內核崩潰時重啟。這樣,您可以希望收集一些有用的信息,並按照麵包屑來解決問題。
keepsyms = 1這是debug = 0x100的輔助設置,它告訴OS還在內核崩潰時打印符號。這樣可以對引起恐慌的原因提供更多有用的見解。
alcid = 1用於設置AppleALC的layout-id,請參閱支持的編解碼器,以找出要用於特定係統的佈局。有關更多信息,請參見安裝後頁面
  • GPU 特定的 boot-args
引導參數描述
agdpmod = pikera用於禁用Navi GPU(RX 5000系列)上的boardID,否則,您將獲得黑屏。如果您沒有Navi,請不要使用(例如Polaris和Vega卡不應該使用此功能)
nvda_drv_vrl = 1用於在Sierra和HighSierra的Maxwell和Pascal卡上啟用Nvidia的Web驅動程序
-wegnoegpu用於禁用除集成英特爾iGPU以外的所有其他GPU,對於那些希望運行不支持其dGPU的較新版本的macOS的用戶有用
  • csr-active-config00000000

csr-active-config設置為00000000啟用系統完整性保護。您可以選擇許多其他選項來啟用/禁用SIP部分。常見的如下:

  • 00000000 -完全啟用SIP
  • 03000000 -允許未簽名的kext和寫入受保護的fs位置
  • FF030000 -禁用macOS High Sierra(0x3ff)中的所有標誌
  • FF0F0000 -禁用macOS Big Sur(0xfff)中的所有標誌,該標誌具有用於身份驗證的root的另一個新標誌
    寫入macOS系統分區使用macOS Catalina和更高版本,Apple將OS和用戶數據分為2個卷,默認情況下系統卷為只讀。為了使這些驅動器可寫,我們需要做一些事情:macOS Catalina
    1. 禁用SIP
    2. 將驅動器安裝為可寫(sudo mount -uw /在終端中運行)
    macOS Big Sur
    1. 禁用SIP
    2. 將驅動器安裝為可寫(請參見下面的鏈接以獲取命令)
    3. 更改後創建一個新的快照(有關命令,請參見下面的鏈接)
    4. 將此快照標記為下次啟動(有關命令,請參見下面的鏈接)
    ASentientBot@mac_editor提供的完整信用和命令鏈接:

注意:與Clover相比,使用OpenCore禁用SIP有很多不同,特別是除非在本Delete節中明確說明,否則NVRAM變量將不會被覆蓋。因此,如果您已經通過OpenCore或在macOS中設置了一次SIP,則必須覆蓋該變量:

  • NVRAM -> Block -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config
《OPENCORE 精闢解說》

建議保持啟用狀態,以實現最佳安全做法

  • nvda_drv:<>
    • 要啟用Nvidia WebDrivers,請在運行Maxwell或Pascal GPU時將其設置為31 。這與設置nvda_drv = 1相同,但是我們將其從文本轉換為十六進制,等效 Clover NvidiaWebAMD,Intel和Kepler GPU用戶應刪除此部分。
  • prev-lang:kbd:<>
    • 格式為的非拉丁鍵盤需要lang-COUNTRY:keyboard使用,儘管您可以指定空白,但建議保持空白(“示例”配置中的默認值為“俄語”):
    • 美國:en-US:0656e2d55533a30十六進制)
    • 完整列表可在AppleKeyboardLayouts.txt中找到
    • 提示:prev-lang:kbd可以更改為字符串,因此您可以en-US:0直接輸入而不用轉換為十六進制
類型
prev-lang:kbdStringzh-Hant:2 繁體中文

6-2 Block

強制重寫NVRAM變量,請注意Add 不會覆蓋 NVRAM中已經存在的值,因此boot-args應單獨保留類似的值。
非原生nvram主板勾选原生nvram主板不勾选。經過測試非原生nvram主板(主要是300系列主板)使用SSDT-PMC以後,就可以當原生nvram主板使用,不勾選此項。

6-3 LegacyEnable:否

6-4 LegacyOverwrite:否

允許從nvram.plist重寫固件變量,只有沒有本機NVRAM的系統才需要

6-5 LegacySchema

用於分配NVRAM變量,將LegacyEnable設置為YES

WriteFlash:No
允許為所有添加的變量寫入快閃記憶體。

《OPENCORE 精闢解說》

PlatformInfo

《OPENCORE 精闢解說》
PlatformInfo

為了設置SMBIOS信息,我們將使用CorpNewt的GenSMBIOS應用程序。

在這個Coffee Lake的示例中,我選擇了iMac19,1 SMBIOS 出於兼容性的考量,故意這樣做。Coffee Lake有兩種主要的SMBIOS:

  • iMac19,1 -為的是要接近於蘋果產品的型號。相似度比較高。
  • iMac19,2 -僅用於使用dGPU進行顯示而使用iGPU進行計算任務的計算機。
    • 注意:使用第九代主板使用者,應該使用 iMac19,1SMBIOS,為的就是能夠發揮iGPU+dGPU 雙硬解的功能。

GenSMBIOS:將為我們提供類似於以下內容的輸出:

  #######################################################
 #               iMac19,1 SMBIOS Info                  #
#######################################################

Type:         iMac19,1
Serial:       C02YTKZFJV3Q
Board Serial: C02923401QXLNV98C
SmUUID:       A64E502A-0D76-4D48-AF92-46BBA02DC630

上面所述為機型之參數,是根據你主機原本所設定的SMBIOS值,所產生出來的。
Type零件將復製到通用-> SystemProductName。
Serial零件將復製到通用-> SystemSerialNumber。
Board Serial零件將復製到通用-> MLB。
SmUUID零件將復製到通用-> SystemUUID。

我們將Generic-> ROM設置為Apple ROM(從真實Mac轉儲),您的NIC MAC地址或任何隨機MAC地址(可以是6個隨機字節,對於本指南,我們將使用11223300 0000

提醒您需要有效的序列號,但未使用的序列號,您想獲得一條消息,例如:“未驗證購買日期”。以下為表格中各列的說明。

7-1 Automatic:Yes

7-2 Generic

  • AdviseWindows
  • MLB:用macserial讀取或生成
  • ROM:<>可以是任意6 Byte MAC地址,如0x112233000000
  • SpoofVendor:YES (仿冒製造商為Acidanthera來避免出現衝突)
  • SystemUUID:建議留空並讓OpenCore自動注入設備自帶UUID或填入設備自帶UUID以防出現Windows激活問題
  • SystemProductName:用macserial讀取或生成
  • SystemSerialNumber:用macserial讀取或生成如何獲取該值,請參考這裡。

7-3 UpdateDataHub

選擇YES。更新數據中心分段。根據Automatic的值,這些細分會從GenericDataHub中讀取。

7-4 UpdateNVRAM

選擇YES。是否更新NVRAM中關於樣本信息的相關類別。根據Automatic的值,這些細分會從GenericPlatformNVRAM中讀取。所有其他細分都將在NVRAM部分中指定。如果替換值設置為false,則可以使用nvram部分更新上述變量;反之若替換值設置為true,而同時nvram部分存在任何分裂,會產生意料之外的行為。

7-5 UpdateSMBIOS

選擇YES。更新SMBIOS字段。

7-6 UpdateSMBIOSMode

選擇Create。用新分配的EfiReservedMemoryType替換錶,​​在需要CustomSMBIOSGuid怪癖的Dell筆記本電腦上使用Custom。

UEFI

《OPENCORE 精闢解說》
UEFI

8.1:APFS

按照下面APFS屬性配置,用於提供 APFS 的支持(即不用Config-UEFI-Drivers裡面的ApfsDriverLoader=0)

  1. EnableJumpstart:加載APFS驅動程序勾選(YES)。此選項執行已簽名APFS的加載
    驅動與掃描策略。
  2. GlobalConnect:No
  3. HideVerbose:勾選(YES)是隱藏APFS驅動程序的詳細日誌。
  4. JumpstartHotPlug :支持包含APFS的USB設備熱插拔,一般不勾選(NO)
  5. MinDate :APFS驅動的日期。一般填寫0。Catalina 之前版本則填入 -1
  6. MinVersion:APFS驅動的版本。一般填寫0。Catalina 之前版本則填入 -1
《OPENCORE 精闢解說》
UEFI-APFS

8.2:AppleInput屬性

這裏無需更動,採用預設值。

《OPENCORE 精闢解說》
UEFI-AppleInput
  • AppleEvent :確定是使用OC內置還是OEM Apple事件協議。此選項決定是否使用Apple的OEM Apple事件協議(如果可用),或者是否使用OpenCore的反向工程和更新的重新實現。一般來說,OpenCore的重新實現應該是首選,因為它包含了一些更新,比如顯著改進的鼠標光標精細移動和可配置的按鍵重複延遲。默認為 •Builtin-即使在可以使用OEM版本的Apple硬件上,依然建議使用此設置。推薦。•OEM-在大多數使用情況下,建議首選內置。Builtin
  • CustomDelays:啟用自定義密鑰重複延遲。一般選Auto。
    Auto — 當KeySupport為真時,視為啟用,否則視為禁用。Enabled — 使用值KeyInitialDelay和KeySubsequentDelay。Disabled — 使用Apple默認值500ms(50)和50ms(5)
  • KeyInitialDelay:選擇為0
  • KeySubsequentDelay :在Apple事件協議的OpenCore實現中配置後續鍵盤重複延遲,單位為10ms。一般設置為1
  • PointerSpeedDiv:在Apple事件協議的OpenCore實現中配置指針速度除數。為指針移動配置除數。Apple OEM默認值為 0是此選項的無效值。1
  • PointerSpeedMul :在Apple事件協議的OpenCore實現中配置指針速度倍增器。配置指針移動的乘數。Apple OEM默認值為1

8.2:Audio

建議採用默認值。如果你想要向白果那樣,開機會有『咚~』一聲,那麼你需要 Resources文件,裡面包含開機聲音、圖形界面所需的圖片以及相應驅動。以下是我個人的設定。

《OPENCORE 精闢解說》
UEFI-AUDIO
  1. AudioSupport-(false/true):關閉/開啟末端驅動以停止/啟用開機音頻
  2. AudioDevice-指定音頻控制器路徑,如:PciRoot(0x0)/Pci(0x1f,0x3)。
  3. SetupDelay-音頻編解碼器重新配置延遲(微秒),一般默認為0。
  4. AudioCodec-設置音頻控制器上解碼器的地址,如:0。
  5. AudioOut-設置解碼器輸出端口數,如1或4或7等。
  6. MinimumVolume-音量大小選擇,默認是20。
  7. ResetTrafficClass-在legacy HDA上將TCSEL重置為T0,一般默認為否
  8. PlayChime-Auto/false/true,自動/關閉/開啟啟動時播放鈴聲。
  9. VolumeAmplifier-音頻增益係數。0~1000。

8.3:ConnectDrivers

連接驅動程序。Yes。

8.4:Drivers

《OPENCORE 精闢解說》
UEFI-Drivers

UFEI驅動,一般情況下,新版OC只用二個:OpenHfsPlus.efiOpenRuntime.efi,至於UsbKbDxe.efi等根據自己的需要選擇。

  • CrScreenshotDxe— 按F10可以保存文件或圖像到OpenCore分區EFI(ESP)根目錄下
  • OpenRuntime — 使用OpenCore引導必須使用
  • OpenCanopy—圖形界面驅動
  • AudioDxe—開機聲音驅動
  • Ps2MouseDxe—PS/2鼠標驅動程序,用於UEFI圖形界面中觸摸板的驅動
  • Ps2KeyboardDxe.efi-鍵盤PS/2鼠標驅動程序,用於UEFI圖形界面中觸摸板的驅動
  • EnhancedFatDxe — 對FAT格式的支持
  • NvmExpressDxe — 對於Haswell或更早不支持NVMe SSD添加的驅動
  • OpenUsbKbDxe — 將USB鍵盤模擬為蘋果鍵盤的驅動
  • OpenHfsPlus.efi—對HFS格式的支持
  • HiiDatabase.efi
  • OpenPartitionDxe.efi-
  • XhciDxe — XHCI USB驅動,Sandy Bridge以前的CPU、主板或者USB3.0PCI卡需要此驅動

8.5:Input

  1. KeyFiltering:默認不勾選(false),啟用時,則是檢查鍵盤輸入完整性。只針對部分老舊主板。
  2. KeyForgetThreshold:設置為5
  3. KeyMergeThreshold:設置為2
  4. KeySupport勾选
  5. KeySupportMode:選擇Auto
  6. KeySwap勾选
  7. PointerSupport:如果是華碩Z87/Z97,勾選,其他不勾选
  8. TimerResolution:延遲選50000
  9. PointerSupportMode:範例是ASUS。不改
《OPENCORE 精闢解說》
UEFI-Input

8-6 :Output

8-6 Output: Relating to visual output

《OPENCORE 精闢解說》
  1. ClearScreenOnModeSwitch: NO。當需要保留一半以前繪製的圖像時,將在切換到TextMode之前強制黑屏。請注意,僅在使用SystemTextRenderer的情況下才需要這樣做
  2. ConsoleMode: Max
    指定控制台輸出大小,最好保持空白
  3. DirectGopCacheMode:No
  4. DirectGopRendering: No
    使用內置的圖形輸出協議渲染器作為控制台,主要與MacPro5,1用戶有關
  5. GopPassThrough一般 此選項通過基於UGA的代理為未實現該協議的固件提供GOP協議。該選項支持的值如下:Disabled
    Enabled:為所有UGA協議提供GOP。Apple-為支持AppleFramebufferInfo的協議提供GOP。Disabled-不提供GOP
  6. IgnoreTextInGraphics: NO。修復了文字和圖形輸出均只與使用SystemTextRenderer的用戶相關的UI損壞的問題
  7. ProvideConsoleGop: YES。啟用GOP(圖形輸出協議),這是macOS引導程序進行控制台處理所必需的,一旦內核接管,圖形輸出所需要的GOP
  8. ReconnectOnResChange: NO
  9. ReplaceTabWithSpace: NO根據固件的不同,某些系統在無法處理Tabs時可能需要此工具來正確編輯UEFI Shell中的文件。而是將其交換為空格,但是大多數人可以忽略它,但請注意,可能需要將ConsoleControl設置為True
  10. ResolutionMax
    設置OpenCore的分辨率,Max將使用最高可用分辨率或可以指定如2560×1440;3840×2160等等
  11. SanitiseClearScreen: NO
    修復了高分辨率顯示,以1024×768顯示OpenCore,僅與使用SystemTextRenderer的用戶有關
  12. TextRendererBuiltinGraphics用於固定OpenCore本身的分辨率,Resolution必須設置為Max正確運行
  13. UgaPassThrough:No

8.7 ProtocolOverrides

《OPENCORE 精闢解說》
UEFI-ProtocolOverrides
  1. AppleAudio:No。關閉/開啟蘋果音頻協議(不支持10.13以前的版本)。
  2. AppleBootPolicy:No。虛擬機的Mac需要用。
  3. AppleDebugLog:No。調用Apple調試日誌協議。
  4. AppleEvent:No。虛擬機並有vault需要用。
  5. AppleFramebufferInfo:
  6. AppleImageConversion:No。重建apple圖標。
  7. AppleImg4Verification:
  8. AppleKeyMap:No。重建apple功能鍵。
  9. AppleRtcRam:No。一般不勾選。04-19新增。
  10. AppleSecureBoot:No
  11. AppleSmcIo:No。替代之前的 VirtualSmc.efi。添加/No,未添加/Yes
  12. AppleUserInterfaceTheme :No。與主題有關。
  13. DataHub:No。重建DataHub。
  14. DeviceProperties:No。虛擬機需要。
  15. FirmwareVolume:No。File Vault的相關。
  16. HashServices:No。File Vault的相關。
  17. OSInfo:No。操作系統信息協議。
  18. UnicodeCollat​​ion:No。老舊主板需要。

8-8 Quirks

《OPENCORE 精闢解說》
UEFI-Quirks
  1. ActivateHpetSupport:激活對HPET的支持,一般不勾选
  2. DisableSecurityPolicy:NO。一般 這個設置禁用了固件的各種安全特性,解除任何安全引導。如果您使用UEFI Secure Boot,請不要啟用該功能。
  3. EnableVectorAcceleration:關閉/啟用SHA-512和SHA-384 算法的AVX矢量加速。
  4. ExitBootServicesDelay:較新的主板直接填入0,老舊主板填入3000000-5000000。
  5. ForgeUefiSupport:No。勾選時允許在舊版EFI 1.x固件(如MacPro5,1)的硬件上運行為UEFI 2.x固件一般不勾選。
  6. IgnoreInvalidFlexRatio:如果没有解鎖CFG,必须勾选
  7. ReleaseUsbOwnership:如果開機鍵盤鼠標卡死,勾選試試,一般是No。
  8. ReloadOptionRoms:No。一般 勾選時允許在固件版本通過forguefisupport升級後,在較舊的mac上重新加載NVIDIA GOP Option ROM。
  9. TscSyncTimeout:No。一般推薦用VoodooTSCSync、TSCAdjustReset或CpuTscSync (VoodooTSCSync的一個更專業的驅動)來解決TSC問題。
  10. RequestBootVarRouting:如果要使用“啟動磁碟”的選項,Yes
  11. UnblockFsConnect:與惠普NB相關,一般不勾选

8-9 ReservedMemory(04-19新增),用於填充plist dict值,避免系統寫入和使用特定設備或硬件的內存。

  • Address:例如-268435456,設預留記憶體區域的起始地址,防止系統訪問。
  • Comment:例如-HD3000: IGPU memory corruption errata。
  • Size:例如-268435456,設置保留內存區域的大小,必須與頁面對齊(4 kb)。
  • Enabled:默認為false(關閉)則不預留上面的內存。

最後測試

現在,您可以把編譯好config.plist 文件,存放在EFI / OC下的EFI中測試看看摟。

因此,感謝Ramus的製作檢查工具,可以幫助你編譯好的文件驗證您的配置:

檢查引導文件

  • 檢查config.plist設定值連結

暫無評論

發怖評論 編輯評論


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇