[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
This is an old revision of the document!
Table of Contents
Linux kernel options for UEFI and ELILO
The purpose of this article is to inform the user about necessary kernel options for booting from UEFI, and some info about how ELILO and perhaps other EFI bootloaders work, as this is currently lacking online.
Required kernel options for UEFI support
The following options are required for booting a kernel from UEFI. These are already set in the stock Slackware kernels.
Booting from UEFI requires that the kernel be the same bitness as the UEFI firmware. This usually means 64-bit, with the exception of older (pre-2008) Apple Macs, some Intel Cloverfield ultrabooks, and some older Intel Server boards, all using EFI v1.10 in 32-bit mode. However, you can still enable 32-bit emulation in the kernel and run 32-bit programs in Linux using multilib.
Enable the block layerPartition TypesAdvanced partition selectionEFI GUID Partition support (CONFIG_EFI_PARTITION)
Processor type and featuresEFI runtime service support (CONFIG_EFI)
EFI stub support (CONFIG_EFI_STUB)
Build a relocatable kernel (CONFIG_RELOCATABLE)
Device DriversGraphics supportSupport for frame buffer devices (CONFIG_FB)EFI-based Framebuffer Support (CONFIG_FB_EFI)
File systemsMiscellaneous filesystemsEFI Variable filesystem (CONFIG_EFIVAR_FS)
You should DISABLE the old efivars sysfs interface found at:
Firmware DriversEFI (Extensible Firmware Interface) SupportEFI Variable Support via sysfs (CONFIG_EFI_VARS)
as it is deprecated in favor of CONFIG_EFIVAR_FS, because it has a 1024-byte variable size limit, and because it can cause data inconsistency issues. However, if you do disable this, you will need a fork of the 'efibootmgr' program that supports the new EFI Variable filesystem found at: https://github.com/vathpela/efibootmgr/tree/libefivars