安裝的時候留意,先不要登入 Apple ID,留待後面設定。
前一篇有提到,使用 Clover 的目的是要代替 Mac 內建的 SMC 運作。
安裝的時候是先用隨身碟內裝好的 Clover 來引導 macOS 系統,那麼現在就是要在硬碟上安裝 Clover,這樣以後就不必靠隨身碟來引導了。
安裝方法與前面安裝在隨身碟上的方法基本上差不多,只是安裝位置改為電腦上裝 macOS 的硬碟。
之後把引導隨身碟裡的兩項複製到系統硬碟同樣的路徑下(EFI)
- config.plist
- kext 資料夾內的 kext 驅動
接著退出隨身碟再重開機,如果能順利用硬碟 Clover 引導就初步完成。
到這裡,為了能使設定能順利使用 Apple 服務等等,會需要在 Clover 裡的 config.plist 做細部設定,使安裝好的系統能夠更貼近原生的 mac,這部分依照個人調教功力不同可使硬體效能發揮得更好,不過我沒那麼厲害,本篇算是記錄一些基礎設定幫助設備能夠基本運作。
上面安裝的時候有提過 Apple ID 暫且不要輸入,我建議是留待下面修改完成後再登入比較好,原因是 imessages 的部分,下面會再提。
在進入設定前簡單介紹基礎架構。
開機通電時,由儲存在主機板上 Rom 晶片裡的韌體程式 Bios 來 POST (通電測試) 並初始化各項硬體,再引導到 OS (Operation System)。
在時代從 BIOS 漸漸由目前的 UEFI 取代後,UEFI 的開機流程是這樣的:
SEC (Security) → 初始化 CPU 的快取記憶體可供使用
PEI (Pre-EFI Initialization) → 初始化必要的裝置如記憶體、CPU、Chipset 等
DXE (Driver Execution Environment) → 初始化連接的各個週邊硬體,顯卡、USB、SATA 等大量工作。
初始化同時獲得的硬體資訊會同步更新寫在 Rom 裡面的 code
其中包含有兩個是
- ACPI (進階組態和電源介面)
- SMBIOS (System Management BIOS 電腦資訊顯示規範)
ACPI Table 的子集項目還包含了 DSDT (Differentiated System Description Table 差異化系統描述表,描述的就是主機板上各個不同的裝置定義)和 SSDT (Secondary System Description Table 是 DSDT 的延伸) 等等。
OS 就可以透過 ACPI 來對硬體做電源管理以及控制設定。
而 POST 的過程中偵測到的硬體資訊則會存在 DMI Table (Desktop Management Interface)
以 SMBIOS (System Management BIOS) 的顯示規範儲存。
BDS (Boot Device Selection) → 這裏就是選擇啟動作業系統 (OS)了,他會抓取硬碟上 ESP (EFI System partition) 分割區裡面,efi\boot 資料夾當中的 bootx64.efi,這個就是 OS 的 Loader
之後主導權交棒給 OS 後則是 Runtime Services (RT) 直到 (After Life) Shutdown 為止。
到這裡應該再看 Clover 資料夾結構就可以大致了解 Clover 裡的各個用途了。
< config.plist >
初步安裝完成的時候,是用引導隨身碟的 config ,但裡面的設定只是為了能夠引導安裝順利,所以設定都是最簡易的。
那麼為了能使系統運作流暢,就可以進一步利用它來做 patch,使得 macOS 能認得各項硬體裝置。
下面講一些簡單的設定例子。同時利用 Clover configurator 來做編輯。
ACPI 進階組態和電源介面:
如前面所述,OS 可以利用 ACPI 來對硬體做電源控制等。
但事實上,macOS 對 ACPI 的支援並不完整,更詳細的說明待下一篇談 USB 的修復再補述。
那麼在這邊為了使 macOS 更順利辨識硬體,就有兩種做法。
一種是直接提取硬體上的 DSDT & SSDT 的原始 table ,對應硬體再完整編輯一份放在 EFI。
另一種是只針對需要的部分,透過這個 configurator 做簡單的 patch
例如現在要修復音效,推薦的簡易做法就是做 AppleALC 的 patch
像下面這樣修改:
因為在我這張主機板,ACPI 裡廠商定義的音效裝置名稱叫 HDAS ,可是 macOS 認得的音效裝置定義是 HDEF。
所以這個 patch 的意思就是把 DSDT 裡的 HDAS 給改成 HDEF,一如 Comment 欄位的描述。
48444153 和 48444546 則分別代表 HDAS 和 HDEF 的 16 進位 code
一般來說市售主機板的音效晶片在 AppleALC 可以找到對應,但若是有些沒有支援的裝置,那就得老實回歸到第一種方法自己 configmap 了,這對新手門檻比較高,所以也是購買硬體時需要注意音效晶片型號的一點,也是為了省去麻煩。
BOOT:
Arguments → keepsyms=1、debug=0x100、-v
上一篇有提過這是除錯用的參數,如果最後都修復完成沒問題了,這三個是可以刪掉的。
Boot Graphics:不動
CPU:
E3 系列的 CPU 會被辨識成 unknown ,所以我在 Type 填入了 0x501 讓其能正常辨識。
Devices:
上面 ACPI 音效裝置的辨識修正,還需要 inject 正確的音效卡 layout ID
例如我的音效卡是 ALC1150, 那麼在主機板上的 layout 就得輸入 1
resetHDA 則能確保音效裝置在冷開機後能正確運作,所以建議打勾
最後別忘了要把 AppleALC.kext 放在與 Lilu.ext 同一個資料夾下(EFI\CLOVER\kext\other)才算是完成音效驅動
GUI 圖形介面:
Screen Resolution 是開機時 Clover 顯示的解析度,例如我用 FHD 的螢幕就是用 1920x1080
Hide Volume 在 Clover 介面如果想隱藏一些你不需要用的硬碟,可以把硬碟名稱填入此
Custom Entrire 可以自行定義硬碟在 Clover 介面下顯示的名稱
Rt Variables:Runtime 變數設定
關閉 SIP 保護
BooterConfig 0x28
CsrActiveConfig 0x3E7
設定完後儲存檔案在系統硬碟的 EFI 資料夾內,然後重新開機即可。
下一篇談 SSDT 的 USB 修復方式。