diff options
author | Leah Woods <info@minifree.org> | 2016-05-17 08:19:29 +0100 |
---|---|---|
committer | Leah Woods <info@minifree.org> | 2016-05-18 20:24:09 +0100 |
commit | 5269566a6c37151015dea0d4cf78f341cca0669c (patch) | |
tree | 9ae3f31ec51f53957b446c7f21332e42034f7e18 | |
parent | f6e141b3e2a796fe45b60641417c85234d399436 (diff) | |
download | librebootfr-5269566a6c37151015dea0d4cf78f341cca0669c.tar.gz librebootfr-5269566a6c37151015dea0d4cf78f341cca0669c.zip |
Implement SeaGRUB and make it the default payload on all current GRUB boards
26 files changed, 61 insertions, 26 deletions
diff --git a/resources/libreboot/config/grub/d510mo/config b/resources/libreboot/config/grub/d510mo/config index 230ac99c..14439cba 100644 --- a/resources/libreboot/config/grub/d510mo/config +++ b/resources/libreboot/config/grub/d510mo/config @@ -507,7 +507,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/ga-g41m-es2l/config b/resources/libreboot/config/grub/ga-g41m-es2l/config index 1d95c908..03b81c97 100644 --- a/resources/libreboot/config/grub/ga-g41m-es2l/config +++ b/resources/libreboot/config/grub/ga-g41m-es2l/config @@ -500,7 +500,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/kcma-d8/config b/resources/libreboot/config/grub/kcma-d8/config index 26c8c9c3..86288554 100644 --- a/resources/libreboot/config/grub/kcma-d8/config +++ b/resources/libreboot/config/grub/kcma-d8/config @@ -573,7 +573,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/kgpe-d16/config b/resources/libreboot/config/grub/kgpe-d16/config index 862614fb..3e17222e 100644 --- a/resources/libreboot/config/grub/kgpe-d16/config +++ b/resources/libreboot/config/grub/kgpe-d16/config @@ -573,7 +573,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/macbook21/config b/resources/libreboot/config/grub/macbook21/config index e59e9ee3..7d41467f 100644 --- a/resources/libreboot/config/grub/macbook21/config +++ b/resources/libreboot/config/grub/macbook21/config @@ -511,7 +511,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/qemu_i440fx_piix4/config b/resources/libreboot/config/grub/qemu_i440fx_piix4/config index 132fe62e..a03e5cd0 100644 --- a/resources/libreboot/config/grub/qemu_i440fx_piix4/config +++ b/resources/libreboot/config/grub/qemu_i440fx_piix4/config @@ -477,7 +477,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/qemu_q35_ich9/config b/resources/libreboot/config/grub/qemu_q35_ich9/config index 8f84272e..8e04481b 100644 --- a/resources/libreboot/config/grub/qemu_q35_ich9/config +++ b/resources/libreboot/config/grub/qemu_q35_ich9/config @@ -479,7 +479,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/r400_16mb/config b/resources/libreboot/config/grub/r400_16mb/config index 65101104..ca936334 100644 --- a/resources/libreboot/config/grub/r400_16mb/config +++ b/resources/libreboot/config/grub/r400_16mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/r400_4mb/config b/resources/libreboot/config/grub/r400_4mb/config index 83836f8f..1e140daf 100644 --- a/resources/libreboot/config/grub/r400_4mb/config +++ b/resources/libreboot/config/grub/r400_4mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/r400_8mb/config b/resources/libreboot/config/grub/r400_8mb/config index b88e12ad..eada74a5 100644 --- a/resources/libreboot/config/grub/r400_8mb/config +++ b/resources/libreboot/config/grub/r400_8mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t400_16mb/config b/resources/libreboot/config/grub/t400_16mb/config index 09efb568..cdc6b80d 100644 --- a/resources/libreboot/config/grub/t400_16mb/config +++ b/resources/libreboot/config/grub/t400_16mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t400_4mb/config b/resources/libreboot/config/grub/t400_4mb/config index 6181edaa..9dbe6e75 100644 --- a/resources/libreboot/config/grub/t400_4mb/config +++ b/resources/libreboot/config/grub/t400_4mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t400_8mb/config b/resources/libreboot/config/grub/t400_8mb/config index 524b9406..de311c8e 100644 --- a/resources/libreboot/config/grub/t400_8mb/config +++ b/resources/libreboot/config/grub/t400_8mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t500_16mb/config b/resources/libreboot/config/grub/t500_16mb/config index 6b869a6e..74707104 100644 --- a/resources/libreboot/config/grub/t500_16mb/config +++ b/resources/libreboot/config/grub/t500_16mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t500_4mb/config b/resources/libreboot/config/grub/t500_4mb/config index 410a2dc2..68a55149 100644 --- a/resources/libreboot/config/grub/t500_4mb/config +++ b/resources/libreboot/config/grub/t500_4mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t500_8mb/config b/resources/libreboot/config/grub/t500_8mb/config index 9b49fe05..091f3807 100644 --- a/resources/libreboot/config/grub/t500_8mb/config +++ b/resources/libreboot/config/grub/t500_8mb/config @@ -505,7 +505,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/t60/config b/resources/libreboot/config/grub/t60/config index f22eec20..a371356d 100644 --- a/resources/libreboot/config/grub/t60/config +++ b/resources/libreboot/config/grub/t60/config @@ -527,7 +527,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/x200_16mb/config b/resources/libreboot/config/grub/x200_16mb/config index e454616f..cd27d394 100644 --- a/resources/libreboot/config/grub/x200_16mb/config +++ b/resources/libreboot/config/grub/x200_16mb/config @@ -488,7 +488,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/x200_4mb/config b/resources/libreboot/config/grub/x200_4mb/config index 42487c15..1fb63453 100644 --- a/resources/libreboot/config/grub/x200_4mb/config +++ b/resources/libreboot/config/grub/x200_4mb/config @@ -488,7 +488,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/x200_8mb/config b/resources/libreboot/config/grub/x200_8mb/config index 85fce0c4..5b8ae35c 100644 --- a/resources/libreboot/config/grub/x200_8mb/config +++ b/resources/libreboot/config/grub/x200_8mb/config @@ -488,7 +488,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/libreboot/config/grub/x60/config b/resources/libreboot/config/grub/x60/config index c67487fe..78bf208b 100644 --- a/resources/libreboot/config/grub/x60/config +++ b/resources/libreboot/config/grub/x60/config @@ -532,7 +532,7 @@ CONFIG_PAYLOAD_ELF=y # CONFIG_PAYLOAD_UBOOT is not set # CONFIG_PAYLOAD_LINUX is not set # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="grub.elf" +CONFIG_PAYLOAD_FILE="seabios.elf" CONFIG_PAYLOAD_OPTIONS="" CONFIG_COMPRESSED_PAYLOAD_LZMA=y # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set diff --git a/resources/scripts/helpers/build/clean/grub b/resources/scripts/helpers/build/clean/grub index fb16ffb9..8e87b47a 100755 --- a/resources/scripts/helpers/build/clean/grub +++ b/resources/scripts/helpers/build/clean/grub @@ -2,7 +2,7 @@ # helper script: clean the dependencies that were built in GRUB # -# Copyright (C) 2014, 2015 Leah Woods <info@minifree.org> +# Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org> # Copyright (C) 2015 Klemens Nanni <contact@autoboot.org> # # This program is free software: you can redistribute it and/or modify @@ -29,4 +29,7 @@ printf "Cleaning the previous build of GRUB\n" # clean GURB [ -d grub/Makefile ] && make -C grub distclean +# Also clean SeaBIOS +./build clean seabios + printf "\n\n" diff --git a/resources/scripts/helpers/build/module/grub b/resources/scripts/helpers/build/module/grub index fb10e6c3..8f74135f 100755 --- a/resources/scripts/helpers/build/module/grub +++ b/resources/scripts/helpers/build/module/grub @@ -52,3 +52,6 @@ cd grub/ ./configure --with-platform=coreboot make -j${cores} ) + +# Also build SeaBIOS, which we use with GRUB to make SeaGRUB +./build module seabios diff --git a/resources/scripts/helpers/build/roms/withgrub b/resources/scripts/helpers/build/roms/withgrub index bbf3445a..3025d97b 100755 --- a/resources/scripts/helpers/build/roms/withgrub +++ b/resources/scripts/helpers/build/roms/withgrub @@ -1,7 +1,7 @@ #!/bin/bash # -# helper script: build ROM images with GRUB and put them in ./bin/ +# helper script: build ROM images with SeaGRUB and put them in ./bin/ # # Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org> # Copyright (C) 2015 Klemens Nanni <contact@autoboot.org> @@ -120,6 +120,7 @@ fi # The GRUB files are no longer needed rm -f "coreboot/grub"*.{elf,cfg} +rm -f "coreboot/seabios"*.elf rm -f "coreboot/"*/*/*.{elf,cfg} printf "\n\n" diff --git a/resources/scripts/helpers/build/roms/withgrub_helper b/resources/scripts/helpers/build/roms/withgrub_helper index 0d823f3f..2ceae246 100755 --- a/resources/scripts/helpers/build/roms/withgrub_helper +++ b/resources/scripts/helpers/build/roms/withgrub_helper @@ -1,6 +1,6 @@ #!/bin/bash -# helper script: create ROM images for a given system, with GRUB +# helper script: create ROM images for a given system, with SeaGRUB # # Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org> # Copyright (C) 2015 Klemens Nanni <contact@autoboot.org> @@ -69,6 +69,7 @@ git checkout ${branchname} # Make sure to remove these first rm -f "grub."*{elf,cfg} +rm -f "seabios"*.elf printf 'libreboot-%s\n' "${version}" > ".coreboot-version" # needed for reproducible builds in coreboot @@ -109,9 +110,32 @@ do make clean mv "config_${romtype}" ".config" cp "../../grub_${romtype}.elf" "grub.elf" + cp "../../../seabios/out/bios.bin.elf" "seabios.elf" make -j${cores} - rm -f "grub.elf" mv "build/coreboot.rom" "${boardtarget}_${romtype}.rom" + + # We dont need seabios.elf anymore + rm -f "seabios.elf" + + # Add the grub.elf to CBFS + ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f grub.elf -c lzma -n img/grub2.lzma -t raw + # we dont need that grub.elf now + rm -f "grub.elf" + + # Set bootorder so that seabios loads grub by default + printf "/rom@img/grub2\n" > bootorder + ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f bootorder -n bootorder -t raw + rm -f bootorder + + # Add 0s delay to seabios, so that the user is not burdened by seeing + # that horrible interface that seabios has + dd if=/dev/zero of=zero bs=1 count=1 conv=notrunc + ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f zero -n etc/show-boot-menu -t raw + rm -f zero + + # SeaVGABIOS stuff + ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f ../../../seabios/out/vgabios.bin -n vgaroms/vgabios.bin -t raw + # .config no longer needed rm -f ".config" diff --git a/resources/scripts/helpers/download/grub b/resources/scripts/helpers/download/grub index 1aae6281..26105129 100755 --- a/resources/scripts/helpers/download/grub +++ b/resources/scripts/helpers/download/grub @@ -2,7 +2,7 @@ # helper script: Downloads GRUB and patches it. # -# Copyright (C) 2014, 2015 Leah Woods <info@minifree.org> +# Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -64,4 +64,8 @@ git am "../resources/grub/patch/reproducible/0002-mkrescue-add-argument-fixed-ti git am "../resources/grub/patch/reproducible/0003-Makefile-use-FIXED_TIMESTAMP-for-mkstandalone-if-set.patch" cd "../" + +# Also download SeaBIOS, which we use with GRUB, to implement SeaGRUB +./download seabios + printf "\n\n" |