Linux 6.11 EFI将伪装成启动苹果macOS 以修复某些双GPU Mac出现的问题

站长云网 2024-07-17 5iter.com 站长云网

在开发中的Linux6.11内核中,已经合并了EFI更改。在EFI方面,本周期值得注意的是删除了对EFI伪内存映射的支持,以及通过假装启动的是苹果macOS而不是Linux,为一些基于x86的旧版苹果MacBookPro提供双GPU支持的变通方法。

EFI伪内存映射支持正在从Linux内核中移除,因为它目前还未被使用,而且会导致机密计算(CoCo)虚拟机、未接受内存处理和其他方面的复杂性。该功能在过去主要用于EFI调试。

另一个值得一提的变化是SMBIOS的"调整",它指示x86MacBookPro的固件同时启用集成和独立GPU。Linux内核已经支持基于T2的苹果Mac上的MMIOGMUX,以便使用独立GPU。不过,要防止固件禁用集成GPU,需要采取特殊的处理方法。尤其是,固件需要在启动苹果macOS时才会禁用iGPU,而只启用dGPU。

因此,在Linux6.11中,对于少数已知的苹果MacBookPro型号,EFISMBIOS代码会报告"MacOSX10.9"正在从操作系统供应商"苹果公司"启动,以防止iGPU被禁用。目前设置为禁用iGPU的MacBookPro型号有:MacBookPro11,3、MacBookPro11,5、MacBookPro13,3、MacBookPro14,3、MacBookPro15,1、MacBookPro15,3、MacBookPro16,1和MacBookPro16,4。

这是继2013年的GRUB补丁之后,某些MacBook机型在启动时会识别为MacOSX,以应对固件对硬件的不同配置,如果启动时没有报告为"MacOSX"的话。因此,如果你使用的是这些较旧的x86MacBookPro机型之一,Linux6.11在启动时识别为"MacOSX"而不是Linux,那么双GPU(iGPU)支持就应该表现正常,而且不会出现任何其他固件/硬件行为差异。

有关本周期所有EFI功能更新的更多详情,请参阅昨天的EFI合并到Linux6.11Git。

责任编辑:站长云网