[PATCH 1/2] efi/libstub: Enable apple-set-os for all Apple Devices

Atharva Tiwari
2026-01-26T13:55:57Z

Enable apple-set-os on all macs, as
apple-set-os is needed to use eGPUs and the iGPU.

(tested on iMac20,1)

Signed-off-by: Atharva Tiwari <atharvatiwarilinuxdev@gmail.com>
---
drivers/firmware/efi/libstub/x86-stub.c | 22 +++++-----------------
1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c
index cef32e2c82d8..60e1a41bfe5f 100644
--- a/drivers/firmware/efi/libstub/x86-stub.c
+++ b/drivers/firmware/efi/libstub/x86-stub.c
@@ -303,32 +303,20 @@ static const struct efi_smbios_record *get_table_record(u8 type)

static bool apple_match_product_name(void)
{
- static const char type1_product_matches[][15] = {
- "MacBookPro11,3",
- "MacBookPro11,5",
- "MacBookPro13,3",
- "MacBookPro14,3",
- "MacBookPro15,1",
- "MacBookPro15,3",
- "MacBookPro16,1",
- "MacBookPro16,4",
- };
const struct efi_smbios_type1_record *record;
- const u8 *product;
+ const u8 *vendor;

record = (struct efi_smbios_type1_record *)
(efi_get_smbios_record(1) ?: get_table_record(1));
if (!record)
return false;

- product = efi_get_smbios_string(record, product_name);
- if (!product)
+ vendor = efi_get_smbios_string(record, manufacturer);
+ if (!vendor)
return false;

- for (int i = 0; i < ARRAY_SIZE(type1_product_matches); i++) {
- if (!strcmp(product, type1_product_matches[i]))
- return true;
- }
+ if (!strcmp(vendor, "Apple Inc."))
+ return true;

return false;
}
--
2.43.0