|Guide|製作OC USB Install Disk for Windows

前言:

本教學是針對沒有蘋果電腦的新手,如何在winsows 環境下,自行編輯OC引導文件以及製作macOS 安裝碟的方法。類似的教學文章和影片很多,但繁體中文教學的部分卻是很少,這對新手來說,即為最大的挑戰,也基於此,個人以實際的操作,並以圖文解說的模式,寫下這一篇教學文章,讓大家很快的構建屬於自己的黑蘋果。

社長看過很多的教學文章和影片之後,經過長時間的研究與測試,並整理所有的資訊和需要的文件,並簡化所有製作過程,而寫下以下的教學文章,前後一共有三個部分,分別為 Bios、編輯OC引導文件、製作安裝碟等三步驟。新手只要遵循以下要點,很快的就能製作macOS 安裝碟。

備註:

本教學製作的安裝碟,安裝的過程當中,必須要連網下載 macOS 映像檔,來進行安裝 macOS ,如果自己沒有固線連網的話,而是採用 Wifi 連網的情況下,成功率可能不高,不過,也可以下載完整的 macOS 映像檔安裝包來安裝也是可以。

以下的教學針對 10th/11th 設備使用,若是用戶的設備為可能是 9th 或是以下者,製作方法也可以套用沒問題。唯獨 OC引導文件部分,可以參考 Dortnia 的教學文章。

硬體設備:

  • GA Z490 ELITE AC
  • CPU:i9-10900K
  • RAM:美光DDR4 3200 8GB x2
  • SSD:WD BK SN750 1TB
  • GPU:藍寶石 RX5700 XT
  • EFI:OC 0.7.2、0.7.3 適用
  • OS:適用Catalina、Big Sur、Monterey

這裏要特別要注意的地方是主機板所內建的網路卡、音效卡的晶片型號。我用的是技嘉主機板,所以我從官網該主板型號的內容當中,找到相關資訊。如果你是用ASUS、MSI、ASRock 的主板,也可以嘗試到官網找到相關的資訊!

《|Guide|製作OC USB Install Disk for Windows》
GA Z490 ELITE

網卡:內建Realtek® 2.5GbE 網路晶片 (2.5 Gbit/1 Gbit/100 Mbit)

WiFI:Intel® Wi-Fi AC 9462

音效:內建Realtek® ALC1200晶片

這樣大家就可以找出對應 macOS 驅動程式了。請往下一個章節。

壹、準備工作:

這裡我列出的文件,請大家全數下載到桌面。

其他所需的檔案連結如下,請先下載好,並放在同一資料夾內

工具程式完整包ㄧ:
工具程式完整包二:

Python 3.9.7 程式碼腳本
RAR 解壓縮程式 解壓縮程式。7zip 亦可 解壓縮用
OpenCore 引導 RELEASE
gibMacOS ZIP macOS 安裝檔下載器
ProperTree ZIP plist 編輯器

KEXT 10th 適用

Lilu.kext
VirtualSMC 蘋果仿真器
WhateverGreen.kext 顯示卡驅動
AppleALC.kext 音效卡驅動
LucyRTL8125Ethernet.kext Realtek 2.5G 網路卡
IntelMausi.kext Intel 網路卡
Intel I225-V 以下有說明
FakePCIID.kext 連接到任何IOPCIDevice
FakePCIID_Intel_HDMI_Audio.kext 用於將Mac不支持的硬件設備仿冒成受支持的設備以開啟原生功能,這裡指的是音效部分
USBInjectAll.kext USB 驅動

KEXT 9th 以下適用

Realtek (81xx) Realtek 網路卡
AtherosE2200Ethernet.kext Atheros (Killer) 有線網卡

收集文件

尚未開始編輯 OC引導文件時,得先做好以下的準備工作:

ㄧ、更名:

複製 Docs/Sample.plist 移到 EFI/OC/ 資料夾,並更名為 config.plist

二、ACPI資料夾:收集SSDT 修正檔

位置:EFI/OC/ACPI 資料夾

這裡需要幾個 SSDT 來恢復 Clover 提供的功能:

SSDT-PLUG.aml CPU 電源管理。
SSDT-EC-USBX.aml 修復了嵌入式控制器和 USB 電源。
SSDT-AWAC.aml 10th以後主板採用最新的 AWAC 設備,而影響 macOS 系統啟動,故需要修護 RTC 設備問題。當 SSDT-AWAC.aml 由於缺少 Legacy RTC 時鐘而不兼容時,另替代方案是SSDT-RTC0.aml。
SSDT-RHUB.aml 需要修復華碩、MSI 主機板上的根設備錯誤。技嘉和華擎主板並不需要。

檢查 ACPI 資料夾是否有 SSDT-PLUG.aml、SSDT-EC-USBX.aml、SSDT-AWAC.aml、SSDT-RHUB.aml 等修護文件,你可以從 Docs/AcpiSamples/Binaries 資料夾取得,或者是下載 通用版的修護檔SSDT-Install.aml。

