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 修復方式。

2019年10月15日 星期二

Hackintosh 10.15 Catalina 安裝紀錄(1)配備與準備

算是整理系統就採用全新安裝了。

雖然大致過程跟以前差不多,不過這次用純 Clover 的乾淨安裝,剛好現在 OpenCore 興起,就先把目前使用的 Clover 留個備忘紀錄,以基本功能運作為目標,不求效能和跑分,我調教功力也不到那裡。
也許下次的時候就是用 OpenCore 了?


A.事前準備

目前依然推薦使用 intel 的架構,我知道 2019 的 Ryzen 很香,不過我還沒有換配備的打算,反正 intel 十代還不是繼續用 14nm(挖鼻孔)
而且黑蘋果本來就是以最貼近白蘋果來挑選配備避免產生不必要的問題,本次還是舊電腦將就上,依然需要 Ryzen 的參考就請移駕他處了。
具體該挑哪些還是建議先上 Tonymacx86 等網站,挑選最多的成功範例來免除麻煩。
簡單備註挑選標準:

主機板:
本文的時間點(2019.10.),最新的 300 series 都可安裝,但目前 Z390 會有點小問題。

簡單幾個注意事項:
1.USB & SATA 晶片最好都是 intel。
第三方的 USB 晶片在 10.11 以後如果你只會打上通用 patch 修補,那可能有些 port 只能以 USB 2.0 的速度使用,除非你會使用 DSDT & SSDT 來手動定義,不然就可能會發生休眠無法喚醒,或是系統升級後 patch 失效,USB 又不能用了。
第三方的 SATA 控制器目前有個 AHCI_3rdparty_SATA.kext 來驅動,但並不支援現有全部的 SATA 控制器,如果安裝或進系統的時候抓不到硬碟就麻煩了。大家應該也不想買了主機板結果少幾個洞不能裝硬碟吧。

2.CFG lock (MSR 0xe2)
CPU 支援 ACPI (Advanced Configuration and Power Interface 進階設定和電源介面)的 C-state (睡眠) 和 P-state (頻率) 依照主機板廠商的不同,有可能是鎖起來的。
但是 macOS 需要對這個做控制才能運作電源管理或頻率變更,如果 Bios 有設定可以解鎖那是最好,萬一沒得解就得改用 nullpowermanagement.kext 來關閉這個功能。
硬來的話我是不太推薦刷 Bios 啦,出問題就麻煩了。
幾年前常常有人說技嘉的板子比較好黑就是因為以前他常常不鎖,現在就不一定了。
當然如果是能自行處理的高手應該也不需要看這篇...

3.主機板上若有 intel 無線網卡目前也是不支援,除非是打算自己改裝 Boardcom 網卡,或是根本只用有線網路那就沒差。

4.內建音效可以先找 Applealc 點裡頭的 Resources,會有支援的音效晶片列表,主機板規格上的音效晶片型號若在裡面就可以成功驅動。

5.Thunderbolt,但本文的時間點黑蘋果是不支援熱插拔的,只能先插配備再冷開機才能使用,二三代皆如此。


顯示卡:
首選 AMD,支援的系列有
Vega 10、20 系列
Polaris 400/500 系列
R9 3XX

Navi 目前尚無支援(2019 年 10 月)
不過 10.15.1 beta 已經有加入訊息了,想要買新卡的可以等等看。
2019.10.30 Update: 10.15.1 正式支援 Navi

Nvidia 只有 Kepler 核心(GTX 6xx/7xx)可以原生支援。
其他不管是 Turing (GTX 20XX、GTX 16XX)、Pascal (GTX 10XX)、Maxwell (GTX 9XX、750)、通通無法在 10.15 上使用,不管怎樣就是想用 N 的話就用 10.13 裝 web driver。

網卡與藍牙可以挑選 PCIE 合一的款式,intel 網卡用不了上面提過。
我的解決方案是 BCM943602CS,裝上去就能用。


以下是本次使用的舊配備,intel 四代改版的 Haswell Refresh



  • CPU:intel E3 1231v3
  • MB:Gigabyte Z97x-UD7-TH
  • 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)




B. 安裝隨身碟製作。

本次採用的是純 Clover 的初始安裝方式,我並不推薦使用 Unibeast 之類的簡易安裝或是別人做好的安裝包,除非是新手剛入門頭一次嘗試。
因為裡面有包含大量混合的設定以及驅動,因為製作者設想的是使用者會用它來安裝在各式各樣的電腦配備,
但長期使用若是發生問題很難進行除錯,也不方便學習各種功能調教,因此若能根據需求乾淨安裝才是系統運作最順暢的選擇。

