[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[1931] Provide grub-install on coreboot.
From: |
Robert Millan |
Subject: |
[1931] Provide grub-install on coreboot. |
Date: |
Fri, 28 Nov 2008 20:06:55 +0000 |
Revision: 1931
http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1931
Author: robertmh
Date: 2008-11-28 20:06:55 +0000 (Fri, 28 Nov 2008)
Log Message:
-----------
Provide grub-install on coreboot.
* conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
(grub_install_SOURCES): New variable.
* util/i386/pc/grub-install.in: Add a few condition checks to make it
usable on coreboot.
Modified Paths:
--------------
trunk/grub2/ChangeLog
trunk/grub2/conf/i386-coreboot.mk
trunk/grub2/conf/i386-coreboot.rmk
trunk/grub2/util/i386/pc/grub-install.in
Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog 2008-11-28 19:56:19 UTC (rev 1930)
+++ trunk/grub2/ChangeLog 2008-11-28 20:06:55 UTC (rev 1931)
@@ -6,6 +6,12 @@
`kern/ieee1275/mmap.c'.
* include/grub/powerpc/ieee1275/memory.h: New file.
+ Provide grub-install on coreboot.
+ * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
+ (grub_install_SOURCES): New variable.
+ * util/i386/pc/grub-install.in: Add a few condition checks to make it
+ usable on coreboot.
+
2008-11-25 Felix Zielcke <address@hidden>
* util/grub-fstest.c (grub_term_get_current_input): Change return type
Modified: trunk/grub2/conf/i386-coreboot.mk
===================================================================
--- trunk/grub2/conf/i386-coreboot.mk 2008-11-28 19:56:19 UTC (rev 1930)
+++ trunk/grub2/conf/i386-coreboot.mk 2008-11-28 20:06:55 UTC (rev 1931)
@@ -565,6 +565,15 @@
grub_emu_LDFLAGS = $(LIBCURSES)
+sbin_SCRIPTS += grub-install
+grub_install_SOURCES = util/i386/pc/grub-install.in
+CLEANFILES += grub-install
+
+grub-install: util/i386/pc/grub-install.in
$(util/i386/pc/grub-install.in_DEPENDENCIES) config.status
+ ./config.status --file=grub-install:util/i386/pc/grub-install.in
+ chmod +x $@
+
+
# Modules.
pkglib_MODULES = _linux.mod linux.mod normal.mod \
_multiboot.mod multiboot.mod aout.mod \
Modified: trunk/grub2/conf/i386-coreboot.rmk
===================================================================
--- trunk/grub2/conf/i386-coreboot.rmk 2008-11-28 19:56:19 UTC (rev 1930)
+++ trunk/grub2/conf/i386-coreboot.rmk 2008-11-28 20:06:55 UTC (rev 1931)
@@ -90,6 +90,9 @@
grub_emu_LDFLAGS = $(LIBCURSES)
+sbin_SCRIPTS += grub-install
+grub_install_SOURCES = util/i386/pc/grub-install.in
+
# Modules.
pkglib_MODULES = _linux.mod linux.mod normal.mod \
_multiboot.mod multiboot.mod aout.mod \
Modified: trunk/grub2/util/i386/pc/grub-install.in
===================================================================
--- trunk/grub2/util/i386/pc/grub-install.in 2008-11-28 19:56:19 UTC (rev
1930)
+++ trunk/grub2/util/i386/pc/grub-install.in 2008-11-28 20:06:55 UTC (rev
1931)
@@ -32,7 +32,11 @@
pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed
${transform}`
grub_setup=${sbindir}/`echo grub-setup | sed ${transform}`
-grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
+else
+ grub_mkimage=${bindir}/`echo grub-mkelfimage | sed ${transform}`
+fi
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
rootdir=
@@ -153,12 +157,14 @@
grub_probe="${grub_probe} --device-map=${device_map}"
# Check if GRUB is installed.
-set $grub_setup dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ set $grub_setup dummy
+ if test -f "$1"; then
+ :
+ else
+ echo "$1: Not found." 1>&2
+ exit 1
+ fi
fi
set $grub_mkimage dummy
@@ -210,9 +216,14 @@
rm -f $file || exit 1
fi
done
-for file in ${pkglibdir}/*.mod ${pkglibdir}/*.lst ${pkglibdir}/*.img; do
+for file in ${pkglibdir}/*.mod ${pkglibdir}/*.lst; do
cp -f $file ${grubdir} || exit 1
done
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ for file in ${pkglibdir}/*.img; do
+ cp -f $file ${grubdir} || exit 1
+ done
+fi
# Write device to a variable so we don't have to traverse /dev every time.
grub_device=`$grub_probe --target=device ${grubdir}`
@@ -234,7 +245,12 @@
devabstraction_module=`$grub_probe --target=abstraction --device
${grub_device}`
# The order in this list is critical. Be careful when modifying it.
-modules="$modules $fs_module $partmap_module biosdisk $devabstraction_module"
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ modules="$modules biosdisk"
+else
+ modules="$modules ata"
+fi
+modules="$modules $fs_module $partmap_module $devabstraction_module"
prefix_drive=
if [ "x${devabstraction_module}" = "x" ] ; then
@@ -248,9 +264,18 @@
# Strip partition number
install_drive="`echo ${install_drive} | sed -e s/,[0-9]*//g`"
grub_drive="`echo ${grub_drive} | sed -e s/,[0-9]*//g`"
- if [ "x${grub_drive}" != "x${install_drive}" ] ; then
+ if [ "${target_cpu}-${platform}" != "i386-pc" ] ; then
+ # generic method (used on coreboot)
uuid="`$grub_probe --target=fs_uuid --device ${grub_device}`"
if [ "x${uuid}" = "x" ] ; then
+ echo "UUID needed on this platform, but the filesystem containing
${grubdir} does not support UUIDs." 1>&2
+ exit 1
+ fi
+ prefix_drive="(UUID=${uuid})"
+ modules="$modules fs_uuid"
+ elif [ "x${grub_drive}" != "x${install_drive}" ] ; then
+ uuid="`$grub_probe --target=fs_uuid --device ${grub_device}`"
+ if [ "x${uuid}" = "x" ] ; then
echo "You attempted a cross-disk install, but the filesystem
containing ${grubdir} does not support UUIDs." 1>&2
exit 1
fi
@@ -266,11 +291,15 @@
relative_grubdir=/
fi
-$grub_mkimage --output=${grubdir}/core.img
--prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ $grub_mkimage --output=${grubdir}/core.img
--prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
-# Now perform the installation.
-$grub_setup ${setup_verbose} --directory=${grubdir} --device-map=${device_map}
\
- ${install_device} || exit 1
+ # Now perform the installation.
+ $grub_setup ${setup_verbose} --directory=${grubdir}
--device-map=${device_map} \
+ ${install_device} || exit 1
+else
+ $grub_mkimage -d ${pkglibdir} --output=/boot/multiboot.img
--prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
+fi
# Prompt the user to check if the device map is correct.
echo "Installation finished. No error reported."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [1931] Provide grub-install on coreboot.,
Robert Millan <=