三、Drivers 資料夾:啟動核心文件

OpenCanopy.efi、OpenHfsPlus.efi、OpenRuntime.efi

四、Kexts 資料夾:音效、網卡、顯示等驅動文件

AppleALC.kext、FakePCIID_Intel_HDMI_Audio.kextFakePCIID.kext、Lilu.kext、LucyRTL8125Ethernet.kext、SMCProcessor.kext、SMCSuperIO.kext、USBInjectAll.kext、VirtualSMC.kext、WhateverGreen.kext、XHCI-unsupported.kext

五、Tools 資料夾:修護工具腳本

CleanNvram.efi、ResetSystem.efi

請確認以上收集主板所必須的文件是否已放入各自的資料夾之後,接下來就開始編輯 canfig.plist 。

貳、編輯 config.plist

下載 python 工具軟體並執行後,先不要關閉視窗,點一下DIsable path length limit,這樣你在編輯時,才不會出錯。

《|Guide|製作OC USB Install Disk for Windows》

再開啟 plist 編輯器 ProperTree ,點選 ProperTree.bat , 一下從 開啟 EFI/OC/config.plist 文件。如圖:點選 #WARNING 系列資訊反白後,直接按 DEL 刪除。.

《|Guide|製作OC USB Install Disk for Windows》
config.plist

加載文件:

把收集好的必須文件,全數加載在 config.plist 文件上。同時刪除原本已內建加載的『資訊』。這個動作可以省去分別加載SSDT文件、Kext 文件、OC 核心文件。

《|Guide|製作OC USB Install Disk for Windows》

選擇 EFI/OC 資料夾,確認。

《|Guide|製作OC USB Install Disk for Windows》

ㄧ、ACPI

《|Guide|製作OC USB Install Disk for Windows》
ACPI加載SSDT

1-1 Add

確認所有的SSDT 文件都有加載。SSDT-PLUG.aml、SSDT-EC-USBX.aml、SSDT-AWAC.aml、SSDT-RHUB.aml

1-2 Delete:刪除內容。

1-3 Patch:修補 ACPI 的DSDT、SSDT 等文件。這裡暫不動作。

1-4 Quirks:默認值即可。

二、Booter

這是使用 OpenRuntime 文件來修補 boot.efi 相關的問題。

《|Guide|製作OC USB Install Disk for Windows》

2-1 MimoWhitelist

本節允許設備直通到通常被忽略的 macOS,這裡可以跳過。

2-2 Patch

這裡不做修改。

2-3 Quirks

More in-depth Info

  • AvoidRuntimeDefrag: YES
    • 修復 UEFI 運行時服務,如日期、時間、NVRAM、電源控制等。
  • DevirtualiseMmio: YES
    • 減少被盜內存佔用的問題
  • EnableSafeModeSlide: YES
    • 啟用要在安全模式下使用 slide variables 。
  • ProtectUefiServices: YES
    • 保護 UEFI 服務不被 Z490 所需的 firmware 覆蓋。
  • ProvideCustomSlide: YES
    • 用於 Slide 滑動變量計算。啟用這個 Quirks 的必要性,是由 OCABC: Only N/256 slide values are usable!調試日誌中的消息決定的。如果該消息OCABC: All slides are usable! You can disable ProvideCustomSlide!出現在您的日誌中,您可以禁用。
  • RebuildAppleMemoryMap: YES
    • 生成與 macOS 兼容的內存映射,可能會破壞某些筆記本電腦 OEM 固件,因此如果您收到早期啟動失敗,請禁用此功能。
  • SyncRuntimePermissions: YES
    • 修復了與 MAT 表的對齊問題,並且需要使用 MAT 表啟動 Windows 和 Linux,也推薦用於 macOS。主要與 RebuildAppleMemoryMap 用戶相關。

三、DeviceProperties

添加音效、網卡、顯卡等設備的路徑和修正值。

《|Guide|製作OC USB Install Disk for Windows》

3-1 Add

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

這是通過 WhateverGreen 的 **Framebuffer Patching Guide 設置的,**用來設定 iGPU 屬性。如果您使用帶有-F系列 CPU,無需設定。

AAPL,ig-platform-id 是 macOS 用來確定 iGPU 驅動程序如何與我們的系統交互的值,有兩個值可供選擇,如下所示:

3-1-1 獨顯設定:

無頭幀緩衝區(其中 dGPU 是顯示輸出)。

07009B3E 無獨顯專用。
00009B3E 若該值不做用,可用 07009B3E 替代 
0300C89B 核顯僅計算不驅動。
  • Note::在 macOS 10.15.5 和更新版本中,使用 似乎有很多黑屏問題 07009B3E,如果您遇到類似問題,請嘗試切換到 00009B3E
  • iMac20,1:使用 i5 以下 CPU 使用 0300C89B
  • iMac20,2:使用 i7 以下 CPU 使用 0300C59B

