修復 DRM 支持和 iGPU 性能

  • 注意:WhateverGreen 的 DRM 補丁目前不支持 Safari 14 和 macOS 11、Big Sur。但是,Catalina 及更早版本中的 Safari 13 支持得很好。
  • 注 2:不使用基於硬件的 DRM 的瀏覽器(即 Mozilla Firefox 或基於 Chromium 的瀏覽器,如 Google Chrome 和 Microsoft Edge)將具有有效的 DRM,而無需在 iGPU 和 dGPU 上進行任何工作。以下指南適用於使用基於硬件的 DRM 的 Safari 和其他應用程序。

因此,對於 DRM,我們需要提及以下幾點:

  • DRM 需要支持的 dGPU
  • 僅 iGPU 系統的 DRM 已損壞
    • 在 10.12.2 之前,這可以通過 Shiki(現在是WhateverGreen)修復,但在 10.12.3 中中斷
    • 這是因為我們的 iGPU 不支持 Apple 的固件以及我們的管理引擎 (打開新窗口)沒有蘋果的證書
  • 工作硬件加速和解碼

測試硬體加速和解碼

因此,在我們開始修復 DRM 之前,我們需要確保您的硬件正常工作。最好的檢查方法是運行VDADecoderChecker (打開新窗口)

《修復 DRM 支持和 iGPU 性能》

