summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-06-15 22:53:34 +0100
committerLeah Rowe <leah@libreboot.org>2024-06-15 23:15:27 +0100
commit340eea0b1cd445feb7134eae4211f469fd6f5d2a (patch)
treeebab8cb6434222d273046eb2dd4f9b3b5f2c0c42
parented9c90e59d959bab544598d330c724e44afcc096 (diff)
grub: insert background in memdisk instead
the background is only a few kb. the whole rationale before was to limit the space used in memdisk, but this decision was made when the background was much bigger; it has since been optimised greatly, and the grub modules were heavily reduce, so it should be safe. grub's memdisk breaks when you add too much data to it. as part of simplifying the rest of lbmk, this change removes some more bloat from the rest of lbmk. handling this in the memdisk is much simpler than handling it with cbfstool. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--config/coreboot/t60_16mb_intelgpu/target.cfg1
-rw-r--r--config/coreboot/t60_intelgpu/target.cfg1
-rw-r--r--config/coreboot/x60/target.cfg1
-rw-r--r--config/coreboot/x60_16mb/target.cfg1
-rw-r--r--config/grub/default/config/payload15
-rw-r--r--config/grub/nvme/config/payload15
-rw-r--r--config/grub/xhci/config/payload15
-rwxr-xr-xscript/roms9
-rwxr-xr-xscript/trees3
9 files changed, 26 insertions, 35 deletions
diff --git a/config/coreboot/t60_16mb_intelgpu/target.cfg b/config/coreboot/t60_16mb_intelgpu/target.cfg
index 80f93d49..043bd365 100644
--- a/config/coreboot/t60_16mb_intelgpu/target.cfg
+++ b/config/coreboot/t60_16mb_intelgpu/target.cfg
@@ -2,5 +2,4 @@ tree="i945"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
-grub_background="background1024x768.png"
grub_scan_disk="ahci"
diff --git a/config/coreboot/t60_intelgpu/target.cfg b/config/coreboot/t60_intelgpu/target.cfg
index 80f93d49..043bd365 100644
--- a/config/coreboot/t60_intelgpu/target.cfg
+++ b/config/coreboot/t60_intelgpu/target.cfg
@@ -2,5 +2,4 @@ tree="i945"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
-grub_background="background1024x768.png"
grub_scan_disk="ahci"
diff --git a/config/coreboot/x60/target.cfg b/config/coreboot/x60/target.cfg
index 80f93d49..043bd365 100644
--- a/config/coreboot/x60/target.cfg
+++ b/config/coreboot/x60/target.cfg
@@ -2,5 +2,4 @@ tree="i945"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
-grub_background="background1024x768.png"
grub_scan_disk="ahci"
diff --git a/config/coreboot/x60_16mb/target.cfg b/config/coreboot/x60_16mb/target.cfg
index 80f93d49..043bd365 100644
--- a/config/coreboot/x60_16mb/target.cfg
+++ b/config/coreboot/x60_16mb/target.cfg
@@ -2,5 +2,4 @@ tree="i945"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
-grub_background="background1024x768.png"
grub_scan_disk="ahci"
diff --git a/config/grub/default/config/payload b/config/grub/default/config/payload
index a405ae25..313290ed 100644
--- a/config/grub/default/config/payload
+++ b/config/grub/default/config/payload
@@ -26,13 +26,14 @@ else
gfxpayload=keep
terminal_output --append gfxterm
- if [ -f (cbfsdisk)/background.png ]; then
- insmod png
- background_image (cbfsdisk)/background.png
- elif [ -f (cbfsdisk)/background.jpg ]; then
- insmod jpeg
- background_image (cbfsdisk)/background.jpg
- fi
+ for dt in cbfsdisk memdisk; do
+ for it in png jpg; do
+ if [ -f (${dt})/background.${it} ]; then
+ insmod ${it}
+ background_image (${dt})/background.${it}
+ fi
+ done
+ done
fi
# Keep CTRL pressed to enable default serial terminal (COM1 or the like)
diff --git a/config/grub/nvme/config/payload b/config/grub/nvme/config/payload
index f81d5930..d7a3c57d 100644
--- a/config/grub/nvme/config/payload
+++ b/config/grub/nvme/config/payload
@@ -26,13 +26,14 @@ else
gfxpayload=keep
terminal_output --append gfxterm
- if [ -f (cbfsdisk)/background.png ]; then
- insmod png
- background_image (cbfsdisk)/background.png
- elif [ -f (cbfsdisk)/background.jpg ]; then
- insmod jpeg
- background_image (cbfsdisk)/background.jpg
- fi
+ for dt in cbfsdisk memdisk; do
+ for it in png jpg; do
+ if [ -f (${dt})/background.${it} ]; then
+ insmod ${it}
+ background_image (${dt})/background.${it}
+ fi
+ done
+ done
fi
# Keep CTRL pressed to enable default serial terminal (COM1 or the like)
diff --git a/config/grub/xhci/config/payload b/config/grub/xhci/config/payload
index 0e16ecb6..cd5b49b3 100644
--- a/config/grub/xhci/config/payload
+++ b/config/grub/xhci/config/payload
@@ -27,13 +27,14 @@ else
gfxpayload=keep
terminal_output --append gfxterm
- if [ -f (cbfsdisk)/background.png ]; then
- insmod png
- background_image (cbfsdisk)/background.png
- elif [ -f (cbfsdisk)/background.jpg ]; then
- insmod jpeg
- background_image (cbfsdisk)/background.jpg
- fi
+ for dt in cbfsdisk memdisk; do
+ for it in png jpg; do
+ if [ -f (${dt})/background.${it} ]; then
+ insmod ${it}
+ background_image (${dt})/background.${it}
+ fi
+ done
+ done
fi
# Keep CTRL pressed to enable default serial terminal (COM1 or the like)
diff --git a/script/roms b/script/roms
index 0e4b4b72..e2caacef 100755
--- a/script/roms
+++ b/script/roms
@@ -11,7 +11,6 @@ set -u -e
. "include/lib.sh"
seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin"
-grub_background="background1280x800.png"
cfgsdir="config/coreboot"
picosrc="src/pico-serprog"
picosdk="src/pico-sdk"
@@ -107,7 +106,6 @@ list_serprog_boards()
configure_target()
{
eval "$(setvars "n" $pv) $(setvars "" $v)"
- grub_background="background1280x800.png"
board="$1"
targetdir="$cfgsdir/$board"
@@ -261,13 +259,6 @@ build_grub_roms()
# we only need insert grub.elf once, for each coreboot config:
cbfs "$tmprom" "$grubelf" "$grub_cbfs"
- # we only need insert background.png once, for each coreboot config:
- if [ "$displaymode" = "vesafb" ] || \
- [ "$displaymode" = "corebootfb" ]; then
- cbfs "$tmprom" "$grubdata/background/$grub_background" \
- background.png raw
- fi
-
tmpcfg="$(mktemp -t coreboot_rom.XXXXXXXXXX)"
printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" > "$tmpcfg" || \
$err "set grub_scan_disk, $grub_scan_disk, $tmpcfg"
diff --git a/script/trees b/script/trees
index a773f03c..8084dd54 100755
--- a/script/trees
+++ b/script/trees
@@ -286,7 +286,8 @@ mkpayload_grub()
--fonts= --themes= --locales= --modules="$grub_modules" \
--install-modules="$grub_install_modules" \
"/boot/grub/grub_default.cfg=${cdir}/.config" \
- "/boot/grub/grub.cfg=$grubdata/memdisk.cfg" || \
+ "/boot/grub/grub.cfg=$grubdata/memdisk.cfg" \
+ "/background.png=$grubdata/background/background1280x800.png" || \
$err "$tree: cannot build grub.elf"
}