3-1-2 核顯設定:

添加 framebuffer-patch-enable、framebuffer-stolenmem 屬性。第一個啟用通過 WhateverGreen.kext 進行修補,第二個將最小被盜內存設置為 19MB。一般是不需要的,因為在 BIOS 中以設定(推薦 64MB),萬一不起作用時,仍需要加入。

AAPL,ig-platform-id DATA 07009B3E
framebuffer-patch-enable DATA 01000000
framebuffer-stolenmem DATA 00003001

3-1-3 網卡設定:PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)

如果你的主板採用 Intel I225-V 2.5GBe controller 有關,這裡是要欺騙 Apple’s I225LM driver 以便支持主板 I225-V network controller:

device-id Data F2150000
  • **Note:**如果主版沒有 Intel I225 NIC,無需設定。
  • Note 2:如果你遇到 AppleIntelI210Ethernet kext 內核恐慌,改用這個設備路徑 PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
  • 技嘉主板網卡位置 PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)

3-1-4 音效卡設定:PciRoot(0x0)/Pci(0x1f,0x3)

layout-id 設定為1

亦可在 boot-argalcid=1來完成。

3**-2 Delete**

刪除內容。

四、Kermel

4-1 Add

這是加載 kext 的部分。這裡我們要調整kext 的順序,否則將無法順利啟動或是安裝系統。請依照以下順序調整。

Lilu.kext
VirtualSMC.kext(仿真器)
WhateverGreen.kext(顯卡)
AppleALC.kext(音頻)
LucyRTL8125Ethernet.kext(網卡)
FakePCIID.kext
FakePCIID_Intel_HDMI_Audio.kext

《|Guide|製作OC USB Install Disk for Windows》

4-2 Block

阻止某些 kexts 加載。無需設定

4-3 Emulate

需要欺騙不受支持的 CPU,幸運的是,在 10.15.5+ Comet Lake S 中添加了支持,因此無需在此處進行欺騙。

4-4 Force

用於從系統卷加載 kext,僅與緩存中不存在某些 kext 的舊操作系統相關(即 10.6 中的 IONetworkingFamily)。對我們來說,可以忽略。

4-5 Patch

Patches both the kernel and kexts.
Fixing I225-V controllers

This entry relates to Intel’s I225-V 2.5GBe controller found on higher end Comet Lake boards, what we’ll be doing here is tricking Apple’s I225LM driver into supporting our I225-V network controller. However, this is only needed on Catalina and Big Sur, up to 11.3.

Base String __Z18e1000_set_mac_typeP8e1000_hw
Comment String I225-V patch
Count Number 1
Enabled Boolean True
Find Data F2150000
Identifier String com.apple.driver.AppleIntelI210Ethernet
MinKernel String 19.0.0
MaxKernel String 20.4.0
Replace Data F3150000
  • Note 1: If your board didn’t ship with the Intel I225 NIC, there’s no reason to add this entry.
  • Note 2: Leave all other keys at their default values

4-6 Quirks

與內核相關的設定。

《|Guide|製作OC USB Install Disk for Windows》
AppleXcpmCfgLock Yes 解除 CFG-Lock 
DisableIoMapper Yes 關閉 VT-D 
PanicNoKextDump Yes
PowerTimeoutKernelPanic Yes
XhciPortLimit Yes 解除 USB 15端口限制,若是運行 macOS 11.3+ 則禁用

4-7 Scheme

與舊版引導相關的設置(即 10.4-10.6),對於大多數人來說,您可以跳過。

五、Misc

這是啟動螢幕的設置。請依照紅線部份啟用。

5-1 Boot

Settings for boot screen (Leave everything as default).

5-2 Debug

《|Guide|製作OC USB Install Disk for Windows》

5-3 Security

安全設定