如果此時您失敗了,您可以檢查以下幾點:

  • 確保您的硬件受支持
  • 確保您運行的 SMBIOS 與您的硬件匹配
    • 例如,不要在台式機上使用 Mac Mini SMBIOS,因為 Mac Mini 運行移動硬件,因此 macOS 會期望相同
  • 確保在 BIOS 中啟用了 iGPU 並且具有適合您的設置的正確屬性(AAPL,ig-platform-id如果需要,device-id
  • 避免不必要的 ACPI 重命名,所有重要的都在 WhateverGreen 中處理
  • 確保加載了 Lilu 和WhateverGreen
    • 確保沒有任何遺留的圖形補丁存在,因為它們已經被吸收到了WhateverGreen 中:
      • IntelGraphicsFixup.kext
      • NvidiaGraphicsFixup.kext
      • 式樣

檢查 Lilu 和WhateverGreen 是否正確加載:

kextstat | grep -E "Lilu|WhateverGreen"

嘿,這些 kext 中的一個或多個沒有出現

通常,最好的起點是查看您的 OpenCore 日誌並查看 Lilu 和 WhateverGreen 是否正確注入:

14:354 00:020 OC: Prelink injection Lilu.kext () - Success
14:367 00:012 OC: Prelink injection WhateverGreen.kext () - Success

如果它說注入失敗:

15:448 00:007 OC: Prelink injection WhateverGreen.kext () - Invalid Parameter

您可以查看原因的主要位置:

  • 注入順序:確保Lilu在kext順序中高於WhateverGreen
  • 所有 kexts 都是最新版本:對於 Lilu 插件尤其重要,因為不匹配的 kexts 會導致問題

注意:要設置文件日誌記錄,請參閱OpenCore 調試 (打開新窗口).

注意:在 macOS 10.15 和更新版本上,AppleGVA 調試默認處於禁用狀態,如果您在運行 VDADecoderChecker 時遇到一般錯誤,您可以通過以下方式啟用調試:

defaults write com.apple.AppleGVA enableSyslog -boolean true

並在完成後撤消此操作:

defaults delete com.apple.AppleGVA enableSyslog

測試數位版權管理

所以在我們深入之前,我們需要回顧一些事情,主要是你會在野外看到的 DRM 類型:

FairPlay 1.x:基於軟件的 DRM,用於更輕鬆地支持舊版 Mac

  • 最簡單的測試方法是播放 iTunes 電影:FairPlay 1.x 測試(打開新窗口)
    • FairPlay 1.x 預告片將適用於任何配置,如果 WhateverGreen 設置正確 – 包括僅 iGPU 的配置。但是,FairPlay 1.x電影只能在僅 iGPU 的配置上播放大約 3-5 秒,之後會出現不支持 HDCP 的錯誤。

FairPlay 2.x/3.x:基於硬件的 DRM,可在 Netflix、Amazon Prime 中找到

  • 有兩種測試方法:
  • 注意:需要較新的 AMD GPU 才能工作 (Polaris+)

FairPlay 4.x:混合 DRM,在 AppleTV+ 上找到

  • 您可以打開 TV.app,選擇 TV+ -> Free Apple TV+ Premieres,然後單擊任何劇集進行測試,無需任何試用(您確實需要一個 iCloud 帳戶)
  • 如果你想使用 Apple TV+ 也有免費試用
  • 注意:需要沒有 iGPU (Xeon) 或更新的 AMD GPU 才能工作 (Polaris+)
    • 當 iGPU 不存在時可以強制 FairPlay 1.x

如果這些測試一切正常,您就無需繼續!否則,繼續。

修復 DRM

因此,為了修復 DRM,我們主要可以走 1 條路線:修補 DRM 以使用軟件或 AMD 解碼。Vit 為不同的硬件配置製作了一個很棒的小圖表:

那麼你如何使用它呢?首先,確定您在圖表中的配置(AMD 代表 GPU,而不是 CPU)。如果您匹配硬件配置,則列出的 SMBIOS(IM = iMac、MM = Mac Mini、IMP = iMac Pro、MP = Mac Pro)是您應該使用的。如果您不匹配圖表中的任何配置,那麼您就不走運了。

接下來,確定您需要使用哪種 Shiki 模式。如果您的設置有兩種配置,它們將在使用的 Shiki 標誌上有所不同。通常,您需要硬件解碼而不是軟件解碼。如果模式列是空白的,那麼你就完成了。否則,您應該shikigva使用 DeviceProperties > Add 作為屬性添加到任何 GPU。例如,如果我們需要使用的模式是shikigva=80

《修復 DRM 支持和 iGPU 性能》

您還可以使用引導參數 – 這在模式列中。

這是一個例子。如果我們有 Intel i9-9900K 和 RX 560,配置將是“AMD+IGPU”,我們應該使用 iMac 或 Mac Mini SMBIOS(對於此特定配置,iMac19,1)。然後我們看到配置有兩個選項:一個是 mode shikigva=16,一個是shikigva=80. 我們看到區別在於“Prime Trailers”和“Prime/Netflix”。我們希望 Netflix 正常工作,因此我們將選擇該shikigva=80選項。然後將shikigva類型號/整數和值80注入我們的 iGPU 或 dGPU,重新啟動,DRM 應該可以工作。

這是另一個例子。這一次,我們有一個 Ryzen 3700X 和一個 RX 480。我們在這種情況下的配置只是“AMD”,我們應該使用 iMac Pro 或 Mac Pro SMBIOS。同樣,有兩個選項:沒有 shiki 參數,和shikigva=128. 我們更喜歡硬件解碼而不是軟件解碼,因此我們將選擇該shikigva=128選項,並再次注入shikigva我們的 dGPU,這次是 value 128。重新啟動和 DRM 工作。

筆記:

  • 您可以使用 gfxutil 找到您的 iGPU/dGPU 的路徑。
    • path/to/gfxutil -f GFX0GFX0:對於 dGPU,如果安裝了多個,請檢查 IORegistryExplorer 以了解您的 AMD 卡的名稱IGPU: 對於 iGPU
  • 如果您shikigva使用 DeviceProperties 進行注入,請確保您只對一個 GPU 執行此操作,否則whateverGreen 將使用它首先找到的任何內容,並且不能保證一致。
  • IQSV 代表英特爾快速同步視頻:這僅在 iGPU 存在並啟用且設置正確時才有效。
  • 特殊配置(如 Haswell + AMD dGPU 與 iMac SMBIOS,但 iGPU 已禁用)未包含在圖表中。您必須自己對此進行研究。
  • 式源 (打開新窗口)有助於理解什麼標誌做什麼以及何時應該使用它們,並且可能有助於特殊配置。
  • 對於VDADecoderCreate failed. err: -12473Big Sur 中的錯誤,強制使用 AMD 解碼器(在適用的系統上)可以幫助解決此問題:defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes
点赞
Share