User:Spoonlegs
Dell XPS 13 9370 UEFI boot
I wanted to boot the kernel directly from system's UEFI boot manager via its EFISTUB. I thought this would be straightforward, but (of course) it was not.
Tip: TLDR: the laptop's UEFI implementation is incapable of reading kernel params from NVRAM so you need to build a 'unified image' and use that.
Where the f**k is my boot option?
Symptoms
- If you use
efibootmgr
as suggested in EFISTUB you'll find that, upon reboot, your new boot entry doesn't appear
Cause
- The tool generates an incompatible path to the EFI binary (EDD v1.0 maybe [1])
Solution
- Specify the
-e 3
flag withefibootmgr
to generate an EDD 3.0 path
The black screen of misery
Symptoms
- Once you've got the boot entry to appear you'll try to boot it
- You'll be greeted by a full black screen which will upset you
Cause
- The kernel parameters you so carefully provided to efibootmgr are ignored by the machine's UEFI implementation and as such it's executing the kernel argument-less
- Somewhat surprisingly the errors the kernel very quickly encounters (like no initramfs) are not output at the default log level—hence the black screen
- If you boot to a UEFI shell you can run the kernel image directly and supply
loglevel=7
to get some output
- If you boot to a UEFI shell you can run the kernel image directly and supply
Solution
- Build a 'unified image' which bundles the kernel with its boot dependencies as described here and boot that