On Wed, Feb 09, 2022 at 06:02:34PM +0000, Aditya Garg wrote:
quoted
On 09-Feb-2022, at 10:19 PM, Matthew Garrett [off-list ref] wrote:
On Wed, Feb 09, 2022 at 02:27:51PM +0000, Aditya Garg wrote:
quoted
From: Aditya Garg <redacted>
On T2 Macs, the secure boot is handled by the T2 Chip. If enabled, only
macOS and Windows are allowed to boot on these machines. Thus we need to
disable secure boot for Linux. If we boot into Linux after disabling
secure boot, if CONFIG_LOAD_UEFI_KEYS is enabled, EFI Runtime services
fail to start, with the following logs in dmesg
Which specific variable request is triggering the failure? Do any
runtime variable accesses work on these machines?
Commit f5390cd0b43c2e54c7cf5506c7da4a37c5cef746 in Linus’ tree was also added to force EFI v1.1 on these machines, since v2.4, reported by them was causing kernel panics.
So, EFI 1.1 without import certificates seems to work and have been able to modify the variables, thus the remaining EFI variable accesses seem to work.
The LOAD_UEFI_KEYS code isn't doing anything special here - it's just
trying to read some variables. If we simply disable that then the
expectation would be that reading the same variables from userland would
trigger the same failure. So the question is which of the variables that
LOAD_UEFI_KEYS accesses is triggering the failure, and what's special
about that? If it's a specific variable GUID or name that's failing, we
should block that on Apple hardware in order to avoid issues caused by
userland performing equivalent accesses.