1,972 次瀏覽

使用OC引導無痛安裝Big Sur和問題整理

關於 BIG SUR DB版為何比平均macOS發行版安裝的困難非常高的原因,其主要罪魁禍首如下:

避免RuntimeDefrag

借助macOS Big Sur,OpenCore中的避免RuntimeDefrag引導程序怪癖打破了。因此,macOS內核在嘗試引導時將趨於平坦。這樣做的原因是由於cpi_count_enabled_logical_processors需要MADT(APIC)表,因此OpenCore現在將復制此表並確保內核可以訪問它。但測試者需要使用更高版本的OpenCore 0.6.0構建才能解決此問題。

內核集合與預鏈接內核

從 macOS 10.7 開始,預鏈接內核已成為實際Mac引導的默認方式。其中包含用於啟動Mac的非常少量的kext。OpenCore用來注入kexts的是同一個 Kexts 夾,希望能夠持續一段時間。蘋果公司藉由新系統 macOS Big Sur開始,便不再將它為默認啟動形式,而是選擇了一個名為Kernel Collections的新kexts 夾,而該 Kexts 夾與OpenCore的kext注入系統上完全不兼容。

為了解決這個問題,透過使用簡單的NVRAM變量強制預鏈接的內核。1個小問題,儘管你已安裝的Big Sur具有PK,但安裝程序實際上沒有預鏈接的內核。因此,我們需要一個中間人來為我們安裝macOS,這可以是:

  • 正版白蘋果
  • VM

對於前者,方法很簡單,我們另建一個外接硬碟,來安裝macOS 11.0 系統,然後將系統硬碟加入引導程式,移至到黑果來驅動。對於後者,得自行製作OC引導程序,以下為個人在自己的電腦測試,並所寫所有安裝macOS 11.0 系統的下進行記錄。

先決條件

在我們著手安裝Big Sur之前,留意下面事項:

支持的SMBIOS:

Big Sur從macOS刪除了一些基於Ivy Bridge和Haswell的SMBIOS,最低的限制至少下面的內容才行:

  • MacBookAir5,x
  • MacBookPro10,x和更低版本
  • MacMini6,x和更早的版本
  • iMac 14,3和更早的版本(請注意,仍支持iMac14,4)

如果您所設定的SMBIOS在Catalina中受支持並且未包含在上面,就可以了!

支持的硬體:

丟棄的硬件數量不多,儘管有以下幾種:

  • 常春藤橋CPU。
    • 正式地,許多人已經能夠輕鬆啟動。
  • 常春藤iGPU。
    • HD 4000和HD 2500。
  • 基於BCM94331CD的Wifi卡。

另請注意,AMD OSX尚未更新其補丁程序,因此AMD CPU用戶將需要等待一段時間。

最新的kext,bootloader和config.plist:

確保已更新到最新版本的OpenCore(而非發行版)和所有kext,以避免任何奇怪的不兼容問題。您可以在這裡找到kexts和OpenCore的最新版本:Kext RepoDriver Repo