《|Guide|製作OC USB Install Disk for Windows》
AllowNvramReset Yes 允許在引導選擇器中和按下時重置 NVRAM
AllowSetDefault Yes 允許CTRL+EnterCTRL+Index 並在系統碟中設置默認引導設備
BlacklistAppleUpdate Yes
ScanPolicy 0 安裝用設定值
SecureBootModel Disabled
Vault Optional 檔案保險庫設定,這裡不啟用。
  • AllowNvramReset : 是
    • 允許在引導選擇器中和按下時重置 NVRAM Cmd+Opt+P+R
  • AllowSetDefault : 是
    • 允許CTRL+EnterCTRL+Index 並在選擇器中設置默認引導設備
  • ApECID:0
    • 用於收集個性化的安全啟動標識符,目前由於 macOS 安裝程序中的錯誤,此怪癖不可靠,因此我們強烈建議您將其保留為默認值。
  • AuthRestart : 否
    • 為 FileVault 2 啟用經過身份驗證的重新啟動,因此重新啟動時不需要密碼。可以考慮安全風險所以可選
  • BlacklistAppleUpdate : 是
    • 用於阻止固件更新,用作額外級別的保護,因為 macOS Big Sur 不再使用run-efi-updater變量
  • DmgLoading : Signed
    • 確保僅加載已簽名的 DMG
  • ExposeSensitiveData:6
    • 顯示更多調試信息,需要調試版本的 OpenCore
  • Vault:Optional
    • 保險文件酷的設定,這裡不建議使用。一旦啟用可能無法使用此設置啟動安全
    • 建議設定Optional,注意區分大小寫
  • ScanPolicy:0
    • 掃描主機可用的設備。**將此設置為默認值不會啟動 USB 設備,**允許您查看所有可用硬碟和設備。
  • SecureBootModel : Disabled
    • 在 macOS 中控制 Apple 的安全啟動功能,請參閱**安全部分了解更多詳情。
    • 注意:用戶可能會發現在已安裝的系統上升級 OpenCore 會導致過早啟動失敗。

6-4 Tools

加入修護工具。

  1. CleanNvram.efi 清除NVRAM
  2. ResetSystem.efi 重新啟動

六、NARAM

這裡是設定有關OC 目錄和解析度、引導參數的的設定。

《|Guide|製作OC USB Install Disk for Windows》

6-1 Add

6-1-1 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

用於 OpenCore 的 UI 縮放,默認對我們有用。

DefaultBackgroundColor:boot.efi 使用的背景顏色

  • 00000000: Syrah Black
  • BFBFBF00: Light Gray

UIScale:

  • 01: 標準分辨率
  • 02: HiDPI(通常需要 FileVault 在較小的顯示器上正常運行)如4K 螢幕

6-1-2 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102

OpenCore’s NVRAM GUID, mainly relevant for RTCMemoryFixup users

  • rtc-blacklist: <>
    • 要與 RTCMemoryFixup 結合使用,請參閱此處了解更多信息:修復 RTC 寫入問題
    • 大多數用戶可以忽略此部分

6-1-3 7C436110-AB2A-4BBB-A880-FE41995C9F82

系統完整性保護位掩碼

-v igfxfw=2 igfxonln=1 keepsyms=1 shikigva=80 agdpmod=pikera -lilubetaall

  • General Purpose boot-args:
-v 跑碼畫面,以便除進行除錯
debug=0x100 進用 macOS’s watchdog ,防止內核崩潰重新啟動。
keepsyms=1 這是 debug=0x100 的配套設置,它告訴操作系統也在內核崩潰時打印符號。這可以提供一些關於導致恐慌本身的更有用的見解。
alcid=1 AppleALC 設置 layout-id
  • Networking-Specific boot-args:
dk.e1000=0 禁用com.apple.DriverKit-AppleEthernetE1000(Apple 的 DEXT 驅動程序)與高端 Comet Lake 板上的 Intel I225-V 以太網控制器匹配,導致加載 Apple 的 I225 kext 驅動程序。 這個引導參數在大多數板上是可選的,因為它們與 DEXT 驅動程序兼容。但是,技嘉和其他幾個板子需要它,只能使用kext驅動程序,因為DEXT驅動程序會導致掛起。 如果您的主板未隨附 I225-V NIC,則您不需要此功能。
  • GPU-Specific boot-args:
agdpmod=pikera 用於禁用 Navi GPU(RX 5000 系列)上的板 ID 檢查,否則您將獲得黑屏。如果您沒有 Navi,請不要使用(即 Polaris 和 Vega 卡不應使用此功能)
-wegnoegpu 用於禁用除集成 Intel iGPU 之外的所有其他 GPU,對於那些希望運行不支持其 dGPU 的較新版本 macOS 的用戶很有用
  • csr-active-config00000000
    • “系統完整性保護”(SIP) 的設置。通常建議csrutil通過恢復分區更改此設置。
    • csr-active-config 默認設置為00000000啟用系統完整性保護。您可以選擇許多不同的值,但總體而言,我們建議啟用此選項以獲得最佳安全實踐。更多信息可以在我們的故障排除頁面中找到:禁用 SIP
  • run-efi-updaterNo
    • 這用於防止 Apple 的固件更新包安裝和破壞啟動順序;這很重要,因為這些固件更新(適用於 Mac)將不起作用。
  • prev-lang:kbd: <>
    • 設定系統語言,繁體中文 zh-Hant:2
prev-lang:kbd String zh-Hant:2

6-2 Delete

Info

Forcibly rewrites NVRAM variables, do note that Add will not overwrite values already present in NVRAM so values like boot-args should be left alone. For us, we’ll be changing the following:

