#!/bin/bash # # build script: builds the ROM images and puts them in ./bin/ # # Copyright (C) 2014 Francis Rowe # # 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 # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Build the ROM's # MAKE SURE THAT YOU RAN "buildall" OR "builddeps" *AT LEAST ONCE* # BEFORE RUNNING THIS! echo "running 'make clean' in coreboot" # prepare coreboot cd coreboot # run "make clean" in coreboot (will re-build later) make clean rm -rf grub.elf # come back to main directory cd ../ echo "finished running 'make clean' in coreboot" # Build the GRUB payload (ELF executable): # ---------------------------------------------------------------------------------------------------------------------- echo "generating grub.elf payload" cd resources/utilities/grub-assemble # Generate grub.elf inside the directory ./gen.sh # 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 (it's now in coreboot/ directory)" # Build the ROM's (for flashing) # ---------------------------------------------------------------------------------------------------------------------- # ROM images for supported Thinkpads # (x60 also means x60s) for board in x60 t60 x60t do # Build the ROM (with GRUB payload) ./buildrom-withgrub $board # These are needed for the 'bucts' workarounds on X60/T60 cd bin/$board for rom in $(find -type f) do dd if=$rom of=top64k.bin bs=1 skip=$[$(stat -c %s $rom) - 0x10000] count=64k dd if=$rom bs=1 skip=$[$(stat -c %s $rom) - 0x20000] count=64k | hexdump dd if=top64k.bin of=$rom bs=1 seek=$[$(stat -c %s $rom) - 0x20000] count=64k conv=notrunc rm -rf top64k.bin done cd ../../ done # build macbook21 rom ./buildrom-withgrub macbook21 echo "BUILD COMPLETE. ROM IMAGES ARE IN ./bin/" # ------------------- DONE ----------------------