簡略講 Clover 功用:
macOS 在原生的 mac 電腦是透過內建的 SMC (System Management Control) 系統管理控制器和其內部韌體來做控制。
但是一般外面賣的 PC 不會有這個東西,所以我們需要安裝一個 BootLoader 來模擬 SMC 的效果,
也就是 Clover 和裡面的 FakeSMC.kext (或是新出的 VirtualSMC.kext)
那想當然基於這個原理也還有其他的 BootLoader,就不一一贅述。

MacOS 安裝程式的取得建議用真正的 mac 進 App Store 下載,真的借不到 mac 就開 VMware 用虛擬機下載吧。
以下是在 mac 環境下製作安裝隨身碟的方法。

由於當前 10.15 Catalina 已經來到了 8GB,故建議使用至少 16GB 的隨身碟來製作較為保險。
插入隨身碟後,先格式化、選日誌式、格式 GUID。
然後在 mac 環境下打開終端機輸入指令。

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --nointeraction --downloadassets --volume /Volumes/USB/
接著安裝最新版的 Clover
安裝位置選擇剛剛做好的隨身碟
安裝內容選擇清單:


• ApfsDriverLoader 支援 APFS 檔案格式的必備驅動。
• AptiomemoryFix UEFI 載入時分配記憶體的驅動,通常和 OsxAptioFix3Drv 擇一不可並用,如果是 300 系的主機板則要另外下載 OsxAptioFix2Drv-free2000.efi 替換。
• AudioDxe-64 這是 Clover 的聲音驅動,不必要。
• DataHubDxe 檔案集合協議,雖然 EFI 本身就具備了,預防意外可以裝上。
• FSinject 可以讓 Clover 插入安裝 Kext 的驅動。
• HFSPlus 支援 HFS 檔案格式的驅動,有這個就不必裝 Vbox Hfs 了,必備。
• SMCHelper 這個功用是 FakeSMC 留在 NVRAM 的 SMC Keys 有問題要靠他修復。之後安裝在硬碟裡的時候需要,引導用的隨身碟可以不必裝。如果是用 VirtualSMC 取代 FakeSMC 的就完全不需要。


整理一下,引導隨身碟必裝的有 ApfsDriverLoader、AptiomemoryFix、HFSPlus。
其餘三個可以視情況不加也可以。
那麼就繼續 Install

安裝好後來加入需要的 Kext
引導用的隨身碟基本上先挑最基本必備的裝。

放的位置在:EFI/CLOVER/kexts/other

通常會是以下這四個:
• FakeSMC.kext (現在也不少人改用 VirtualSMC)
• USBinjectAll.kext 因為 10.11 之後 Apple 對主機板的 USB 做了新的定義和限制,因此需要。
• Lilu.kext 它的作用是擴展核心,像是一個平台可以任意擴展其他 kext ,可以有 Patch 的功用。
• WhateverGreen.kext 顯卡 AMD 系列的修補用 kext,就是依賴 Lilu.kext 的驅動之一


通常我習慣會再加上 intelmausiethernet.kext 用來驅動主機板的 intel 網卡。
其實這可以不必先放進去,不過為了後面方便修復 iMessage & Facetime 我會先放。


接下來設定 EFI/CLOVER/config.plist
這是 Clover 主要控制的設定檔案,為了設定方便會需要 Clover configurator 這個東西。
下載後用它來打開 config.plist

首先在各個頁籤做基本設定,以下設定以 UEFI 安裝為前提:

ACPI:
drop table → DMAR(bios 可以不必關閉 VT-D)、MATS(如果卡 MACH REBOOT 就要填)

BOOT:
Arguments → keepsyms=1、debug=0x100、-v
除錯用,萬一安裝出問題可以看
另外如果前面不加 DMAR,也可以選擇在這裡填入 dart=0

Boot Graphics:不動

CPU:不動

Devices:不動

GUI:
Scan → Entire、Tools (UEFI 模式下可以掃描所有儲存裝置)

Graphic:
如果只用 intel 內顯 → inject intel
AMD 顯卡 → RadeonDeInit

Kernel and Kext patches
為了讓主機板所有 USB 能夠使用,這裡需要先打上萬用 patch
AppleACHIport 這個 patch 是修補內接的 Sata 硬碟被系統辨識成黃色外接硬碟的錯誤,如果沒發生可以不必用。




Rt Variables
關閉 SIP 保護
BooterConfig 0x28
CsrActiveConfig 0x3E7


SMBios
點選最右側的箭頭,選擇最貼近你電腦配備的選項。
例如 我的 CPU  1231v3 是 haswell refresh,最貼近的設備就選同代的 i5-4590 imac 15.1



System Parameters:
injectKexts → detect
Inject System ID → 打勾

這樣就初始設定完成了,如果安裝時有其他問題再依據錯誤代碼來修改參數。
喔,如果需要與 Windows 10 雙系統,
Windows 的系統碟要格式化成 GPT 才能給 UEFI 讀取,不要忘記了。