LegacyEnable No 允許將 NVRAM 存儲在 nvram.plist 上,這是沒有本機 NVRAM 的系統所需要的
LegacyOverwrite No 允許從 nvram.plist 覆蓋固件變量,只有沒有本機 NVRAM 的系統才需要
LegacySchema 用於分配 NVRAM 變量,與 LegacyEnable 設置為 YES 一起使用
WriteFlash Yes 允許為所有添加的變量寫入閃存。

七、PlatformInfo

這裡是要設定蘋果的機型。

《|Guide|製作OC USB Install Disk for Windows》

使用 CorpNewt 的**GenSMBIOS**應用,設置 SMBIOS 信息。
Comet Lake 有兩個主要的 SMBIOS:

iMac20,1 i7-10700K and lower(ie. 8 core and lower)
iMac20,2 i9-10850K and higher(ie. 10 core)

執行 GenSMBIOS 工具,選擇選項 1 下載 MacSerial 和選項 3 選擇 SMBIOS。

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

######################################################

iMac20,2 SMBIOS Info

######################################################

Type:         iMac20,2
Serial:       C02FRJYK046M
Board Serial: C02121310GU0000JC
SmUUID:       5622BA2B-6508-4673-882D-2E2CBB9B3BE
Apple ROM:    DC0C5CB0B420

  • Note: MacSerial currently does not support Linux, so you must grab a Windows or macOS machine to generate the values

Type 填入 Generic -> SystemProductName.
Serial 填入 Generic -> SystemSerialNumber.
Board Serial 填入 Generic -> MLB
SmUUID 填入 Generic -> SystemUUID.

注意: Generic -> ROM 設置為 Apple ROM(從真正的 Mac 轉儲),默認值為11223300 0000,安裝後在進入系統裡者出網卡 NIC MAC 地址或任何的 MAC 地址填入即可。

提醒:如何得知生成的序號是否有效?透過查詢查詢蘋果產品保固網頁,就可以知道“序列號無效”或“購買日期未驗證”。

Automatic: YES

  • 基於 Generic 部分而不是 DataHub、NVRAM 和 SMBIOS 部分生成 PlatformInfo

八、UEFI

ConnectDrivers: YES

  • 強制 .efi 驅動程序,更改為 NO 將自動連接添加的 UEFI 驅動程序。這可以使啟動稍微快一點,但並非所有驅動程序都會自行連接。例如,某些文件系統驅動程序可能無法加載。
《|Guide|製作OC USB Install Disk for Windows》

8-1 APFS

關於 APFS 驅動程序加載器設置,我們將更改以下內容:

MinDate -1 Catalina 以下的系統使用
MinVersion -1 Catalina 以下的系統使用

8-2 AppleInput
無需更動

8-3 Audio
啟用開機聲、音頻設備指定路徑、音量大小。助理不設定。

8-4 Drivers
加載啟動核心文件。裏面至少有:

  • OpenRuntime.efi
  • OpenHfsPlus.efi
  • OpenCanopy.efi
  • AudioDxe.efi

請依照順序排列。否則開機會有問題。

8-4 Input
無需更動

8-5 Output
無需更動

8-6 ProtocolOverrides
無需更動

8-7 Quirks
這里只要注意你的CFG 是否有解鎖。
IgnorelnvalidFlexRatio. CFG 未解鎖『Yes』

8-8 ReservedMemory

無需更動,最後完工存檔。

參、製作安裝碟

開啟 gibMacOS/MakeInstall.bat windows批次檔
選擇 USB 安裝碟 編號 :2
格式化 GPT 格式 :G
再輸入端填入:2G

Please select a disk or press [enter] with no options to refresh:2G

終端機會自動把 USB 隨身碟格式化,等待下一步安裝映像檔的動作。如下圖,選擇 y

《|Guide|製作OC USB Install Disk for Windows》

下圖則是告訴你貼上恢復鏡像檔的路徑。

《|Guide|製作OC USB Install Disk for Windows》

下載 macOS 恢復鏡像檔:

開啟 gibMacOS/gibMacOS.bat windows批次檔,如下圖
再輸入端鍵入:R
R. Toggle Recovery-Only (Currently Off)

這裡看到的都是升級檔和鏡像檔,這裡我們就選擇 11. macOS Catalina 10.15.7 (19h15)

輸入端鍵入:11

《|Guide|製作OC USB Install Disk for Windows》

這個時候終端就開始下載約 500MB 的 macOS 恢復鏡像檔,同時也出現路徑:

C:\Users\SKY\Desktop\gibMacOS-master\macOS Downloads\publicrelease\001-68446 – 10.15.7 macOS Catalina

我們把該路徑完整的複製起來,

《|Guide|製作OC USB Install Disk for Windows》

終端機開始複製檔案到 USB 隨身碟

《|Guide|製作OC USB Install Disk for Windows》

複製完後,出現以下畫面,代表已經成功了。

《|Guide|製作OC USB Install Disk for Windows》

肆、BIOS 設定

BIOS是什麼?

《|Guide|製作OC USB Install Disk for Windows》

