User:Spoonlegs

From ArchWiki
Jump to navigation Jump to search

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

  1. Specify the -e 3 flag with efibootmgr 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

Solution

  1. Build a 'unified image' which bundles the kernel with its boot dependencies as described here and boot that