aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild185
1 files changed, 20 insertions, 165 deletions
diff --git a/build b/build
index d4c38d01..b9e78338 100755
--- a/build
+++ b/build
@@ -1,9 +1,9 @@
#!/bin/bash
#
-# build script: generates libreboot_bin and libreboot_meta
+# build script: builds the ROM images and puts them in ./bin/
#
-# 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
@@ -26,11 +26,15 @@
echo "running 'make clean' in coreboot"
-# run "make clean" in coreboot
+# prepare coreboot
cd coreboot
+
+# run "make clean" in coreboot (will re-build later)
make clean
rm -rf grub.elf
-cd ..
+
+# come back to main directory
+cd ../
echo "finished running 'make clean' in coreboot"
@@ -39,19 +43,19 @@ echo "finished running 'make clean' in coreboot"
echo "generating grub.elf payload"
-cd grub
-mv ../grub_memdisk_keymap .
-# Build the GRUB2 payload (grub.elf)
-./grub-mkstandalone --grub-mkimage=./grub-mkimage -O i386-coreboot -o grub.elf --modules='crypto cryptodisk luks lvm cmosdump cmostest ahci pata ehci uhci ohci usb_keyboard usbms part_msdos xfs ext2 fat at_keyboard part_gpt usbserial_usbdebug cbfs minix_be minix minix3_be minix3 minix2_be minix2 zfs ufs2 ufs1_be ufs1 udf squash4 romfs jfs reiserfs procfs odc ntfs nilfs2 newc iso9660 hfsplus cpio exfat cpio_be afs btrfs bfs hfs video_bochs password png jpeg keystatus sleep loopback gfxterm_background' --install-modules='syslinuxcfg bsd ls cat echo linux search configfile normal cbtime cbls memrw iorw minicmd lsmmap lspci halt reboot hexdump pcidump regexp setpci lsacpi chain test' --fonts= --themes= --locales= -d grub-core/ /boot/grub/grub.cfg=../resources/grub/config/grub_memdisk.cfg $(./grub_memdisk_keymap)
-mv grub_memdisk_keymap ../
+cd resources/utilities/grub-assemble
-# move those into coreboot directory:
-mv grub.elf ../coreboot
+# Generate grub.elf inside the directory
+./gen.sh
-# come back into the main directory
-cd ../
+# Replace the old one
+rm -rf ../../../coreboot/grub.elf
+mv grub.elf ../../../coreboot/
+
+# come back to main directory
+cd ../../../
-echo "finished generating grub.elf payload"
+echo "finished generating grub.elf payload (it's now in coreboot/ directory)"
# Build the ROM's (for flashing)
# ----------------------------------------------------------------------------------------------------------------------
@@ -75,159 +79,10 @@ do
cd ../../
done
-# macbook21 doesn't need grub_serial, but the buildrom-withgrub script expects it
-# (we will delete it later)
-cp resources/grub/config/macbook21/grub_usqwerty.cfg resources/grub/config/macbook21/grub_serial_usqwerty.cfg
-# build the ROM
+# build macbook21 rom
./buildrom-withgrub macbook21
-# delete the useless (nonsensical) files
-rm -rf bin/macbook21/libreboot_serial*rom
-rm -rf resources/grub/config/macbook21/grub_serial_usqwerty.cfg
-
-# Now we prepare libreboot_bin archive ready for release
-# ----------------------------------------------------------------------------------------------------------------------------
-
-echo "generating ../libreboot_bin"
-
-# delete the old one
-rm -rf ../libreboot_bin
-
-# create new directory
-mkdir ../libreboot_bin
-
-# Include the ROM's in the binary archive
-cp -r bin ../libreboot_bin
-
-# Include flashrom utility in binary archive
-cp -r flashrom ../libreboot_bin
-# For installing build dependencies
-cp builddeb ../libreboot_bin
-# For installing flashrom build dependencies
-cp builddeb-flashrom ../libreboot_bin
-# For installing bucts build dependencies
-cp builddeb-bucts ../libreboot_bin
-
-# Build scripts for flashrom and bucts
-cp builddeps-flashrom ../libreboot_bin
-cp builddeps-bucts ../libreboot_bin
-
-# Useful information
-cp README ../libreboot_bin
-cp COPYING ../libreboot_bin
-
-# Include the same documentation in binary archive
-cp -r docs ../libreboot_bin
-
-# include X60 cmos.layout file
-cp coreboot/src/mainboard/lenovo/x60/cmos.layout ../libreboot_bin/x60cmos.layout
-cp coreboot/src/mainboard/lenovo/t60/cmos.layout ../libreboot_bin/t60cmos.layout
-cp coreboot/src/mainboard/apple/macbook21/cmos.layout ../libreboot_bin/macbook21cmos.layout
-
-# X60/T60: BUC.TS utility is needed to flash libreboot while Lenovo BIOS is running
-cp -r bucts ../libreboot_bin
-
-# Include a copy of nvramtool in libreboot_bin
-cp -r coreboot/util/nvramtool ../libreboot_bin
-
-# X60/X60T/T60: Script for setting up powertop (kills high pitched noise)
-cp powertop.trisquel6 ../libreboot_bin
-cp powertop.trisquel6.init ../libreboot_bin
-
-cp macbook21_firstflash ../libreboot_bin
-
-# (lazy hack) to make builddep-flashrom work in libreboot_bin:
-cp -r resources ../libreboot_bin
-
-# X60/T60: so that the user can use libreboot_bin to overwrite lenovo bios with libreboot
-cp lenovobios_firstflash ../libreboot_bin
-cp lenovobios_secondflash ../libreboot_bin
-
-# Flashrom script (makes flashing easier: ./flash path/to/libreboot.rom)
-cp flash ../libreboot_bin
-
-# patch the version of cbfstool included in libreboot_bin,
-# so that it can be built/executed standalone
-# this modification is only suitable for the version included in libreboot_bin
-# do not patch the one in libreboot_src with this
-cp -r coreboot/util/cbfstool ../libreboot_bin/cbfstool_standalone
-cp builddeps-cbfstool ../libreboot_bin
-echo "Patching libreboot_bin/cbfstool_standalone to be buildable (and executable) without residing in coreboot source tree"
-rm -rf ../libreboot_bin/cbfstool_standalone/rmodule.c
-cp resources/cbfstool/patch/rmodule.c ../libreboot_bin/cbfstool_standalone
-cp coreboot/src/include/rmodule-defs.h ../libreboot_bin/cbfstool_standalone
-cd ../libreboot_bin
-./builddeps-cbfstool
-cd ../libreboot_src
-echo "Done (cbfstool_standalone package created in libreboot_bin)"
-
-echo "finished generating ../libreboot_bin"
-
-# Create "libreboot_meta"
-# -------------------------------------------------------------------------------------------------------------------------------
-
-echo "generating ../libreboot_meta"
-
-# delete old one
-rm -rf ../libreboot_meta
-
-# make new one
-mkdir ../libreboot_meta
-
-# MOVE unwanted parts to libreboot_meta (we'll move them back later)
-mv bucts ../libreboot_meta
-mv coreboot ../libreboot_meta
-mv flashrom ../libreboot_meta
-mv grub ../libreboot_meta
-mv "memtest86+-5.01" ../libreboot_meta
-
-# COPY wanted parts to libreboot_meta
-cp -r * ../libreboot_meta
-# DELETE unwanted ROM's from libreboot_meta
-rm -rf ../libreboot_meta/bin/*
-
-# MOVE BACK the unwanted (in meta) files back to src
-mv ../libreboot_meta/bucts .
-mv ../libreboot_meta/coreboot .
-mv ../libreboot_meta/flashrom .
-mv ../libreboot_meta/grub .
-mv ../libreboot_meta/"memtest86+-5.01" .
-
-echo "finished generating ../libreboot_meta"
-
-# Create sha512sum manifest for bin, meta and src
-# ------------------------------------------------------------------------------------------------------------------------------------
-
-echo "creating sha512sum manifest in libreboot_bin"
-cd ../libreboot_bin
-rm -rf sha512sum.txt ../sha512sum.txt
-touch ../sha512sum.txt
-for i in $(find -type f); do sha512sum "$i" >> ../sha512sum.txt; done
-mv ../sha512sum.txt .
-echo "done"
-cd ../libreboot_src
-
-echo "creating sha512sum manifest in libreboot_meta"
-cd ../libreboot_meta
-rm -rf sha512sum.txt ../sha512sum.txt
-touch ../sha512sum.txt
-for i in $(find -type f); do sha512sum "$i" >> ../sha512sum.txt; done
-mv ../sha512sum.txt .
-echo "done"
-cd ../libreboot_src
-
-# # Doing this part is pointless
-# # This should be done manually (after running 'cleandeps') before releasing the archive
-# echo "creating sha512sum manifest in libreboot_src"
-# # cd ../libreboot_bin
-# rm -rf sha512sum.txt ../sha512sum.txt
-# touch ../sha512sum.txt
-# for i in $(find -type f); do sha512sum "$i" >> ../sha512sum.txt; done
-# mv ../sha512sum.txt .
-# echo "done"
-# # cd ../libreboot_src
-
-echo "BUILD COMPLETE. Check ../libreboot_bin and ../libreboot_meta"
+echo "BUILD COMPLETE. ROM IMAGES ARE IN ./bin/"
# ------------------- DONE ----------------------