]> git.ozlabs.org Git - yaboot.git/blobdiff - ybin/yabootconfig
Fix ofpath on pci-ide
[yaboot.git] / ybin / yabootconfig
index 80c1799e8db1c30da0162207d57d05b99b0a2c70..256978d1505a47fccf09fbdcd603dae28941dec6 100755 (executable)
@@ -3,7 +3,7 @@
 ###############################################################################
 ##
 ## yabootconfig generates a simple /etc/yaboot.conf
-## Copyright (C) 2001 Ethan Benson
+## Copyright (C) 2001, 2002 Ethan Benson
 ##
 ## This program is free software; you can redistribute it and/or
 ## modify it under the terms of the GNU General Public License
@@ -27,7 +27,7 @@ if [ -n "$PATH_PREFIX" ] ; then
     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-rc2
 CHROOT=/
 ## $CONFIG is relative to $CHROOT
 CONFIG=etc/yaboot.conf
@@ -37,6 +37,13 @@ DEBUG=0
 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
@@ -78,7 +85,7 @@ echo \
 "$PRG $VERSION
 Written by Ethan Benson
 
-Copyright (C) 2001 Ethan Benson
+Copyright (C) 2001, 2002 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."
 }
@@ -375,7 +382,7 @@ fi
 ## 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..."
@@ -501,18 +508,13 @@ fi
 
 ## 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
@@ -568,6 +570,15 @@ if [ -n "$KERNARGS" ] ; 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
 ##
@@ -575,7 +586,7 @@ 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