Linux 6.11 EFI Will Fake That It's Booting Apple macOS To Fix Some Dual-GPU Macs

Written by Michael Larabel in Apple on 17 July 2024 at 06:40 AM EDT. 35 Comments
APPLE
The EFI changes have been merged for the in-development Linux 6.11 kernel. Notable this cycle on the EFI side is removing support for EFI fake memory maps and then a workaround to get dual GPU support working for some of the older x86-based Apple MacBook Pros by pretending that Apple macOS is booting rather than Linux.

The EFI fake memory map support is being removed from the Linux kernel since it's unused at this point and causes complexities around confidential computing (CoCo) VMs, unaccepted memory handling, and other bits. This feature was primarily useful in the past for EFI debugging purposes.

The other more interesting change worth mentioning for users is an SMBIOS "tweak" to instruct the firmware on x86 MacBook Pros to keep both the integrated and discrete GPUs enabled. The Linux kernel has already supported the MMIO GMUX on T2-based Apple Macs to make use of the discrete GPU. However, special handling needs to be taken to keep the firmware from disabling the integrated GPU. In particular, the firmware expects to be booting Apple macOS otherwise it will disable the iGPU and only leave the dGPU enabled.

So with Linux 6.11, for a handful of known Apple MacBook Pro models, the EFI SMBIOS code will report that "Mac OS X 10.9" is booting from OS vendor "Apple Inc." This is enough to keep the iGPU from being disabled. The MacBook Pro models where this is currently set to happen is for the MacBookPro11,3, MacBookPro11,5, MacBookPro13,3, MacBookPro14,3, MacBookPro15,1, MacBookPro15,3, MacBookPro16,1, and MacBookPro16,4.

Faking macOS EFI


This follows a GRUB patch from 2013 that for certain MacBook models would identify as Mac OS X while booting to deal with the firmware configuring the hardware differently if it wasn't reported to be "Mac OS X" that was booting. So should you be on one of these older x86 MacBook Pro models, with Linux 6.11 by identifying as "Mac OS X" that is booting rather than Linux, the dual GPU (iGPU) support should behave properly and any other firmware/hardware behavior differences.

See the EFI merge to Linux 6.11 Git yesterday for more details on all of the EFI feature updates this cycle.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week