2021年4月30日 星期五

Hackintosh 11.3 Big Sur with Opencore 安裝紀錄 (1)

本來以為新電腦才會用 Opencore

結果 Apple 直接出 ARM

這下好啦,這三五年大概就是黑蘋果最後的幾年壽命了,等到所有 Mac 設備通通換成 ARM 晶片之後,往後新版 macos 大概也漸漸會暫停對 intel 的支援了吧。

而且看看各家測試 M1 晶片的成果,差不多快叫 intel 打包回家了呢(說笑。

話是這麼說,現階段 Big Sur 還是可以黑的,那就走一步算一步吧。

參考皆來自 Opencore 官方指南:

Dortania | Note: Dortania is not affiliated with Frito-Lay or PepsiCo. All product names, trademarks and registered trademarks are property of their respective owners.


以下是舊配備:



CPU:intel E3 1231v3

MB:MSI Z97S sli krait edition

SSD:Crucial MX200 - 250G,intel 530 - 240G

HDD:Toshiba 2TB

RAM:ADATA 1600mhz 8GB x 2、TeamGroup 1600mhz 8GB x 2

BD-ROM:Pioneer - BDR-206

VGA:Gigabyte Aorus RX580 8G

PSU:Corsair RM650x

Case:Cooler Master NR600

other:BCM943602CS(wifi & bluetooth)

簡單提幾個部分:

CPU: AMD 也是裝得起來,不過有些軟體用起會有問題所以不推薦,安裝設定也和本篇稍有不同。

MB: 雖然我還在用舊的 z97,不過以 2021 上半年來說 z590 調個設定還是可用,挑選硬體的原則和 10.15 的時代大致沒變。當然,拿 z490 或 z390 有許多前輩已經用過方便 debug 也是一種解法。最後就是 CFG Lock 要能解鎖的老問題。

VGA: 什麼?你現在(2021.04)居然從礦老闆手上搶得到卡?如果是 NV,除非有 Kepler 這種老卡,不然你得回去裝 10.13 才能用,而且僅限 Pascal 和 Maxwell,Turing 和 Ampere 就不用想了,買得到也不支援。AMD 的話 最新的 RDNA2 得要上 11.4 beta 才能用,Polaris 和 Vega 則無痛支援


本次有別於先前使用 clover, 採用的是另一種新的引導 Opencore

理由是各種驅動的開發者大佬都轉去 Opencore 了

且 clover 最新版也開始借用 Opencore 的資源來用,那我直接就轉 Opencore 省事。

先說 Opencore 也不是沒有缺點,例如引導程式升級的時候不像以前 Clover 可以用 configurator 點個 update 就好。他必須要整個重抓新版本後再把 config 用手動把舊設定一個個填過去才行。

但目前用起來體感穩定度跟 Clover 沒什麼差別,且引導速度更快,也就沒什麼理由不用。


先來做安裝隨身碟。

開頭先準備一個 16GB 的隨身碟,因為 Big Sur 的容量已經來到 12GB 了。

插入隨身碟,選日誌式、格式 GUID、命名 USB、接著格式化。

然後在 mac 打開終端機輸入指令:

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

他會自動開始複製檔案,需要一點時間靜待完成。


開始製作 Opencore 引導

首先需要準備幾個工具:

efi agent: 掛載 efi 用

Hackintool: 硬體配備確認和各種工具

Proper Tree: config.plist 系統設定檔編輯工具

Opencore configurator: 同 Proper Tree, 但我做輔助用

最新版本的 Opencore。這裡我用的是 0.6.8


接下來有兩種方法,新手可以選擇去網路上找和主機板同系列的 EFI 資料夾丟進 USB 的 EFI 磁區,先安裝起來再慢慢修改設定文件,減少 MacOS 安裝失敗率。

我選擇的是直接修改文件,反正都是要修的。

下載完後解壓縮,把 x64 底下的 EFI 資料夾額外複製出來,再把 Doc 裡面 Sample.plist 也複製一份到 EFI\OC\ 底下並改名為 config.plist

然後初步資料夾架構會像這個樣子:



















當然裡面 OC 下各個資料夾還有東西要刪減,像我編輯完成的大約是這種感覺。
































首先是檔案結構
BOOTx64.efi 初始引導用,必需留
ACPI 進階組態和電源介面, 就是硬體和電源控制器等,這個文件依據 CPU 晶片選擇,在 OC 官方 install guide 說明中,例如我是四代就要挑 haswell 的 SSDT-PLUG & SSDT-EC 這兩個放進去,當然最後完成時還需要修改其中內容。
放入檔案的原則是必備的先放,不需要的功能就不要放,可以加快系統引導效率

Drivers 用來裝 UEFI 的驅動相關
-OpenCanopy.efi 引導介面用的圖形化驅動(選用)
-OpenHfsPlus.efi 讀取 HFS 格式的驅動,和 HfsPlus.efi 擇一使用
-OpenRuntime.efi 針對 macOS 記憶體隨機隨取分配 ram 的修復,基本上就是從 clover 時代 memFix 這種驅動演進來的同類東西,必備

Kext 這放 macOS 核心的相關驅動
-AppleALC.kext 音效驅動
-Lilu.kext 擴展核心,像是一個平台可以任意擴展其他 kext ,可以有 Patch 的功用
-WhateverGreen.kext 顯卡 AMD 系列的感測器驅動,依賴 Lilu.kext 的驅動之一
-RealtekRTL8111.kext 板子上 realtek 網卡的驅動,板子是 intel 就換對應的
-VirtualSMC.kext 模擬驅動,模擬原生 mac 的 SMC 
-SMCSuperIO & SMCProcessor 是 SMC 的輔助用

Opencore.efi 則是在 BOOTx64.efi 引導後接手主導系統
Resource 是引導使用的多媒體資源,如 GUI 介面用的圖片或音效等
Tools 其他補充用工具,像是 cleanNVRAM.efi 等等可以視情況加入,留空也可以 
檔案配置完成後就可以來著手修改 config


config.plist 的編輯推薦使用 ProperTree
以往在 Clover 引導,使用者把 Kext 等等驅動放進去後,config 可以獨立編輯沒有影響。
但現在只要加入新的檔案後,必須得再編輯 config 設定檔才能確實抓到對應檔案。
而 ProperTree 的 OC Clean Snapshot 就是對應這個功能。
官方文件有完整說明各個項目的功能,這裡只記大略。

打開之後長這個樣子:











Warning 那四排是官方注意事項:
1.sample 就是 sample 不要直接用來開機
2.確保瞭解每個項目的設定再開機使用
3.盡量從 sample 原始檔開始修改避免出錯
4.sampleFull 是用在 2011 之前更早的 mac 機型
以上看過後可以刪掉,下面就是主要設定大項,只記我有開啟設 true 的細部選項


ACPI: 用來存取 DSDT & SSDT 這兩個檔案的設定檔。系統成功安裝前可先不設定,之後檔案補放到資料夾再用 snapshot 抓取就好
Booter: 修補 boot.efi 的設定
-AvoidRuntimeDefrag 修復UEFI 的 日期、時間、NVRAM等等
-EnableSafeModeSlide 允許在安全模式下使用 slide 值
-EnableWriteUnprotector 執行期間刪除 CR0 暫存器的寫入保護
-ProvideCustomSlide 如果 slide 值有衝突,強制 macOS 使用假隨機值,only n/256 slide value are usable
-SetupVirtualMap 把 SetVirtualAddresses 修復為虛擬地址


Device properties: pci 設備的設定,例如說主機板音效卡就是在這裡定位
-音效卡設定數值後面另外補述,系統成功安裝前可先不設定


Kernel: mac 核心設定與 kext 驅動的存取。排序必須特別注意,add 的子項中 Lilu.kext 必須是第一個,也就是第 0 項。下面再排與 Lilu 相關的 kext,如 virtualsmc, applealc, whatevergreen 等。若前面有在資料夾放好 kext ,這邊也可以直接用 snapshot 自動填入,目視確認即可
quirk 子項有
-AppleCpuPmCfgLock 如果主機板可以關閉 cfg lock 就 false,不然就 true
-AppleXcpmCfgLock 同上
-DisbaleIOMapper 打開禁用 VT-d 或者主機板關閉
-PanicNoKextDump 在核心崩潰的時候阻止輸出 kext 目錄,提供除錯用的崩潰日誌,debug 務必開啟
-PowerTimeoutKernelPanic 修復 catalina 因為硬體電源狀態變化導致的核心崩潰


Misc: opencore 自身引導程式的設定
-HideAuxiliary 開啟會隱藏三個引導種類,recovery、Auxiliary、tools 加入的如 clean NVRAM
-ShowPicker 開啟讓 opencore 可顯示圖形化介面
-Timeout 引導介面時的停留秒數,例如 5 就是停 5 秒
-AppleDebug 打開 boot.efi 的日誌記錄,除錯用,系統穩定可關掉
-DisableWatchDog 如果 macOS 啟動會卡可以開,除錯用
-AllowNvramReset 在引導介面可以使用 cmd + opt + p + r 重置 NVRAM
-AllowSetDefault 可以使用 ctrl + enter 和 ctrl + 數字鍵 來鎖定預設啟動選項
-BlacklistAppleUpdate 開啟後可忽略 apple 更新韌體的啟動選項
 

NVRAM
-7C436110-AB2A-4BBB-A880-FE41995C9F82
--boot-args: -v debug=0x100
這邊有三個值,前兩個是除錯用,-v 是顯示執行 code,debug=0x100 是發生崩潰時不會重新開機方便看 code 除錯

順便一提 agdpmod=pikera 
AMD 顯卡雖然免驅動,但是如果遇到 apple logo 跑到一半螢幕轉黑,或是使用 amd navi 系列顯卡,就會需要加入這個參數,系統穩定後可以只留這個


Platforminfo: mac 機型資訊 smbios 的設定
Generic 可以用 macserial 產生的資訊填進去即可
之後若要開啟 imessage 等功能再詳細設定
另外一提,正常來說,ProcessorType 這個欄位留空後,cpu 會依據 smbios 設定的機型自動填入,但因為我的 cpu 是 e3 所以裝好後在 mac 的系統資訊顯示會是 unknown
對應法是先找到對應的 cpu 代碼,在這裏可找到:
例如我的是 E3 ,那就對應的就是 <0501> 04 cores  Quad-Core Intel Xeon
但 501 是 16 進位,設定表吃的是 10 進位,換算就是 1281
所以最終得在 ProcessorType 的值填入 1281
不過 cpu 不顯示不影響系統安裝與日常使用,所以隨意


UEFI: 存取 UEFI 驅動
-APFS 開啟支援 APFS 格式
-ConnectDrivers 打開連接驅動程式
-Drivers 這裡就是 driver 資料夾放入的 efi,上面放三個就填三個
-output
--ProvideConsoleGop 打開 GOP 圖形輸出協議,核心接管後圖形輸出所需
-quirks
--IgnoreInvalidFlexRatio 沒有解鎖 cfg 就得打開
--RequestBootVarRouting 打開後可以在 macOS 設定預設啟動硬碟,windows 雙系統可用

以上設定完後選 ProperTree 的 OC Clean Snapshot 來存檔(必要),就可以把整個 EFI 資料夾丟進 usb 的 EFI 分割區,開機再 bios 選擇 USB 開機就可以了
如果能順利安裝進去系統,再把 USB 隨身碟 EFI 分區的 EFI 資料夾複製到 SSD 的 EFI 分區。
接著關機拔掉 USB 隨身碟,bios 指向 SSD 開機,順利運作即可。