X-Git-Url: http://git.ozlabs.org/?p=yaboot.git;a=blobdiff_plain;f=ybin%2Fybin;h=029c868a83be178f55e194e21ff647275c9c8519;hp=3b5012fb0a08b5cf3eb64cf2c9ee5607da77d1e4;hb=6a6a039f03909f5cdf62ef94522eb1a70b7e792d;hpb=6f4d7a802c09ee20526db5eeba7357d52444a42c diff --git a/ybin/ybin b/ybin/ybin index 3b5012f..029c868 100755 --- a/ybin/ybin +++ b/ybin/ybin @@ -3,7 +3,7 @@ ############################################################################### ## ## 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 @@ -28,12 +28,19 @@ if [ -n "$PATH_PREFIX" ] ; then fi PRG="${0##*/}" SIGINT="$PRG: Interrupt caught ... exiting" -VERSION=1.3.5pre3 +VERSION=1.3.12 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 @@ -65,7 +72,11 @@ fi ## 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 @@ -128,7 +139,7 @@ echo \ "$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." } @@ -166,19 +177,6 @@ Update/install bootloader onto a bootstrap partition. 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 @@ -464,6 +462,10 @@ checkconf() echo 1>&2 "$PRG: /dev/nvram: Permission denied" echo 1>&2 "$PRG: Warning: nvram will not be updated" nonvram=1 + elif ! (dd if=/dev/nvram of=/dev/null bs=1 count=10 > /dev/null 2>&1) ; then + echo 1>&2 "$PRG: /dev/nvram: No such device" + echo 1>&2 "$PRG: Warning: nvram will not be updated" + nonvram=1 else nonvram=1 echo 1>&2 "$PRG: Warning: Incompatible version of \`nvsetenv', nvram will not be updated" @@ -553,7 +555,7 @@ if (command -v readlink > /dev/null 2>&1) ; then 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 @@ -609,7 +611,7 @@ convertpath() ## 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= where is the OpenFirmware path to $boot to $CONF" @@ -624,7 +626,7 @@ convertpath() /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" @@ -643,7 +645,7 @@ convertpath() /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" @@ -662,7 +664,7 @@ convertpath() /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" @@ -681,7 +683,7 @@ convertpath() /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" @@ -1440,6 +1442,7 @@ if [ $# != 0 ] ; then 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" @@ -1451,6 +1454,7 @@ if [ $# != 0 ] ; then 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" @@ -1462,6 +1466,7 @@ if [ $# != 0 ] ; then 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" @@ -1473,6 +1478,7 @@ if [ $# != 0 ] ; then 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" @@ -1484,6 +1490,7 @@ if [ $# != 0 ] ; then 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" @@ -1495,6 +1502,7 @@ if [ $# != 0 ] ; then 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"