build/roms: support SeaGRUB *with menu enabled*

This is useful on desktops, where you want GRUB to
automatically start, but you still want access to the
GRUB menu, in the case where you rely on SeaBIOS to
execute the VGA ROM inside your graphics card.

Signed-off-by: Leah Rowe <leah@libreboot.org>
20240612_branch
Leah Rowe 2024-04-28 19:56:25 +01:00
parent a88a8281df
commit 515185a7f5
1 changed files with 14 additions and 2 deletions

View File

@ -398,8 +398,10 @@ build_grub_roms()
newrom="${romdir}/${payload1}_${board}_" && \
newrom="${newrom}${initmode}_${keymap}.rom"
x_ moverom "${tmpgrubrom}" "${newrom}"
[ "${payload_seabios_grubonly}" = "y" ] && \
if [ "${payload_seabios_grubonly}" = "y" ]; then
mkSeagrubRom "${tmpgrubrom}" "${newrom}"
mkSeabiosGrubonlyRom "${tmpgrubrom}" "${newrom}"
fi
x_ rm -f "${tmpgrubrom}"
done
}
@ -428,7 +430,7 @@ mkSeabiosRom() {
}
# SeaGRUB configuration
mkSeabiosGrubonlyRom()
mkSeagrubRom()
{
_grubrom="${1}"
_newrom="${2}"
@ -441,7 +443,17 @@ mkSeabiosGrubonlyRom()
add -f "${tmpbootorder}" -n bootorder -t raw
x_ rm -f "${tmpbootorder}"
x_ moverom "${_grubrom}" "${_newrom%.rom}_grubfirst.rom"
}
# SeaGRUB, and disable the SeaBIOS menu (grub only)
mkSeabiosGrubonlyRom()
{
_grubrom="${1}"
_newrom="${2}"
x_ "${cbfstool}" "${_grubrom}" add-int -i 0 -n etc/show-boot-menu
x_ moverom "${_grubrom}" "${_newrom%.rom}_grubonly.rom"
}