BIOS是個程序,存儲在主機板的BIOS晶片中。BIOS用於計算機硬體自檢、CMOS設置、引導作業系統啟動、提供硬件I/O、硬體中斷等4項主要功能,因此BIOS程序主要有Boot Block引導模塊、CMOS設置模塊、擴展配置數據(ESCD)模塊、DMI收集硬件數據模塊,其中引導模塊直接負責執行BIOS程序本身入口、計算機基本硬件的檢測和初始化,ESCD用於BIOS與OS交換硬件配置數據,DMI則充當了硬件管理工具和系統層之間接口的角色,通過DMI,用戶可以直觀地獲得硬件的任何信息,CMOS設置模塊就是實現對硬件信息進行設置,並保存在CMOS中,是除了啟動初始化以外BIOS程序最常用的功能。

當按下電源開關時,電源就開始向主板和其他設備供電,由主板北橋向CPU發復位信號,對CPU初始化;穩定電壓後復位信號便停止。當電壓穩定後,CPU便在系統BIOS保留的內存地址處執行跳轉BIOS起始處指令,開始執行POST自檢。

在POST自檢中,BIOS只檢查系統的必要核心硬體是否有問題,主要是CPU、640K基本內存、顯卡是否正常,PS/2鍵盤控制器、系統時鐘是否有錯誤等等。由於POST檢查在顯卡初始化以前,因此在這個階段如發生錯誤,是無法在屏幕上顯示的,不過主板上還有個報警揚聲器,而且如果主板的8255外圍可編程接口晶片沒有損壞的話,POST報警聲音一定是會出來的。可以根據報警聲的不同大致判斷錯誤所在,一般情況下,一聲短「嘀」聲基本代表正常啟動,不同的錯誤則是不同的短「嘀」聲和長「嘀」聲組合。POST自檢結束後,BIOS開始調用中斷完成各種硬件初始化工作。

EFI是什麼?

是Extensible Firmware Interface的詞頭縮寫,由Intel 所創,直譯過來就是『可擴展固件接口』,它是用模塊化、高級語言(主要是C語言)構建的一個小型化系統,它和BIOS一樣,主要在啟動過程中完成硬件初始化,但它是直接利用加載EFI驅動的方式,識別系統硬體並完成硬體初始化,徹底摒棄讀各種中斷執行。EFI完全是32位或64位,在EFI中就可以實現處理器的最大尋址,因此可以在任何內存地址存放任何信息。

UEFI是什麼?

《|Guide|製作OC USB Install Disk for Windows》

在新的主機板看到花花綠綠酷炫的圖形化介面,以及可以用滑鼠鍵盤操作的”BIOS”畫面,就是UEFI介面。(但是也有類似BIOS文字介面的UEFI哦!)即使你的PC使用術語“BIOS”,你今天購買的新型電腦或主機板肯定會附帶UEFI韌體而不是BIOS。而UEFI對於一般使用者來說最顯著的就是開機速度明顯提升!

《|Guide|製作OC USB Install Disk for Windows》

當EFI發展到1.1的時候,英特爾決定把EFI交給了Unified EFI Form的國際組織,後續也稱為UEFI,UEFI,其中的EFI和原來是一個意思,U則是Unified(一元化、統一)的縮寫,所以UEFI的意思就是「統一的可擴展固件接口」,與前身EFI相比,UEFI主要有以下改進:

首先,UEFI具有完整的圖形驅動功能,完整的圖形驅動,無論是PS/2還是USB鍵盤和鼠標,UEFI一律是支持的。

安全啟動
安全啟動(Secure Boot),實際上通俗的解釋是叫做韌體驗證。開啟UEFI的安全啟動後,主板會根據TPM晶片(或者CPU內置的TPM)記錄的硬體簽名對各硬體判斷,只有符合認證的硬體驅動才會被加載,而Win8以後的作業系統加載的過程中對硬體驅動繼續查簽名,凡符合Windows記錄的硬體才能被Windows加載,據說這是防止駭客入侵所設下的機制,相對地也會造成系統安裝變得壟斷。最後這項也有選擇項,讓用戶是否開啟或是關閉。

GPT 是什麼?

伴隨著EFI,一種全新的GUID磁盤分區系統(GPT)被引入支持,傳統MBR磁盤只能存在4個主分區,只有在創建主分區不足4個時,可以建立一個擴展分區,再在其上建立被系統識別的邏輯分區,邏輯分區也是有數量的,太多的邏輯分區會嚴重影響系統啟動,MBR硬盤分區最大僅支持2T容量,對於現在的大容量硬盤來說也是浪費。GPT支持任意多的分區,每個分區大小原則上是無限制的,但實際上受到OS的規定限制不能做到無限,不過比MBR的2T限制是非常重要的進步。GPT的分區類型由GUID表唯一指定,基本不可能出現重複,其中的EFI系統分區可以被EFI存取,用來存取部分驅動和應用程式,雖然這原則上會使EFI系統分區變得不安全,但是一般這裏放置的都是些「邊緣」數據,即使其被破壞,一般也不會造成嚴重後果,而且也能夠簡單的恢復回來。

