From 26451775d5c81949793f57010b0449b4f540ef11 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 14 Jun 2024 17:34:30 +0100 Subject: roms: don't add grub keymaps at all if not inserted, the default keymap is usqwerty. don't waste ssd write cycles copying so many images, or cpu time compressing so many. the user can simply add a keymap.gkb file to cbfs and it will work fine. this will be documented in the next release. Signed-off-by: Leah Rowe --- script/roms | 69 +++++++++++++++++-------------------------------------------- 1 file changed, 19 insertions(+), 50 deletions(-) diff --git a/script/roms b/script/roms index 9315bec6..92dc1e9e 100755 --- a/script/roms +++ b/script/roms @@ -21,22 +21,16 @@ stm32src="src/stm32-vserprog" # target.cfg files have to specifically enable [a] payload(s) pv="payload_uboot payload_grub_withseabios payload_seabios payload_memtest t" pv="$pv payload_seabios_withgrub payload_seabios_grubonly payload_grub mt86bin" -v="romdir cbrom initmode displaymode cbcfg targetdir tree keymaps release" +v="romdir cbrom initmode displaymode cbcfg targetdir tree release" v="$v grub_timeout ubdir board grub_scan_disk uboot_config grubtree grubelf" eval "$(setvars "n" $pv)" -eval "$(setvars "" $v boards opt_k targets serprog_boards_dir)" +eval "$(setvars "" $v boards targets serprog_boards_dir)" main() { while [ $# -gt 0 ]; do [ "$1" = "list" ] && eval "x_ ls -1 config/coreboot; return 0" [ "$1" = "serprog" ] && eval "shift 1; mkserprog $@; return 0" - - if [ "$1" = "-k" ]; then - [ $# -lt 2 ] && $err "$1: option not specified" - opt_k="$2"; continue - fi - [ "$1" = "all" ] && shift && continue boards="$1 $boards"; shift 1 done @@ -169,23 +163,12 @@ build_payloads() [ "$payload_seabios" = "y" ] && x_ ./update trees -b seabios if [ "$payload_grub" = "y" ] || [ "$payload_seabios_withgrub" = "y" ] \ - || [ "$payload_seabios_grubonly" = "y" ]; then build_grub_payload + || [ "$payload_seabios_grubonly" = "y" ]; then + [ -f "$grubelf" ] || x_ ./update trees -b grub $grubtree fi [ "$payload_uboot" = "y" ] && build_uboot_payload; return 0 } -build_grub_payload() -{ - for keymapfile in "$grubdata/keymap/"*.gkb; do - [ -f "$keymapfile" ] && keymaps="$keymaps $keymapfile" - done - [ -z "$opt_k" ] || [ -f "$grubdata/keymap/${opt_k}.gkb" ] || \ - $err "build_grub_payload: ${opt_k} layout not defined" - [ -n "$opt_k" ] && keymaps="$grubdata/keymap/$opt_k.gkb" - - [ -f "$grubelf" ] || x_ ./update trees -b grub $grubtree; return 0 -} - build_uboot_payload() { x_ ./update trees -b u-boot $board @@ -256,7 +239,7 @@ build_seabios_roms() x_ rm -f "$t" } -# Make separate ROM images with GRUB payload, for each supported keymap +# Make separate ROM images with GRUB payload build_grub_roms() { tmprom="$1" @@ -298,35 +281,21 @@ build_grub_roms() -f "$tmpcfg" -n timeout.cfg -t raw x_ rm -f "$tmpcfg" - for keymapfile in $keymaps; do - [ -f "$keymapfile" ] || continue - keymap="${keymapfile##*/}" - keymap="${keymap%.gkb}" - - tmpgrubrom="$(mktemp -t coreboot_rom.XXXXXXXXXX)" - x_ cp "$tmprom" "$tmpgrubrom" - x_ "$cbfstool" "$tmpgrubrom" add -f "$keymapfile" \ - -n keymap.gkb -t raw - - newrom="$romdir/${payload1}_${board}_${initmode}_" - newrom="$newrom${displaymode}_$keymap.rom" - [ "$initmode" = "normal" ] && newrom="$romdir/${payload1}_" \ - && newrom="$newrom${board}_${initmode}_$keymap.rom" - x_ cprom "$tmpgrubrom" "$newrom" - if [ "$payload_seabios_withgrub" = "y" ] && \ - [ "$payload1" != "grub" ]; then - x_ "$cbfstool" "$tmpgrubrom" add \ - -f "$grubdata/bootorder" -n bootorder -t raw - x_ cprom "$tmpgrubrom" "${newrom%.rom}_grubfirst.rom" - if [ "$payload_seabios_grubonly" = "y" ]; then - x_ "$cbfstool" "$tmpgrubrom" add-int -i 0 \ - -n etc/show-boot-menu - x_ cprom "$tmpgrubrom" \ - "${newrom%.rom}_grubonly.rom" - fi + newrom="$romdir/${payload1}_${board}_${initmode}_$displaymode.rom" + [ "$initmode" = "normal" ] && newrom="$romdir/${payload1}_" \ + && newrom="$newrom${board}_$initmode.rom" + x_ cprom "$tmprom" "$newrom" + if [ "$payload_seabios_withgrub" = "y" ] && \ + [ "$payload1" != "grub" ]; then + x_ "$cbfstool" "$tmprom" add \ + -f "$grubdata/bootorder" -n bootorder -t raw + x_ cprom "$tmprom" "${newrom%.rom}_grubfirst.rom" + if [ "$payload_seabios_grubonly" = "y" ]; then + x_ "$cbfstool" "$tmprom" add-int -i 0 \ + -n etc/show-boot-menu + x_ cprom "$tmprom" "${newrom%.rom}_grubonly.rom" fi - x_ rm -f "$tmpgrubrom" - done + fi } # make a rom in /tmp/ and then print the path of that ROM -- cgit v1.2.1