2019年10月22日 星期二

Hackintosh 10.15 Catalina 安裝紀錄(2)Clover 參數簡易設定說明與 AppleALC

系統的安裝和以往的黑蘋果沒有太大不同,一樣是在 Bios 設定好從 USB 隨身碟開機就可以了。
安裝的時候留意,先不要登入 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 修復方式。

沒有留言:

張貼留言