CSM是什麼?

《|Guide|製作OC USB Install Disk for Windows》

CSM: Compatibility Support Module相容性支援模組,主機板改進到UEFI之後,那沒有支援UEFI的顯示卡,硬碟等等硬體怎麼辦呢?這時就需要CSM的出現,他是在UEFI淘汰掉BIOS中的過度功能,模擬傳統BIOS。也就是說在UEFI架構下,透過CSM模擬BIOS來相容只支援BIOS開機的裝置。也稱為Legacy模式、LegacyMode、Legacy BIOS。所以如果要安裝純UEFI也就是將CSM給關閉(Disable)。

BIOS與UEFI 之間的差異

無論EFI還是UEFI,都必須要有預加載環境、驅動執行環境、驅動程序等必要部分組成,為了支持部分舊設備(如在UEFI下掛載傳統MBR硬碟,不支持UEFI啟動的顯卡在UEFI下仍然支持運行等),新增了一個CSM兼容性支持模塊。而EFI或UEFI都是僅支持GPT磁盤引導系統的。蘋果就是採用這樣的硬碟格式。

BIOS先要對CPU初始化,然後跳轉到BIOS啟動處進行POST自檢,若過程如有嚴重錯誤,則電腦會用不同的報警聲音提醒,接下來採用讀中斷的方式加載各種硬體,完成硬件初始化後進入作業系統啟動過程。而UEFI則是運行預加載環境先直接初始化CPU和內存,其後啟動PXE採用枚舉方式搜索各種硬件並加載驅動,完成硬體初始化,之後同樣進入作業系統啟動過程。

一、ACPI是什麼?ACPI其實是一種電源管理標準,ACPI是Advanced Configuration and Power Interface的首字母縮寫,一般翻譯成高階電源管理,是Intel、Microsoft和東芝共同開發的一種電源管理標準。

ACPI是什麼?

《|Guide|製作OC USB Install Disk for Windows》

ACPI (Advanced Configuration and Power Interface),故名思義是對硬體的電源管理和設定的介面。它是由Intel、Microsoft、Phoenix、Toshiba等不同領域的製造商所訂定,它的目的就是讓OS可以對hardware做以上的動作。它的架構主要都在BIOS階段會建立起來,所以我們必須熟悉這本ACPI spec, 目前最新的版本是6.3。

ACPI既不是軟體的spec,也不是硬體的spec,它包括了軟體和硬體的元素,目的上面也說過,它是讓OS可以對Hardware做電源管理和設定的介面。如圖紅色部分就是ACPI的範圍:

ACPI可以做的事情很多,大致可分為十大類:

System power management: 整個系統的電源管理:
ACPI定義了許多Sleep狀態,如S1、S3、S4、S5等,可以在Sleep狀態被Device喚醒,Sleep狀態數字愈高表示睡得越深、耗的電量越少,需要被喚醒的時間也越長。

Device power management: 週邊裝置的電源管理:
ACPI定義D0、D1、D2、D3…,數字越大表示耗電量越少,D0表示週邊裝置運作中。ACPI Table也定義了週邊裝置的相關電源控制,可以在OS端透過AP將週邊裝置設定較省電的模式。

Processor power management: 處理器的電源管理:
ACPI定義了當CPU不在Sleep狀態時且閒置時,可以進入low power 狀態,也就是C State,數字越大表示越省電,C0表示運作中。

Device and processor performance management:週邊裝置和處理器的效能管理:
ACPI定義為當CPU和設備在動作的時候(C0或D0),做改變效能的動作,這裡指的是P State,它的狀態改變會影響運作的效能,通常是降頻來動作,也可以達到省電的功能。

介紹完四個功能,發現了許多狀態,這是屬於Power State的部份,下面以G State圖表示可以看得更清楚。G0表示系統在工作中,G1為Sleeping, G2為soft off (S5), G3為Mech off(電源斷開).

《|Guide|製作OC USB Install Disk for Windows》

Configuration / Plug and Play: 組態和隨插即用:
ACPI提供了介面讓OSPM可以把資源在插入和移除之間做組態。這些組態將定義在DSDT和SSDT中,它將有一個ID來代表它的Device.

System Event: 糸統事件:
ACPI定義了通用的事件模組,如Plug and Ply、Power management、Thermal 等。當系統事件發生時,core logic會設定一個bit在Status Register中來表示事件發生,如果對應的Bit在enable register 被設定,那麼會發出SCI來告訴OS. 當OS 收到SCI事件時,它會去找該事件所對應的control method. 這些control method會以AML的方式告訴OS做什麼事,我們則要用ASL來撰寫它。

