diff options
Diffstat (limited to 'buildrom-withgrub')
-rwxr-xr-x | buildrom-withgrub | 94 |
1 files changed, 31 insertions, 63 deletions
diff --git a/buildrom-withgrub b/buildrom-withgrub index 1f06038..489fac6 100755 --- a/buildrom-withgrub +++ b/buildrom-withgrub @@ -31,68 +31,38 @@ if (( $# != 1 )); then exit fi -# Build the ROM images: -# ---------------------------------------------------------------------------------------------------------------------- - cd coreboot -rm -rf .config - -# prepare libreboot configuration and build it -# it is assumed that these configs use coreboot text-mode -# instead of coreboot framebuffer, by default -cp ../resources/libreboot/config/"$1"/config .config -# coreboot.rom will appear under ./coreboot/build -make -# move it out (we'll be cleaning the build) -mv build/coreboot.rom "$1"_txtmode.rom -# clean the build -make clean - -# Now prepare ROM images that use coreboot vesa framebuffer instead of text mode. -mv .config config_txtmode -# create .config for vesa framebuffer (instead of text mode) -sed 's/# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set/CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y/' < config_txtmode > .config -# build new ROM -make -mv build/coreboot.rom "$1"_vesafb.rom -# clean coreboot (again) -make clean - -# copies no longer needed -rm -rf .config config_txtmode - -# Insert files/configurations and perform operations that are common on all images -# --------------------------------------------------------------------------------------------------------------- - -# for rom in "$1"_vesafb.rom "$1"_txtmode.rom -# do - # Nothing to do here -# done - -# Insert files/configurations and perform operations that are common on "$1"_vesafb.rom (coreboot framebuffer configuration) -# --------------------------------------------------------------------------------------------------------------- - -# Add background image and font -./util/cbfstool/cbfstool "$1"_vesafb.rom add -f ../resources/grub/background/background.jpg -n background.jpg -t raw -# ./util/cbfstool/cbfstool "$1"_vesafb.rom add -f ../resources/grub/background/gnulove.jpg -n gnulove.jpg -t raw -./util/cbfstool/cbfstool "$1"_vesafb.rom add -f ../resources/grub/font/dejavusansmono.pf2 -n dejavusansmono.pf2 -t raw - -# Insert files/configurations and perform operations that are common on "$1"_txtmode.rom (coreboot text mode) -# --------------------------------------------------------------------------------------------------------------- -# Add memtest86+ -./util/cbfstool/cbfstool "$1"_txtmode.rom add -f ../memtest86+-5.01/memtest -n memtest -t raw - -# Add GRUB Invaders -./util/cbfstool/cbfstool "$1"_txtmode.rom add -f ../grubinvaders/invaders -n invaders -t raw -./util/cbfstool/cbfstool "$1"_txtmode.rom add -f ../grubinvaders/invaders.exec -n invaders.exec -t raw - -# Generate the GRUB configurations and add them to each ROM image as grub.cfg and grubtest.cfg +# Build ROM images with text-mode and corebootfb modes. # --------------------------------------------------------------------------------------------------------------- -for keymap in $(ls ../resources/utilities/grub-assemble/keymap/original) +for romtype in txtmode vesafb do - for romtype in txtmode vesafb + # Build the GRUB payload (ELF executable) + # and add it to coreboot directory: + cd ../resources/utilities/grub-assemble + ./gen."$romtype".sh + rm -rf ../../../coreboot/grub.elf + mv grub.elf ../../../coreboot/ + cd ../../../coreboot + + # Build coreboot ROM image + rm -rf .config + make clean + cp ../resources/libreboot/config/"$1"/config .config + if [ "$romtype" = "vesafb" ] + then + mv .config config_txtmode + sed 's/# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set/CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y/' < config_txtmode > .config + rm -rf config_txtmode + fi + make + mv build/coreboot.rom "$1"_"$romtype".rom + # .config no longer needed + rm -rf .config + + # Generate each type of GRUB configuration for this type of ROM image + for keymap in $(ls ../resources/utilities/grub-assemble/keymap/original) do # copy the images based on the keymap cp "$1"_"$romtype".rom "$1"_"$keymap"_"$romtype".rom @@ -115,18 +85,16 @@ do # Insert grub test config into the image (for the user to test modifications to before modifying the main one) ./util/cbfstool/cbfstool "$1"_"$keymap"_"$romtype".rom add -f grub_"$keymap"_"$romtype"_test.cfg -n grubtest.cfg -t raw done + + rm -rf "$1"_"$romtype".rom done -# we don't need the generic rom images anymore -rm -rf "$1"_txtmode.rom -rm -rf "$1"_vesafb.rom +# Now we clean up and prepare the bin directory containing all the images +# ---------------------------------------------------------------------------------------------------------------------------- # we don't need the grub configs anymore rm -rf grub*cfg -# Now we clean up and prepare the bin directory containing all the images -# ---------------------------------------------------------------------------------------------------------------------------- - # prepare directory for new ROM images rm -rf "$1" mkdir "$1" |