diff options
author | Francis Rowe <info@gluglug.org.uk> | 2014-09-03 18:13:00 +0000 |
---|---|---|
committer | Michał Masłowski <mtjm@mtjm.eu> | 2014-09-03 20:22:56 +0200 |
commit | 9a321884379a71b5f0986fdfb97a2b6c5bdccd8a (patch) | |
tree | 7a89b0126c7572c39b00a133dc3bb43d00349871 /buildrom-withgrub | |
parent | d2ebc60a339b66fe067ebc244ef31c600d57d541 (diff) | |
download | librebootfr-9a321884379a71b5f0986fdfb97a2b6c5bdccd8a.tar.gz librebootfr-9a321884379a71b5f0986fdfb97a2b6c5bdccd8a.zip |
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-x | buildrom-withgrub | 118 |
1 files changed, 66 insertions, 52 deletions
diff --git a/buildrom-withgrub b/buildrom-withgrub index c7eb2802..51ae22e7 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 |