Battery management: 電池管理:
支援ACPI的電池裝置它是透過OS且以EC來控制,或者由電池的control method來控制。這邊的control method也是由ASL來實作它。

Thermal management: 熱的管理:
對於Device的熱管理也是在ACPI定義的範圍,它提供了簡單的、可調整的模組來給OEM定義其Thermal zone、Thermal indicator和method for cooling thermal zones.

Embedded Controller: ACPI:
定義了標凖的硬體的和軟體的溝通介面給OS bus enumerator和EC之間來做溝通,也就是說可以由Driver來存取EC的資源,讓OEM可以提供platform features給OS的AP使用。

SMBus Controller: ACPI:
定義了標凖的硬體的和軟體的溝通介面給OS bus enumerator和SMBus Controller之間來做溝通,也就是說可以由Driver來存取SMBus device的資源,讓OEM可以提供platform features給OS的AP使用。

在計算機應用平台,ACPI 越來越重要。ACPI由很多表組成,包括:RSDP,SDTH,RSDT,FADT,FACS,其中DSDT 包含了所有和基本系統(basesystem)不同的設備的信息,basesystem 每台機器都是一樣的,這個是在acpispec 裡指定的,但是每台機器都是不相同的,所以不相同的設備大都是由DSDT 表來描述。它包含了很多AML代碼。大多數BIOS 是針對windows 開發的,而windows 自己也不完全遵循acpi 規範,所以因為BIOS 的bug,這些代碼本身可能有錯,導致其他的系統,如linux,mac os 出錯。

Mac OS X不完整支持ACPI規範,僅支持它的子集DSDT對於非蘋果電腦,要使用上盡可能完美的OS X系統,可以說修改DSDT是最有效的方法。

DSDT 是The Differentiated System Description Table 的簡寫。字面上就可以知道它是一個ACPI描述系統不同信息的表。它包含了所有除基本系統以外所有不同設備的信息,也就是 DSDT 表代碼為ACPI Machine Language (AML)。用戶通過修改DSDT可以得到更好的硬件支持,最簡單的理解就是DSDT是描述硬件的。修改DSDT 的主要目的就是讓mac系統識別存在這個硬件並告訴mac 系統你的硬件位置,以便讓mac 系統內置的驅動來驅動硬體工作。這裡往後再來詳述吧!

五、結論:

所以主機板使用UEFI不僅可以擴展更多硬體設備達到最佳化,不僅開機速度快,同時也減少了開機等待的時間。打從蘋果採用Intel CPU x86 架構以後,對自家的硬體也是採用這樣UEFI的規格。

以上的簡易說明,大家可以明白蘋果在自家的電腦應上,採用何種規格與技術,那麼接下來UEFI SET 就非常的簡單多了,只要模擬蘋果電腦所需要的環境,那麼安裝黑蘋果就不是一件困難的事情了。以下的設置是根據主機板UEFI 選項來設定,這也可以套用其他不同品牌的主板來設定唷。

Disable

  • Fast Boot
  • Secure Boot
  • Serial/COM Port
  • Parallel Port
  • VT-d (can be enabled if you set DisableIoMapper to YES)
  • CSM
  • Thunderbolt(For initial install, as Thunderbolt can cause issues if not setup correctly)
  • Intel SGX
  • Intel Platform Trust
  • CFG Lock (MSR 0xE2 write protection)(This must be off, if you can’t find the option then enable AppleXcpmCfgLock under Kernel -> Quirks. Your hack will not boot with CFG-Lock enabled)

Enable

  • VT-x
  • Above 4G decoding
    • 2020+ BIOS Notes: When enabling Above4G, Resizable BAR Support may become an available on some Z490 and newer motherboards. Please ensure this is Disabled instead of set to Auto.
  • Hyper-Threading
  • Execute Disable Bit
  • EHCI/XHCI Hand-off
  • OS type: Windows 8.1/10 UEFI Mode
  • DVMT Pre-Allocated(iGPU Memory): 64MB
  • SATA Mode: AHC

et BIOS settings as follows (what worked for me):

CFG-Lock: Disabled
Super IO Serial Port: Disabled
VT-d: Disabled
CSM Support: Enabled
XHCI Hand-Off: Enabled
Legacy USB Support: Disabled
Network Stack: Disabled
XMP: Profile 1: Enabled
UEFI Booting: Enabled
Secure Boot: Disabled
Fast Boot: Disabled
OS Type: Other
Platform Power Management: Enabled
AC BACK: Always On
Power On By Keyboard: Disabled
Power On By Mouse: Disabled
ErP: Disabled
Initial Display Output: IGFX
Internal Graphics: Enabled
DVMT Pre-Allocated: 64M
DVMT Total Gfx Mem: MAX
IO APIC 24-119 Entries: Enabled
Security Device Support: Disabled
Intel Platform Trust Technology (PTT): Disabled

5) Save and Exit

点赞
Share