Linux 6.11 EFI將偽裝成啟動蘋果macOS 以修復某些雙GPU Mac出現的問題
在開發中的Linux 6.11 核心中,已經合併了EFI 變更。在EFI 方面,本週期值得注意的是刪除了對EFI 偽內存映射的支持,以及通過假裝啟動的是蘋果macOS 而不是Linux,為一些基於x86 的舊版蘋果MacBook Pro 提供雙GPU 支持的變通方法。
EFI 偽記憶體映射支援正在從Linux 核心中移除,因為它目前還未被使用,而且會導致機密運算(CoCo)虛擬機器、未接受記憶體處理和其他方面的複雜性。該功能在過去主要用於EFI 調試。
另一個值得一提的變化是SMBIOS 的”調整”,它指示x86 MacBook Pro 的韌體同時啟用整合和獨立GPU。 Linux 核心已經支援基於T2 的蘋果Mac 上的MMIO GMUX,以便使用獨立GPU。不過,要防止韌體停用整合GPU,需要採取特殊的處理方法。尤其是,韌體需要在啟動蘋果macOS 時才會停用iGPU,而只啟用dGPU。
因此,在Linux 6.11 中,對於少數已知的蘋果MacBook Pro 型號,EFI SMBIOS 代碼會報告”Mac OS X 10.9″正在從作業系統供應商”蘋果公司”啟動,以防止iGPU 被停用。目前設定為停用iGPU 的MacBook Pro 型號有:MacBookPro11,3、MacBookPro11,5、MacBookPro13,3、MacBookPro14,3、MacBookPro15,1、MacBookPro15,3、MacBookPro16,1 和MacBookPro16,4。
這是繼2013年的GRUB補丁之後,某些MacBook機型在啟動時會識別為Mac OS X,以應對韌體對硬體的不同配置,如果啟動時沒有報告為”Mac OS X”的話。因此,如果你使用的是這些較舊的x86 MacBook Pro 機型之一,Linux 6.11 在啟動時識別為”Mac OS X”而不是Linux,那麼雙GPU(iGPU)支援就應該表現正常,而且不會出現任何其他韌體/硬體行為差異。