+2009-04-13 Felix Zielcke <fzielcke@z-51.de>
+
+ * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
+ doestn't exist. Check also for /boot/kernel/kernel.gz. Print
+ `freebsd_loadenv' only when devices.hints exist.
+
2009-04-13 Pavel Roskin <proski@gnu.org>
* term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
libdir=@libdir@
. ${libdir}/grub/grub-mkconfig_lib
-devices=/boot/devices.hints
-if ! test -e ${devices} ; then
- # not FreeBSD
- exit 0
+if test -e /boot/devices.hints ; then
+ devices=/boot/devices.hints
fi
if test -e /boot/kernel/kernel ; then
kfreebsd=/boot/kernel/kernel
fi
+if test -e /boot/kernel/kernel.gz ; then
+ kfreebsd=/boot/kernel/kernel.gz
+fi
if [ "x$kfreebsd" != "x" ] ; then
echo "Found kernel of FreeBSD: $kfreebsd" >&2
kfreebsd_dirname=`dirname $kfreebsd`
kfreebsd_rel_dirname=`make_system_path_relative_to_its_root $kfreebsd_dirname`
- devices_basename=`basename $devices`
- devices_dirname=`dirname $devices`
- devices_rel_dirname=`make_system_path_relative_to_its_root $devices_dirname`
+ if [ x"$devices" != "x" ] ; then
+ devices_basename=`basename $devices`
+ devices_dirname=`dirname $devices`
+ devices_rel_dirname=`make_system_path_relative_to_its_root $devices_dirname`
+ fi
root_device=`basename ${GRUB_DEVICE}`
prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/"
cat << EOF
freebsd ${kfreebsd_rel_dirname}/${kfreebsd_basename}
+EOF
+
+ if [ x"$devices" != "x" ] ; then
+ cat << EOF
freebsd_loadenv ${devices_rel_dirname}/${devices_basename}
+EOF
+ cat << EOF
set FreeBSD.vfs.root.mountfrom=${kfreebsd_fs}:${root_device}
}
EOF