Page MenuHomeFreeBSD

Allow loader.efi to identify non-standard boot setup
ClosedPublic

Authored by sjg on Oct 16 2019, 9:37 PM.

Details

Summary

PATH_BOOTABLE_TOKEN can be set to a non-standard
path that identifies a device as bootable.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

sjg created this revision.Oct 16 2019, 9:37 PM

Just curious what is this a fix for? I assume some specific type or class of hardware.

kevans accepted this revision.Oct 17 2019, 5:31 PM

Just curious what is this a fix for? I assume some specific type or class of hardware.

Downstream OS/vendors that don't have /boot/defaults/loader.conf or /boot/kernel/kernel because they store all of this elsewhere as part of a versioned boot scheme (or something to this effect) -- they'd then define PATH_BOOTABLE_TOKEN as another path to check to determine if this is a valid rootfs.

This revision is now accepted and ready to land.Oct 17 2019, 5:31 PM
bcran added a comment.Oct 17 2019, 8:19 PM

Downstream OS/vendors that don't have /boot/defaults/loader.conf or /boot/kernel/kernel because they store all of this elsewhere as part of a versioned boot scheme (or something to this effect) -- they'd then define PATH_BOOTABLE_TOKEN as another path to check to determine if this is a valid rootfs.

So how does the loader find the loader.conf and kernel to load? Should users set a different PATH_KERNEL?

Downstream OS/vendors that don't have /boot/defaults/loader.conf or /boot/kernel/kernel because they store all of this elsewhere as part of a versioned boot scheme (or something to this effect) -- they'd then define PATH_BOOTABLE_TOKEN as another path to check to determine if this is a valid rootfs.

So how does the loader find the loader.conf and kernel to load? Should users set a different PATH_KERNEL?

loader.conf really isn't all that necessary, to be honest. For EFI, one can use the mechanism imp added to salt the environment from a file on the ESP. That file can include a module_path that includes where the kernel/modules actually lives.

I have a vague recollection from years past that @sjg doesn't have a single kernel path that would be sensible for hardcoding as this #define.

bcran accepted this revision.Oct 17 2019, 8:31 PM
This revision was automatically updated to reflect the committed changes.