[coreboot] r254 - in buildrom-devel: bin config/payloads config/platforms packages/grub2 packages/grub2/boot packages/grub2/boot/grub
svn at coreboot.org
svn at coreboot.org
Wed Nov 26 22:21:30 CET 2008
Author: ward
Date: 2008-11-26 22:21:30 +0100 (Wed, 26 Nov 2008)
New Revision: 254
Added:
buildrom-devel/packages/grub2/boot/
buildrom-devel/packages/grub2/boot/grub/
buildrom-devel/packages/grub2/boot/grub/grub.cfg
Removed:
buildrom-devel/packages/grub2/conf/
Modified:
buildrom-devel/bin/fetchsvn.sh
buildrom-devel/config/payloads/Config.in
buildrom-devel/config/platforms/qemu.conf
buildrom-devel/packages/grub2/grub2.mk
Log:
Move from our grub2 fork to mainline grub2, now that the features we need have
been included there.
This patch also makes sure that LZMA compression of the payload is
automatically disabled for filo, etherboot and grub2, since it breaks booting
in those cases.
It also removes a few bash-isms in fetchsvn.sh.
Many, many thanks to Robert Milan for fixing the bugs in grub2 that I found
while testing.
This was build- and boot-tested on qemu, on v2 and v3.
Signed-off-by: Ward Vandewege <ward at gnu.org>
Acked-by: Jordan Crouse <jordan at cosmicpenguin.net>
Modified: buildrom-devel/bin/fetchsvn.sh
===================================================================
--- buildrom-devel/bin/fetchsvn.sh 2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/bin/fetchsvn.sh 2008-11-26 21:21:30 UTC (rev 254)
@@ -8,7 +8,7 @@
SVNV=`svn --version --quiet`
-if [ $? -ne 0 ]; then
+if [ "$?" != "0" ]; then
echo "You don't have SVN installed."
exit 1
fi
@@ -18,21 +18,21 @@
if [ ! -d $DIR/svn/.svn ]; then
echo "Fetching $URL..."
svn co -r $REV $URL $DIR/svn
- if [ $? -ne 0 ]; then
+ if [ "$?" != "0" ]; then
echo "Couldn't fetch the code from $URL"
exit 1
fi
else
CURREV=`svn info $DIR/svn | grep "Last Changed Rev" | awk '{ print $4 }'`
- if [ $CURREV -ne $REV ]; then
+ if [ "$CURREV" != "$REV" ]; then
(cd $DIR/svn; \
echo "Updating from $CURREV to $REV"
svn update -r $REV || {
echo "Couldn't update the repository."
exit 1
})
- if [ `echo $?` -ne 0 ]; then
+ if [ "$?" != "0" ]; then
# The parentheses around the cd $DIR/svn; svn update ... commands above
# cause those commands to be executed as a list, in a subshell. As a
# consequence, if something goes wrong the exit command exits the
Modified: buildrom-devel/config/payloads/Config.in
===================================================================
--- buildrom-devel/config/payloads/Config.in 2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/config/payloads/Config.in 2008-11-26 21:21:30 UTC (rev 254)
@@ -5,6 +5,9 @@
config USE_LZMA
bool "Enable LZMA compression"
+ depends on !PAYLOAD_FILO
+ depends on !PAYLOAD_GRUB2
+ depends on !PAYLOAD_ETHERBOOT
depends on COREBOOT_V3 || (COREBOOT_V2 && !PLATFORM_GEODE)
default y
help
Modified: buildrom-devel/config/platforms/qemu.conf
===================================================================
--- buildrom-devel/config/platforms/qemu.conf 2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/config/platforms/qemu.conf 2008-11-26 21:21:30 UTC (rev 254)
@@ -15,7 +15,7 @@
ETHERBOOT_ARCH=i386
# coreboot-v2 configuration
-CBV2_TAG=3481
+CBV2_TAG=3772
CBV2_TDIR=qemu-x86
# coreboot v3 configuration
Added: buildrom-devel/packages/grub2/boot/grub/grub.cfg
===================================================================
--- buildrom-devel/packages/grub2/boot/grub/grub.cfg (rev 0)
+++ buildrom-devel/packages/grub2/boot/grub/grub.cfg 2008-11-26 21:21:30 UTC (rev 254)
@@ -0,0 +1,7 @@
+serial --speed=115200 --word=8 --parity=no --stop=1
+terminal_output serial
+terminal_input serial
+
+search -s -f /grub.cfg
+source /grub.cfg
+
Modified: buildrom-devel/packages/grub2/grub2.mk
===================================================================
--- buildrom-devel/packages/grub2/grub2.mk 2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/packages/grub2/grub2.mk 2008-11-26 21:21:30 UTC (rev 254)
@@ -1,80 +1,93 @@
-GRUB2_REVISION=7e743dc7b9262c132488d7bb601ea48e4f730c60
-GRUB2_URL=http://coreboot.org/viewmtn/revision/tar/$(GRUB2_REVISION)
-GRUB2_TAR=grub2-$(GRUB2_REVISION).tar
+GRUB2_URL=svn://svn.savannah.gnu.org/grub/trunk/grub2
+GRUB2_TAG=1929
GRUB2_DIR=$(BUILD_DIR)/grub2
-GRUB2_SRC_DIR=$(GRUB2_DIR)/$(GRUB2_REVISION)
+GRUB2_SRC_DIR=$(GRUB2_DIR)/svn
GRUB2_STAMP_DIR=$(GRUB2_DIR)/stamps
GRUB2_LOG_DIR=$(GRUB2_DIR)/logs
ifeq ($(CONFIG_VERBOSE),y)
-GRUB2_CONFIG_LOG=/dev/stdout
+GRUB2_FETCH_LOG=/dev/stdout
GRUB2_BUILD_LOG=/dev/stdout
GRUB2_INSTALL_LOG=/dev/stdout
else
GRUB2_BUILD_LOG=$(GRUB2_LOG_DIR)/build.log
GRUB2_INSTALL_LOG=$(GRUB2_LOG_DIR)/install.log
-GRUB2_CONFIG_LOG=$(GRUB2_LOG_DIR)/config.log
+GRUB2_FETCH_LOG=$(GRUB2_LOG_DIR)/fetch.log
endif
-GRUB2_CFG=$(PACKAGE_DIR)/grub2/conf/grub.cfg
-GRUB2_MODULES=coreboot cat cmp iso9660 help lspci \
- serial terminal lar terminfo memdisk ata ls \
- configfile boot hexdump linux multiboot ext2
+GRUB2_MODULES=normal ls cat help ext2 iso9660 reiserfs xfs fat pc gpt ata serial memdisk multiboot linux boot cpio configfile search terminal
-ifeq ($(CONFIG_PAYLOAD_GRUB2),y)
-HAVE_RUBY:=$(call find-tool,ruby)
+GRUB2_TARBALL=grub2-svn-$(GRUB2_TAG).tar.gz
-ifeq ($(HAVE_RUBY),n)
-$(error To build GRUB2, you need to install 'ruby')
+GRUB2_MEMDISK_DIR=$(STAGING_DIR)/grub2_memdisk
+GRUB2_MEMDISK_TARBALL=$(GRUB2_MEMDISK_DIR)/memdisk.tar
+
+ifeq ($(shell if [ -f $(PACKAGE_DIR)/grub2/conf/customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD) ]; then echo 1; fi),1)
+ GRUB2_CONFIG = $(PACKAGE_DIR)/grub2/conf/customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD)
+else
+ GRUB2_CONFIG = $(GRUB2_SRC_DIR)/configs/defconfig
endif
-endif
-$(SOURCE_DIR)/$(GRUB2_TAR):
- @ mkdir -p $(SOURCE_DIR)
- @ wget $(WGET_Q) -O $@ $(GRUB2_URL)
+$(SOURCE_DIR)/$(GRUB2_TARBALL):
+ @ mkdir -p $(SOURCE_DIR)/grub2
+ @ $(BIN_DIR)/fetchsvn.sh $(GRUB2_URL) $(SOURCE_DIR)/grub2 \
+ $(GRUB2_TAG) $(SOURCE_DIR)/$(GRUB2_TARBALL) \
+ > $(GRUB2_FETCH_LOG) 2>&1
-$(GRUB2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(GRUB2_TAR) | $(GRUB2_DIR) $(GRUB2_STAMP_DIR)
- @ tar -C $(GRUB2_DIR) -xf $(SOURCE_DIR)/$(GRUB2_TAR)
- @ touch $@
+$(GRUB2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(GRUB2_TARBALL) | $(GRUB2_STAMP_DIR) $(GRUB2_DIR)
+ @ echo "Unpacking grub2..."
+ @ tar -C $(GRUB2_DIR) -zxf $(SOURCE_DIR)/$(GRUB2_TARBALL)
+ @ touch $@
-$(GRUB2_STAMP_DIR)/.configured: $(GRUB2_STAMP_DIR)/.unpacked | $(GRUB2_LOG_DIR)
- @ echo "Configuring GRUB2..."
- @ (cd $(GRUB2_SRC_DIR); sh ./autogen.sh > $(GRUB2_CONFIG_LOG) 2>&1)
- @ (cd $(GRUB2_SRC_DIR); export LIBS= CC= LDFLAGS= CFLAGS=; ./configure --with-platform=linuxbios --prefix=$(STAGING_DIR) >> $(GRUB2_CONFIG_LOG) 2>&1)
+$(GRUB2_STAMP_DIR)/.configured: $(GRUB2_STAMP_DIR)/.unpacked
@ touch $@
-$(GRUB2_SRC_DIR)/grub-mkimage: $(GRUB2_STAMP_DIR)/.configured
- @ echo "Building GRUB2..."
- @ (cd $(GRUB2_SRC_DIR); make > $(GRUB2_CONFIG_LOG) 2>&1)
+$(GRUB2_SRC_DIR)/grub-mkelfimage: $(GRUB2_STAMP_DIR)/.configured
+ifeq ($(findstring customconfig,$(GRUB2_CONFIG)),customconfig)
+ @ echo "Using custom config $(GRUB2_CONFIG)"
+endif
+ @ echo "Building grub2..."
+ @ ln -s $(GRUB2_SRC_DIR)/config.log $(GRUB2_LOG_DIR)
+ @ (cd $(GRUB2_SRC_DIR) ; sh ./autogen.sh >> $(GRUB2_BUILD_LOG) 2>&1)
+ @ (cd $(GRUB2_SRC_DIR) ; export LIBS= CC= LDFLAGS= CFLAGS=; ./configure --with-platform=coreboot --prefix=$(STAGING_DIR) >> $(GRUB2_BUILD_LOG) 2>&1)
+ @ make -C $(GRUB2_SRC_DIR) >> $(GRUB2_BUILD_LOG) 2>&1
-$(GRUB2_STAMP_DIR)/.installed: $(GRUB2_SRC_DIR)/grub-mkimage
+$(GRUB2_STAMP_DIR)/.installed: $(GRUB2_SRC_DIR)/grub-mkelfimage
@ chmod uga+x $(GRUB2_SRC_DIR)/mkinstalldirs
@ (cd $(GRUB2_SRC_DIR); make install > $(GRUB2_INSTALL_LOG) 2>&1)
@ touch $@
-$(GRUB2_DIR)/grub2.elf: $(GRUB2_STAMP_DIR)/.installed
- @ $(STAGING_DIR)/bin/grub-mkimage -o $@ $(GRUB2_MODULES)
+$(GRUB2_MEMDISK_TARBALL): $(GRUB2_STAMP_DIR)/.configured $(GRUB2_MEMDISK_DIR)
+ @ (cd $(GRUB2_MEMDISK_DIR); mkdir -p boot/grub)
+ @ cp $(PACKAGE_DIR)/grub2/boot/grub/grub.cfg $(GRUB2_MEMDISK_DIR)/boot/grub/
+ @ (cd $(GRUB2_MEMDISK_DIR); tar -cf $@ boot)
+
+$(GRUB2_DIR)/grub2.elf: $(GRUB2_STAMP_DIR)/.installed $(GRUB2_MEMDISK_TARBALL)
+ @ (cd $(GRUB2_SRC_DIR) ; $(STAGING_DIR)/bin/grub-mkelfimage -d . -o $@ $(GRUB2_MODULES) -m $(GRUB2_MEMDISK_TARBALL) --prefix='(memdisk)/boot/grub')
+
$(GRUB2_STAMP_DIR)/.copied: $(GRUB2_DIR)/grub2.elf
@ mkdir -p $(shell dirname $(PAYLOAD_ELF))
@ cp $(GRUB2_DIR)/grub2.elf $(PAYLOAD_ELF)
@ touch $@
-$(GRUB2_DIR) $(GRUB2_LOG_DIR) $(GRUB2_STAMP_DIR):
+$(GRUB2_STAMP_DIR) $(GRUB2_LOG_DIR) $(GRUB2_MEMDISK_DIR):
@ mkdir -p $@
-grub2: $(GRUB2_STAMP_DIR)/.copied
+grub2: $(GRUB2_STAMP_DIR) $(GRUB2_LOG_DIR) $(GRUB2_STAMP_DIR)/.copied
grub2-clean:
- @ rm -f $(GRUB2_DIR)/grub2.lar
+ @ echo "Cleaning grub2..."
@ rm -f $(GRUB2_DIR)/grub2.elf
@ rm -f $(GRUB2_STAMP_DIR)/.configured
@ rm -f $(GRUB2_STAMP_DIR)/.copied
- @ rm -f $(GRUB2_STAMP_DIR)/.installed
-ifneq ($(wildcard $(GRUB_SRC_DIR)/Makefile),)
+ifneq ($(wildcard $(GRUB2_SRC_DIR)/Makefile),)
@ $(MAKE) -C $(GRUB2_SRC_DIR) clean > /dev/null 2>&1
endif
grub2-distclean:
@ rm -rf $(GRUB2_DIR)/*
+
+grub2-extract: $(GRUB2_STAMP_DIR)/.patched
+
More information about the coreboot
mailing list