###############################################################################
##
## yabootconfig generates a simple /etc/yaboot.conf
-## Copyright (C) 2001 Ethan Benson
+## Copyright (C) 2001, 2002, 2003 Ethan Benson
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
PATH="${PATH}:${PATH_PREFIX}/sbin:${PATH_PREFIX}/bin:${PATH_PREFIX}/usr/sbin:${PATH_PREFIX}/usr/bin:${PATH_PREFIX}/usr/local/sbin:${PATH_PREFIX}/usr/local/bin"
fi
PRG="${0##*/}"
-VERSION=1.0.4
+VERSION=1.0.7
CHROOT=/
## $CONFIG is relative to $CHROOT
CONFIG=etc/yaboot.conf
SIGINT="$PRG: Interrupt caught ... exiting"
export LC_COLLATE=C
+## avoid older versions of ofpath shipped in debian boot-floppies etc.
+if [ -x "${PATH_PREFIX}/usr/sbin/ofpath" ] ; then
+ OFPATH="${PATH_PREFIX}/usr/sbin/ofpath"
+else
+ OFPATH=ofpath
+fi
+
## catch signals, clean up temporary file
trap "cleanup" 0
trap "exit 129" 1
"$PRG $VERSION
Written by Ethan Benson
-Copyright (C) 2001 Ethan Benson
+Copyright (C) 2001, 2002, 2003 Ethan Benson
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
}
## find / device
if [ -z "$ROOT" ] ; then
## IMPORTANT! that last substitution is [<space><tab>] thats all ash will grok
- ROOT="$(v=`grep '[[:blank:]]/[[:blank:]]' ${CHROOT}etc/fstab` ; echo ${v%%[ ]*})"
+ ROOT="$(v=`grep '^[^#].*[[:blank:]]/[[:blank:]]' ${CHROOT}etc/fstab` ; echo ${v%%[ ]*})"
debug "ROOT=$ROOT\n"
if [ -z "$ROOT" ] ; then
echo 1>&2 "$PRG: Could not determine root partition, aborting..."
## only powermacs appear to need device=
if (cat /proc/cpuinfo 2>/dev/null | grep -q pmac-generation 2> /dev/null) ; then
- DEVICE="\ndevice=$(ofpath $KERNELDISK)"
+ DEVICE="\ndevice=$($OFPATH $KERNELDISK)"
if [ $? != 0 ] ; then
echo 1>&2 "$PRG: Unable to determine OpenFirmware device name to $KERNELDISK, aborting..."
exit 1
fi
fi
-## IBM hardware needs fstype=raw for ybin
-if (cat /proc/cpuinfo 2>/dev/null | grep ^machine | grep -q 'CHRP IBM') ; then
- FSTYPE="\nfstype=raw"
-fi
-
## if there is a separate /boot partition we must strip off the /boot
## mountpoint or else yaboot will not find the kernel.
if [ "$KERNDIR" != "$CHROOT" ] ; then
APPEND="\tappend=\"${KERNARGS}\"\n"
fi
+## avoid user confusion when they boot an installer with video=ofonly
+## (usually via a install-safe label) and then reboot and have the box
+## not boot properly again.
+if [ -z "$APPEND" ] ; then
+ if (grep -q '\<video=ofonly\>' /proc/cmdline 2> /dev/null) ; then
+ APPEND="\tappend=\"video=ofonly\"\n"
+ fi
+fi
+
## generate global section of yaboot.conf
GLOBAL="## yaboot.conf generated by $PRG $VERSION
##
${HEADER}##
## For a dual-boot menu, add one or more of:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ\n
-boot=${BOOT}${FSTYPE:-}${DEVICE:-}
+boot=${BOOT}${DEVICE:-}
partition=$PARTITION
root=$ROOT
timeout=30