summaryrefslogtreecommitdiff
path: root/buildrom-withgrub
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2014-09-03 18:13:00 +0000
committerMichał Masłowski <mtjm@mtjm.eu>2014-09-03 20:22:56 +0200
commit9a321884379a71b5f0986fdfb97a2b6c5bdccd8a (patch)
tree7a89b0126c7572c39b00a133dc3bb43d00349871 /buildrom-withgrub
parentd2ebc60a339b66fe067ebc244ef31c600d57d541 (diff)
Libreboot release 6 beta 6.
- Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely) - Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users. - Documentation: added information showing how to enable or disable bluetooth on the X60 - MacBook1,1 tested! See ../docs/index.html#macbook11" - Documentation: fixed typo in ../docs/index.html#get_edid_panelname (get-edit changed to get-edid) - Documentation: added ../docs/howtos/x60_lcd_change/ (pics only for now) - Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users) - Libreboot is now based on a new coreboot version from August 23rd, 2014: Merged commits (relates to boards that were already supported in libreboot): - http://review.coreboot.org/#/c/6697/ - http://review.coreboot.org/#/c/6698/ (merged already) - http://review.coreboot.org/#/c/6699/ (merged already) - http://review.coreboot.org/#/c/6696/ (merged already) - http://review.coreboot.org/#/c/6695/ (merged already) - http://review.coreboot.org/#/c/5927/ (merged already) - http://review.coreboot.org/#/c/6717/ (merged already) - http://review.coreboot.org/#/c/6718/ (merged already) - http://review.coreboot.org/#/c/6723/ (merged already) (text-mode patch, might enable memtest. macbook21) - http://review.coreboot.org/#/c/6732/ (MERGED) (remove useless ps/2 keyboard delay from macbook21. already merged) - These were also merged in coreboot (relates to boards that libreboot already supported): - http://review.coreboot.org/#/c/5320/ (merged) - http://review.coreboot.org/#/c/5321/ (merged) - http://review.coreboot.org/#/c/5323/ (merged) - http://review.coreboot.org/#/c/6693/ (merged) - http://review.coreboot.org/#/c/6694/ (merged) - http://review.coreboot.org/#/c/5324/ (merged) - Documentation: removed the section about tft_brightness on X60 (new code makes it obsolete) - Removed all patches from resources/libreboot/patch/ and added new patch: 0000_t60_textmode.git.diff - Updated getcb script and DEBLOB script. - Updated configuration files under resources/libreboot/config/ to accomodate new coreboot version. - Removed grub_serial*.cfg and libreboot_serial*.rom, all configs/rom's are now unified (containing same configuration as serial rom's from before). - Documentation: updated ../docs/index.html#rom to reflect the above. - Updated GRUB to new version from August 14th, 2014. - Unified all grub configurations for all machines to a single grub.cfg under resources/grub/config/ - Updated flashrom to new version from August 20th, 2014 - Added getseabios and builddeps-seabios (builddeps and getall were also updated) - Added instructions to 'buildrom-withgrub' to include bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the ROM. - Added seabios (and sgavgabios) to grub as payload option in menu - Disabled serial output in Memtest86+ (no longer needed) to speed up tests. - MemTest86+ now works properly, it can output on the laptop screen (no serial port needed anymore). - Added getgrubinvaders, builddeps-grubinvaders scripts. Added these to getall and builddeps. - Added GRUB Invaders menu entry in resources/grub/config/grub.cfg - Added rules to builddeps-coreboot to build libpayload with TinyCurses. (added appropriate instructions to cleandeps script). - Commented out lines in resources/grub/config/grub.cfg for loading font/background (not useful anymore, now that GRUB is in text-mode). - Commented out lines in buildrom-withgrub that included backgrounds/fonts (not useful anymore, now that GRUB is in text-mode). - Added resources/utilities/i945-pwm/ (from git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 machines. - Added instructions for it in builddeps, builddeps-i945pwm, builddeb and cleandeps - 'build' script: removed the parts that generated sha512sum manifests (not needed, since release tarballs are GPG-signed) - 'build' script: removed the parts that generated libreboot_meta directory (not needed anymore, since _meta will be hosted in git) - Updated ../docs/index.html#build_meta (and other parts of documentation) to accomodate this change. - Documentation: simplified (refactored) the notes in ../docs/index.html#rom - 'build' script: removed the parts that generated libreboot_bin and added them to a new script: 'build-release' - Documentation: ../docs/index.html#build updated to reflect the above. - Removed 'sudo' from builddeb, builddeb-flashrom, powertop.trisquel6 and builddeb-bucts scripts (assuming that the user has it is a really bad idea). - Added all gcry_* modules to grub (luks/cryptomount): gcry_arcfour gcry_camellia gcry_crc gcry_dsa gcry_md4 gcry_rfc2268 gcry_rmd160 gcry_seed gcry_sha1 gcry_sha512 gcry_twofish gcry_blowfish gcry_cast5 gcry_des gcry_idea gcry_md5 gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_tiger gcry_whirlpool - Added GNUtoo's list of GRUB modules (includes all of the gcry_* modules above), cryptomount should be working now. - Removed builddeb-bucts and builddeb-flashrom, merged them with builddeb (../docs/index.html updated accordingly) - Removed buildpac-bucts and buildpac-flashrom, merged them with buildpac (../docs/index.html updated accordingly) - Renamed builddeb to deps-trisquel (../docs/index.html updated accordingly) - Renamed buildpac to deps-parabola (../docs/index.html updated accordingly) - Documentation: removed all parts talking about build dependencies, replaced them with links to ../docs/index.html#build_dependencies - Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image. - build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility). - Documentation: added ../docs/howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload. - 'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble - Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it - Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts. - Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory - 'buildrom-withgrub' script: updated it to create 2 sets of ROM's for each machine: one with text-mode, one with coreboot framebuffer. - Documentation: updated ../docs/index.html#rom to reflect the above - Deleted unused README and COPYING file from main directory - Removed some rm -rf .git* instructions from the get* scripts and moved them to build-release script - Split up default grub.cfg into 6 parts: extra/{common.cfg,txtmode.cfg,vesafb.cfg} and menuentries/{common.cfg,txtmode.cfg,vesafb.cfg} - buildrom-withgrub script uses these to generate the correct grub.cfg for each type of configuration. - grub_memdisk.cfg (used inside grub.elf) now only loads grub.cfg from cbfs. It no longer enables serial output or sets prefix. (menuentries/common.cfg does instead) - resources/grub/config/extra/common.cfg, added: - insmod instructions to load those modules: nativedisk, ehci, ohci, uhci, usb, usbserial_pl2303, usbserial_ftdi, usbserial_usbdebug - set prefix=(memdisk)/boot/grub - For native graphics (recommended by coreboot wiki): - gfxpayload=keep - terminal_output --append gfxterm - Play a beep on startup: - play 480 440 1 - Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to ../docs/howtos/grub_boot_installer.html - Documentation: updated ../docs/howtos/grub_cbfs.html to make it safer (and easier) to follow.
Diffstat (limited to 'buildrom-withgrub')
-rwxr-xr-xbuildrom-withgrub118
1 files changed, 66 insertions, 52 deletions
diff --git a/buildrom-withgrub b/buildrom-withgrub
index c7eb280..51ae22e 100755
--- a/buildrom-withgrub
+++ b/buildrom-withgrub
@@ -3,7 +3,7 @@
# buildrom-withgrub script: this generically builds the ROM images.
# The ROM images built by this script will use the GRUB payload.
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# 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
@@ -22,9 +22,6 @@
# DO NOT RUN THIS DIRECTLY!
# Use "build"
-# base ROM's: coreboot_usqwerty.rom and coreboot_serial_usqwerty.rom
-# All other ROM's will be based on one of these.
-
if (( $# != 1 )); then
echo "Usage: ./buildrom-withgrub boardname"
echo "Example: ./buildrom-withgrub x60"
@@ -42,78 +39,95 @@ rm -rf .config
mv util/cbfstool/cbfstool .
# 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)
-# also rename it to libreboot_usqwerty.rom
-mv build/coreboot.rom libreboot_usqwerty.rom
-
+mv build/coreboot.rom libreboot_txtmode.rom
# clean the build
make clean
-rm -rf .config
-# Insert files/configurations and perform operations that are common on all ROM images
-# ---------------------------------------------------------------------------------------------------------------
+# 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 libreboot_vesafb.rom
+# clean coreboot (again)
+make clean
-# Add background image and font
-./cbfstool libreboot_usqwerty.rom add -f ../resources/grub/background/background.jpg -n background.jpg -t raw
-./cbfstool libreboot_usqwerty.rom add -f ../resources/grub/background/gnulove.jpg -n gnulove.jpg -t raw
-./cbfstool libreboot_usqwerty.rom add -f ../resources/grub/font/dejavusansmono.pf2 -n dejavusansmono.pf2 -t raw
+# copies no longer needed
+rm -rf .config config_txtmode
-# Insert files/configurations and perform operations that are common on *serial* ROM images
+# Insert files/configurations and perform operations that are common on all images
# ---------------------------------------------------------------------------------------------------------------
-# ROM's based on this will have MemTest86+ included inside.
-cp libreboot_usqwerty.rom libreboot_serial_usqwerty.rom
-
-# Add memtest86+ to libreboot_serial_usqwerty.rom
-./cbfstool libreboot_serial_usqwerty.rom add -f ../memtest86+-5.01/memtest -n memtest -t raw
+for rom in libreboot_vesafb.rom libreboot_txtmode.rom
+do
+ # Add SeaBIOS and SeaVGABIOS
+ ./cbfstool $rom add -f ../seabios/out/vgabios.bin -n vgaroms/vgabios.bin -t raw
+ ./cbfstool $rom add -f ../seabios/out/bios.bin.elf -n bios.bin.elf -t raw
+done
-# Prepare ROM's (based on libreboot_usqwerty.rom and libreboot_serial_usqwerty.rom) with
-# alternative keyboard layout configurations inside GRUB
+# Insert files/configurations and perform operations that are common on libreboot_vesafb.rom (coreboot framebuffer configuration)
# ---------------------------------------------------------------------------------------------------------------
-# The for loops MUST be separate. Do NOT re-factor them!
+# Add background image and font
+./cbfstool libreboot_vesafb.rom add -f ../resources/grub/background/background.jpg -n background.jpg -t raw
+# ./cbfstool libreboot_vesafb.rom add -f ../resources/grub/background/gnulove.jpg -n gnulove.jpg -t raw
+./cbfstool libreboot_vesafb.rom add -f ../resources/grub/font/dejavusansmono.pf2 -n dejavusansmono.pf2 -t raw
-# default configs
-cp ../resources/grub/config/$1/grub_usqwerty.cfg .
-cp ../resources/grub/config/$1/grub_serial_usqwerty.cfg .
+# Insert files/configurations and perform operations that are common on libreboot_txtmode.rom (coreboot text mode)
+# ---------------------------------------------------------------------------------------------------------------
-for keymap in $(ls ../resources/grub/keymap/original)
-do
- # copy the ROM based on the keymap
- cp libreboot_usqwerty.rom libreboot_"$keymap".rom
- cp libreboot_serial_usqwerty.rom libreboot_serial_"$keymap".rom
-done
+# Add memtest86+
+./cbfstool libreboot_txtmode.rom add -f ../memtest86+-5.01/memtest -n memtest -t raw
-for keymap in $(ls ../resources/grub/keymap/original)
-do
- # copy the config based on the keymap:
- cp grub_usqwerty.cfg grub_"$keymap".cfg
- cp grub_serial_usqwerty.cfg grub_serial_"$keymap".cfg
-done
+# Add GRUB Invaders
+./cbfstool libreboot_txtmode.rom add -f ../grubinvaders/invaders -n invaders -t raw
+./cbfstool libreboot_txtmode.rom add -f ../grubinvaders/invaders.exec -n invaders.exec -t raw
-for keymap in $(ls ../resources/grub/keymap/original)
-do
- # Insert GRUB keymap instructions into the config
- echo "keymap $keymap" >> grub_"$keymap".cfg
- echo "keymap $keymap" >> grub_serial_"$keymap".cfg
-done
+# Generate the GRUB configurations and add them to each ROM image as grub.cfg and grubtest.cfg
+# ---------------------------------------------------------------------------------------------------------------
-for keymap in $(ls ../resources/grub/keymap/original)
+for keymap in $(ls ../resources/utilities/grub-assemble/keymap/original)
do
- # Set the GRUB keymap for the given ROM image
- ./cbfstool libreboot_"$keymap".rom add -f grub_"$keymap".cfg -n grub.cfg -t raw
- ./cbfstool libreboot_serial_"$keymap".rom add -f grub_serial_"$keymap".cfg -n grub.cfg -t raw
+ for romtype in txtmode vesafb
+ do
+ # copy the images based on the keymap
+ cp libreboot_"$romtype".rom libreboot_"$keymap"_"$romtype".rom
+
+ # generate the correct grub config
+ touch grub_"$keymap"_"$romtype".cfg
+ # generate contents:
+ cat ../resources/grub/config/extra/common.cfg >> grub_"$keymap"_"$romtype".cfg
+ cat ../resources/grub/config/extra/"$romtype".cfg >> grub_"$keymap"_"$romtype".cfg
+ echo "keymap $keymap" >> grub_"$keymap"_"$romtype".cfg
+ cat ../resources/grub/config/menuentries/common.cfg >> grub_"$keymap"_"$romtype".cfg
+ cat ../resources/grub/config/menuentries/"$romtype".cfg >> grub_"$keymap"_"$romtype".cfg
+
+ # Insert grub config into the image
+ ./cbfstool libreboot_"$keymap"_"$romtype".rom add -f grub_"$keymap"_"$romtype".cfg -n grub.cfg -t raw
+
+ # grubtest.cfg should be able to switch back to grub.cfg
+ sed 's/grubtest.cfg/grub.cfg/' < grub_"$keymap"_"$romtype".cfg > grub_"$keymap"_"$romtype"_test.cfg
+
+ # Insert grub test config into the image (for the user to test modifications to before modifying the main one)
+ ./cbfstool libreboot_"$keymap"_"$romtype".rom add -f grub_"$keymap"_"$romtype"_test.cfg -n grubtest.cfg -t raw
+ done
done
-# we don't need the grub.cfg's anymore
+# we don't need the generic rom images anymore
+rm -rf libreboot_txtmode.rom
+rm -rf libreboot_vesafb.rom
+
+# we don't need the grub configs anymore
rm -rf grub*cfg
-# Now we clean up and prepare the binary archive ready for release.
+# Now we clean up and prepare the bin directory containing all the images
# ----------------------------------------------------------------------------------------------------------------------------
# prepare directory for new ROM images