#!/bin/bash # addseabios script: add SeaBIOS to the ROM images. # This also adds SeaVGABIOS, SeaBIOS's free/libre video bios "wrapper" for coreboot native graphics # # 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 . # set -u -e -v echo "Adding SeaBIOS and SeaVGABIOS to the ROM's" # Because the DEBLOB script isn't included in the binary archives. # This is how we know. if [ -f "DEBLOB" ]; then echo "Do not run this in meta/src directory. Do it in binary archive, either with libreboot-supplied ROM images or your own binary archive created with 'build-release'." exit 1 fi if [ ! -f "cbfstool" ]; then echo "cbfstool not found. Please run ./builddeps-cbfstool first. Check the docs for how to get build dependencies." exit 1 fi # Add SeaBIOS and SeaVGABIOS to *all* ROM's cd bin/ for rom in $(find -type f) do # Add them ../cbfstool $rom add -f ../vgabios.bin -n vgaroms/vgabios.bin -t raw ../cbfstool $rom add -f ../bios.bin.elf -n bios.bin.elf -t raw # Modify the GRUB configuration for config in grub.cfg grubtest.cfg do # Extract (dump) the config ../cbfstool $rom extract -n $config -f $config # Delete it from the ROM ../cbfstool $rom remove -n $config # Add the menuentry for loading SeaBIOS cat ../resources/grub/config/seabios.cfg >> $config # Re-add the newly modified GRUB configuration to the ROM ../cbfstool $rom add -f $config -n $config -t raw # The GRUB configuration is no longer needed rm -rf $config done done cd ../ echo "DONE! All of the ROM's under bin/ have been modified to include SeaBIOS/SeaVGABIOS and include a GRUB menuentry for it."