]> git.ozlabs.org Git - yaboot.git/blobdiff - ybin/ybin
Update first stage to be compatible with new Macs
[yaboot.git] / ybin / ybin
index 3da965e5fe4b0043c8e6c26a192d95a5e12af353..bccd2d82f89ff6aed2265bca321f6d15616319da 100755 (executable)
--- 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.4pre2
+VERSION=1.3.9-UNRELEASED
 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
@@ -553,7 +551,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 +607,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=<path> where <path> is the OpenFirmware path to $boot to $CONF"
@@ -624,7 +622,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 +641,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 +660,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 +679,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"
@@ -1052,7 +1050,7 @@ mnt_install()
        fi
     fi
 
-    [ "$VERBOSE" = 1 ] && echo "$INSTALLFIRST"
+    [ "$VERBOSE" = 1 ] && echo "$INSTALLPRIMARY"
     cp -f "$install" "$TARGET/$BTFILE"
     if [ $? != 0 ] ; then
        echo 1>&2 "$PRG: An error occured while writing to $boot"
@@ -1440,6 +1438,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 +1450,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 +1462,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 +1474,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 +1486,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 +1498,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"