###############################################################################
##
## ybin (YaBoot INstaller) installs/updates the yaboot bootloader.
-## Copyright (C) 2000, 2001 Ethan Benson
+## Copyright (C) 2000, 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
fi
PRG="${0##*/}"
SIGINT="$PRG: Interrupt caught ... exiting"
-VERSION=1.3.4
+VERSION=1.3.9
DEBUG=0
VERBOSE=0
TMP="${TMPDIR:-/tmp}"
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 junk in /tmp.
trap "cleanup" 0
trap "exit 129" 1
## defaults
usemount=no
-fstype=hfs
+if (cat /proc/cpuinfo 2> /dev/null | grep ^machine | grep -q 'CHRP IBM') ; then
+ fstype=raw
+else
+ fstype=hfs
+fi
hfstype=tbxi
hfscreator=UNIX
bless=yes
"$PRG $VERSION
Written by Ethan Benson
-Copyright (C) 2000, 2001 Ethan Benson
+Copyright (C) 2000, 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."
}
this is useful of you don't want them to be
visible from MacOS.
--nonvram do not update the boot-device variable in nvram.
- --device yaboot auto configuration: sets the OF boot device
- default: hd:
- --partition yaboot auto configuration: sets the partition
- number of the root partition. default: 3
- --timeout yaboot auto configuration: sets the time yaboot
- will wait for user input before booting default
- image default: 40 (4 seconds)
- --image yaboot auto configuration: sets the path to the
- kernel image. default: /vmlinux
- --label yaboot auto configuration: sets the image label
- default: Linux
- --root yaboot auto configuration: sets the root device
- default: /dev/hda3
--force don't ever ask for confirmation
-v, --verbose make $PRG more verbose
--debug print boring junk only useful for debugging
else
readlink()
{
- SYMTARGET="$(v=`ls -l "$2" 2>/dev/null` ; echo ${v##*> })"
+ local SYMTARGET="$(v=`ls -l "$2" 2>/dev/null` ; echo ${v##*> })"
if [ -n "$SYMTARGET" ] ; then
echo "$SYMTARGET"
return 0
## figure out bootstrap device OF pathname if user did not supply it.
if [ -z "$ofboot" ] ; then
[ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$boot'..."
- ofboot="$(ofpath $boot)"
+ ofboot="$($OFPATH $boot)"
if [ $? != 0 ] ; then
echo 1>&2 "$PRG: Unable to find OpenFirmware path for boot=$boot"
echo 1>&2 "$PRG: Please add ofboot=<path> where <path> is the OpenFirmware path to $boot to $CONF"
/dev/*)
[ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$bsd'..."
local sbsd="$bsd"
- bsd="$(ofpath $bsd)"
+ bsd="$($OFPATH $bsd)"
if [ $? != 0 ] ; then
echo 1>&2 "$PRG: Unable to determine OpenFirmware path for bsd=$sbsd"
echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for bsd=$sbsd in $CONF"
/dev/*)
[ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$macos'..."
local smacos="$macos"
- macos="$(ofpath $macos)"
+ macos="$($OFPATH $macos)"
if [ $? != 0 ] ; then
echo 1>&2 "$PRG: Unable to determine OpenFirmware path for macos=$smacos"
echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for macos=$smacos in $CONF"
/dev/*)
[ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$macosx'..."
local smacosx="$macosx"
- macosx="$(ofpath $macosx)"
+ macosx="$($OFPATH $macosx)"
if [ $? != 0 ] ; then
echo 1>&2 "$PRG: Unable to determine OpenFirmware path for macosx=$smacosx"
echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for macosx=$smacosx in $CONF"
/dev/*)
[ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$darwin'..."
local sdarwin="$darwin"
- darwin="$(ofpath $darwin)"
+ darwin="$($OFPATH $darwin)"
if [ $? != 0 ] ; then
echo 1>&2 "$PRG: Unable to determine OpenFirmware path for darwin=$sdarwin"
echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for darwin=$sdarwin in $CONF"
if [ -n "$2" ] ; then
device="$2"
bootconf=auto
+ echo 1>&2 "$PRG: WARNING: Deprecated option --device"
shift 2
else
echo 1>&2 "$PRG: option requires an argument $1"
if [ -n "$2" ] ; then
timeout="$2"
bootconf=auto
+ echo 1>&2 "$PRG: WARNING: Deprecated option --device"
shift 2
else
echo 1>&2 "$PRG: option requires an argument $1"
if [ -n "$2" ] ; then
image="$2"
bootconf=auto
+ echo 1>&2 "$PRG: WARNING: Deprecated option --device"
shift 2
else
echo 1>&2 "$PRG: option requires an argument $1"
if [ -n "$2" ] ; then
label="$2"
bootconf=auto
+ echo 1>&2 "$PRG: WARNING: Deprecated option --device"
shift 2
else
echo 1>&2 "$PRG: option requires an argument $1"
if [ -n "$2" ] ; then
partition="$2"
bootconf=auto
+ echo 1>&2 "$PRG: WARNING: Deprecated option --device"
shift 2
else
echo 1>&2 "$PRG: option requires an argument $1"
if [ -n "$2" ] ; then
root="$2"
bootconf=auto
+ echo 1>&2 "$PRG: WARNING: Deprecated option --device"
shift 2
else
echo 1>&2 "$PRG: option requires an argument $1"