X-Git-Url: https://git.ozlabs.org/?p=yaboot.git;a=blobdiff_plain;f=ybin%2Fyabootconfig;h=15232806be205009c172af288da6f4037e0ffb9d;hp=80c1799e8db1c30da0162207d57d05b99b0a2c70;hb=ca58ccca8abb692653406eec7a414ffc985d6378;hpb=67d317029778e6f068badf7b8e3eec6482ecb00e diff --git a/ybin/yabootconfig b/ybin/yabootconfig index 80c1799..1523280 100755 --- a/ybin/yabootconfig +++ b/ybin/yabootconfig @@ -3,7 +3,7 @@ ############################################################################### ## ## 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 @@ -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 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, 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." } @@ -375,7 +382,7 @@ fi ## find / device if [ -z "$ROOT" ] ; then ## IMPORTANT! that last substitution is [] 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 '\' /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