方案ㄧ:
確保設置了一些NVRAM變量(OC 060-0617):

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F8:
    • boot-args:
      • -lilubetaall (啟用Lilu和Beta macOS版本上的插件)
      • vsmcgen=1 (繞過VirtualSMC在Big Sur中無法正常工作)
      • -disablegfxfirmware(可解決WhateverGreen出現故障的情況,適用於iGPU
    • 引導文件集內核 booter-fileset-kernel
      • Set to 00
      • 在已安裝的操作系統中啟用預鏈接內核,需要此功能來注入kexts
    • 引導文件集基礎系統 booter-fileset-basesystem
      • Set to 00
      • 嘗試在安裝程序中啟用預鏈接的內核(不幸的是大多數失敗)

請參見下圖作為示例:

方案二(OC060-0720):目前採用此方案
NVRAM-> Add->7C436110-AB2A-4BBB-A880-FE41995C9F82

  • boot-args
    • -lilubetaall (啟用Lilu和Beta macOS版本上的插件)
      • 最新版本的Lilu和插件不需要此boot-arg
    • vsmcgen=1 (適用於VirtualSMC,或更具體地說是Lilu,在Big Sur中無法正常工作)
    • -disablegfxfirmwareiGPU上解決WhateverGreen出現故障的情況
      • 較新版本的WhateverGreen應該可以解決此問題(v1.4.1)

已知的問題

在大蘇爾(Big Sur)中,很多地方失效了。主要有以下幾種:

  • Lilu.kext
    • 主要是用戶空間補丁已嚴重中斷,這意味著某些補丁(例如DRM)無法正常工作
    • 內核空間應與v1.4.6一起正常工作
  • 虛擬SMC
    • 一些用戶可能會注意到,即使vsmcgen=1在boot-args中,您仍然會出現VirtualSMC失敗的情況。要解決此問題,您可能需要使用FakeSMC才能解決vSMC和Lilu問題。
  • 電池狀態
    • 目前,RehabMan的ACPIBatteryManager是唯一可以顯示電池狀態的工具。
    • 您可以將MaxKernelSMCBatteryManager 設置為,19.99.99並將MinKernelACPIBatteryManager設置20.0.0為將SMCBatteryManager用於Catalina及以下版本,將ACPIBatteryManager用於Big Sur(及以上版本)。
  • AirportBrcmFixup
    • 強迫特定的驅動程序加載brcmfx-driver=可能會有所幫助
    • 例如,BCM94352Z用戶可能需要brcmfx-driver=2在boot-args中解決此問題,其他芯片組將需要其他變量。
  • IntelHEDT hackintoshes無法啟動
    • 這是由於華碩(Asus)和許多其他OEM在您的RTC設備中排除了某些區域,為解決此問題,我們可以創建一個具有適當區域的新RTC設備。
    • OpenCorePkg包含一個深入研究的示例SSDT:SSDT-RTC0-RANGE.dsl

儘管安裝系統上不是問題,但SIP現在有了新的限制,但仍要正確禁用SIP,我們必要將其設置csr-acive-configFF0F0000。有關更多信息,請參見此處:禁用SIP

安裝

安裝後,您需要做一些事情:

  • macOS Big Sur安裝程序
  • 12GB + USB驅動器
  • Mac,hack或預先存在的VM,用於下載安裝程序並創建安裝媒體
  • 最新版本的OpenCore和kexts(請參見上文)

抓住安裝程序

要獲取Big Sur安裝程序,請從Apple的開發人員門戶下載beta配置文件,然後在“系統偏好設置”中檢查更新。如果您沒有開發者帳戶,則可以使用gibMacOS進行下載:

  1. 下載gibMacOS並打開gibMacOS.command
  2. M更改最大操作系統,然後按輸入10.16以將(更新)目錄切換到Big Sur目錄。
  3. C更改目錄,然後選擇開發人員目錄的編號。

  4. 選擇Big Sur Beta的編號以開始下載。(截圖)

  5. 完成後,打開下載的InstallAssistant.pkg-它位於gibMacOS/macOS Downloads/developer/XXX-XXXXX - Install macOS Beta文件夾中。Apple的此軟件包將Install macOS Big Sur Beta.app在您的/Applications文件夾中創建。

  6. 運行InstallAssistant.pkg並將其指向您要從中啟動的任何驅動器,這將是Install.app所在的位置:

  7. 完成後,您應該在“應用程序”文件夾中找到它:

  8. 製作USB安裝碟要創建USB非常簡單,請抓住USB驅動器並在macOS中打開“磁盤工具”。下一種格式如下:
    • 名稱:USB
    • 格式:macOS Journaled
    • 方案:GUID分區圖

  9. 終端機下達指令
    sudo /Applications/Install\ macOS\ Big\ Sur\ Beta.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume


    這將需要一些時間,所以可能想要喝杯咖啡,一旦完成USB引導就可以了!(假設您更新了OpenCore並提前更新過)

  10. 開始安裝Big Sur在Hackintosh上安裝macOS 11:Big Sur與以前版本的macOS的安裝方式非常相似,主要問題是:
    • 預鏈接內核上的內核集合(如上所述)
    • 安裝時間更長
      • 這是由於操作系統的新快照功能
    • 某些結局打破
      • 主要是Lilu和插件,儘管它們破裂時很明顯

    對於最後一個,如果您對Lilu感到恐慌,我們強烈建議您使用上面提供的鏈接將其更新到最新版本。如果錯誤仍未解決,則可能需要徹底禁用Lilu。

     

  11. 卡在 Forcing CS_RUNTIME for entitlement
    這實際上是macOS密封系統容量的部分,並且似乎macOS被卡住了。不要以為您被卡住了就重新開始,這將需要一些時間才能完成。

     

     

  12. 堅持PCI Configuration Begins英特爾的HEDT開發板
    如前所述,Intel HEDT主板可能在ACPI中的RTC設備方面存在一些問題。要解決此問題,您需要查看您的RTC設備並查看缺少的區域。有關更多信息,請參見此處:SSDT-RTC0-RANGE.dsl

     

     

  13. 卡在ramrod(^^^^^^^^^^^^^^)

    如果卡在該ramrod部分中(特別是它會啟動,遇到此錯誤,然後再次重新引導到該部分中,從而導致循環),則表明您的SMC仿真器已損壞。要解決此問題,您有2個選項:

    • 確保您使用的是帶有vsmcgen=1boot-arg 的最新版本的VitualSMC和Lilu
    • 切換到Rehabman的FakeSMC(您可以使用上面提到的MinKernelMaxKernel技巧將FakeSMC限制為Big Sur以上)

    並且在切換kext時,請確保在config.plist中沒有同時啟用FakeSMC和VirtualSMC,因為這會引起衝突。

    某些kext可能尚未與Big Sur兼容

    那裡有很多kext,而且Big Sur仍然很新。並非所有的kext都可以正常工作,因此,如果您遇到奇怪的內核恐慌,您可以嘗試的一件事是僅使用基本的kext(Lilu,VirtualSMC / FakeSMC,WhateverGreen)啟動並查看其是否有效。如果是這樣,可以逐個啟用kexts嘗試縮小問題範圍。

結語:

目前OC引導已完全支援macOS 11.0,可以透過USB安裝碟來直接安裝系統。首要條件是必須需要把OC版本升級到最新版,筆者測試過OC060-0720 版,可以完美直接安裝BIG SUR,KEXT版本也必須要完整更新才行。

但對Z490 主板,目前是完全無解,正在努力當中。