--- tags: 黑蘋果 --- # 黑蘋果 - CoffeeLake實裝macOS Catalina 10.15.4 ## 前言 感謝 [Tonymacx86](http://tonymacx86.com/) 感謝 廖韋丞(WaterTim) 一起研究 ## 章節 [TOC] ## 硬體配備 - i5-8400 - B365m-A - Crucial 8G*2 - Msi Armor rx470 8G - Samsung PM863a 1T SSD - FSP GD550 - BCM94360CS/2CS ### 我的EFI在[這裡](https://drive.google.com/file/d/1WopgMAp1jGTu3VIZ_wqRrxkkFP3X0lq9/view?usp=sharing) ## 預先安裝Windows及確認BIOS 就... win10 來製作EFI跟安裝碟 然後順便看一下BIOS內有沒有cfg lock的選項 關閉它 若找得到Above 4G Decoding的話 開啟它 ## 安裝環境 - [7zip](https://www.developershome.com/7-zip/) - [Notepad++](https://notepad-plus-plus.org/downloads/) - [Python3](https://www.python.org/downloads/) ## 部分檔案及教學 [OpenCore Guide](https://dortania.github.io/OpenCore-Desktop-Guide/) ## 製作DSDT SSDT - 所需軟體 - [SSDTTime](https://github.com/corpnewt/SSDTTime) - [IASL](https://acpica.org/downloads/binary-tools) ### 使用SSDTTime做出符合硬體的DSDT ### 使用SSDTTime的Fake EC及Plugin做出基本的SSDT ### 使用iasl對DSDT反編譯成dsl檔 ### 修補AWAC時鐘 - 使用文字編輯器(Notepad++)打開dsdt.dsl - 尋找`Device (AWAC)` - 若有則代表主機板是使用AWAC時鐘 - 尋找STAS - 若有則可以切換為RTC時鐘 下載[SSDT-AWAC.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml)來修補他 - 若無則不能切換 需要SSDT-RTC0設定 跳到[設定SSDT-RTC0](#設定SSDT-RTC0) - 若無則跳到下一步 #### 設定SSDT-RTC0 1. 下載[SSDT-RTC0.dsl](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0.dsl)並用NotePad++打開 2. 另外開啟剛剛的DSDT.dsl 3. 在DSDT.dsl內搜尋`Name (_ADR, 0x001F0000)` 記下上面的Device(`通常是LPCB`) - 若Device是LPCB則不需修改SSDT-RTC0 直接用iasl編譯成aml即可 - 若為其他的則將SSDT-RTC0.dsl內的PCI0.LPCB改為PCI0-`該Device` 儲存然後編譯成aml ### 修補NVRAM PMC - 下載[SSDT-PMC.dsl](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl)並開啟 - 在DSDT.dsl中尋找`Name (_ADR, 0x001F0000)` 記下上面的Device(`通常是LPCB`) - 在DSDT.dsl中尋找`PNP0A08` 同樣記下上面的Device(`通常是PCI0`) - 修改SSDT-PMC中的PCI0.LPCB改為上面的兩個Device ex. PCI1.LB0 - 將SSDT-PMC.dsl編譯成aml ### 修補USB數量限制 - 下載[SSDT-USBX.aml](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/extra-files/SSDT-USBX.aml) ### 整理出需要用到的SSDT 將編譯好的aml檔(除了DSDT.aml之外)都放到一個地方儲存起來 DSDT跟SSDT這步驟就大致上完成了 可以先休息一下for等等的挑戰XDD ## 製作安裝碟 - 所需軟體 - [gibMacOS](https://github.com/corpnewt/gibMacOS) ### 下載更新包 - 開啟gibMacOS.bat後按 `r` Enter 進入Recovery下載 - 選擇有Full install的v10.15.4 - 下載好的檔案會在MacOS Download/.../...10.15.4 MacOS Catalina/內 - shift+右鍵該.pkg複製完整路徑 ### 製作開機碟 - 插入隨身碟 - 開啟MakeInstall.bat - 找到隨身碟的代號後輸入 `~O` Enter (`~`是代號 ex. `1O`) - 若找不到隨身碟 先輸入`D` Enter就找的到(可能是外接SSD會不被辨認為隨身碟) - 跑一陣子之後會要輸入鏡像的路徑 貼上剛剛複製的路徑 - 等待 (我用USB3.1等了約幾分鐘) ### 配置驅動 - 所需檔案 - [韌體及基本kext](https://dortania.github.io/OpenCore-Desktop-Guide/ktext.html) 我使用的: - EFI - BOOT - OC - Drivers - AudioDxe.efi - CrScreenshotDxe.efi - HfsPlus.efi - HiiDatabase.efi - NvmExpressDxe.efi - OpenCanopy.efi - OpenRuntime.efi - OpenUsbKbDxe.efi - Ps2KeyboardDxe.efi - Ps2MouseDxe.efi - UsbMouseDxe.efi - XhciDxe.efi - Kexts - AppleALC.kext - Lilu.kext - SMCProcessor.kext - SMCSuperIO.kext - VirtualSMC.kext - WhateverGreen.kext (顯卡驅動) - RealtekRTL8111.kext (乙太網路卡驅動 要依照自己的乙太網路卡去找) - USBInjectAll.kext (USB驅動 直接放 不行再說(?)) - 將製作好的SSDT們放到EFI/OC/ACPI中 ### 配置config.plist - 所需軟體 - [ProperTree](https://github.com/corpnewt/ProperTree) - [GenSMBios](https://github.com/corpnewt/GenSMBIOS) - 所需檔案 - [OpenCorePkg](https://github.com/acidanthera/OpenCorePkg/releases) - 將OpenCorePkg/Docs/Sample.plist複製到EFI/OC中並改名為`config.plist` - 用ProperTree開啟config.plist - 按下`Ctrl + Shift + r` 選擇EFI/OC資料夾然後確定 這步驟會載入OC中的所有檔案到config中 讓其符合現在這台的硬體配置 - 依照[OpenCore提供的建議選項](https://dortania.github.io/OpenCore-Desktop-Guide/config.plist/coffee-lake.html)進行修改 (這邊條目太多了 打出來就是在翻譯而已 故不做翻譯了 可以直接根據我提供的EFI進行下面一些比較重要的修改) - Booter/Quirks中的`ProtectUefiServices` - 若你是用Z390則設成True - 不是就False (我不是就設False 沒$$) - Kernel/Quirks中的`AppleCpuPmCfgLock`及`AppleXcpmCfgLock` - 如果在BIOS中可以關閉cfg lock的 這兩個選項都設成False - 若在BIOS找不到cfg lock的 則設成True - Kernel/Quirks中的`IncreasePciBarSize` - 如果在BIOS中可以打開Above 4g Decoding的 這個設成False - 若在BIOS中無法設定的 設成True - NVRAM/7C436...C9F82中的`boot-args`是開機的設定 - `-v` 開機時會跑一堆debug用的字 - `debug=0x100`及`keepsyms=1` debug用 - `alcid=11` 這是音效卡的佈局 在主機板規格找到音效卡晶片型號後 可以到[這裡](https://github.com/acidanthera/applealc/wiki/supported-codecs)搜尋你的音效卡晶片 嘗試每一種Layout是否符合你的需求 - `agdpmod=pikera` 如果你是用RX5000系列的顯示卡就要加這個(我不是就沒加 沒$$) - NVRAM/7C436...C9F82中的`prev-lang:kbd`是開機時的語言選項 - `en-Us:0` 是英文 - `zh-Hant:2` 應該是繁體中文 但有時候會變成殘體 謎... - 其他語言可以去找看看 - 反正裝好之後都可以調 就先用英文吧(認真) - PlatformInfo 是平台資訊 像是主板序列號之類的 但我們不是原生主板 需要偽裝一下 - 打開GenSMBios 選擇生成SMBios - 輸入iMac18,3 (如果你用這個會錯 可以嘗試iMac19,1 其實這個需要根據你的硬體選擇) 就會跑出偽裝的資訊了 - 將Type填入`SystemProductName` - 將Serial填入`SystemSerialNumber` - 將Board Serial填入`MLB` - 將SmUUID填入`SystemUUID` 到這邊你的config.plist就大致上設置完成了 接下來就是開開關關BIOS跟安裝了 如果有碰到問題再回來修改這邊的config就好 ## 設定BIOS - 需要關閉的選項 - Fast Boot - Secure Boot - VT-d - CSM - Intel SGX - Intel Platform Trust - CFG Lock - 需要開啟的選項 - VT-x - Above 4G Decoding - Execute Diable Bit - EHCI/XHCI Handoff - OsType: UEFI - 顯存: 64MB 若找不到某些選項 可以先不管它 (真的裝不起來就換一張主機板 或去搜尋別人是怎麼調教的) ## 安裝macOS 1. 先到別的電腦上把要安裝macOS的硬碟格式化為GPT(GUID)格式 2. 裝回電腦後開機 到BIOS把隨身碟的開機順序調到第一個 3. 保存設定重開機 4. 進入OpenCore引導後選擇`macOS Base System (External)` 5. 進入恢復系統(的系統(?)) - 選擇DiskUtil - Erase要裝系統的硬碟 - 取個名字(像是Win10(?)) - 選擇APFS - 關閉DiskUtil - 選擇ReInstall macOS - 進入安裝程序 - 同意啦 哪次不同意 - 開始跑進度條之後就是等待 可以直接放著 他會跑到裝好能用 ## 初始化及放置EFI 1. 進入系統之後 就正常的初始化到桌面 2. 再來多測試幾次重開機 正常日常使用(隨身碟要插著) - 如果有問題就修改config或加補丁 3. 測試沒問題之後 把EFI放到系統裡 讓你不需要隨身碟也能開機 - `command + space`搜尋`Terminal`打開 - 執行`sudo diskutil list` - 會要你打登入密碼 直接打完 Enter - 看一下EFI的代號 - 執行`sudo diskutil mount ~` (~是EFI分區的代號) - 打開Finder 將BOOT(隨身碟)內的EFI資料夾複製到剛剛掛載的EFI分區內 - 關機拔掉隨身碟 - 開機試試 4. 如果確定沒問題 再次執行上面的mount 然後把EFI/EFI/OC/config.plist中boot-args的 -v 拿掉即可享受黑蘋果啦~ ## 後語 好累ㄛ 打完這個覺得比裝黑蘋果還累 我ㄉ天