From ac8fbd5ad52b43b820973f1828a29f85bed13a1d Mon Sep 17 00:00:00 2001 From: Paul Nasrat Date: Tue, 4 Dec 2007 08:43:32 +0000 Subject: [PATCH 1/1] The attached patch adds support for writing the nvram using the nvram utility from the new powerpc-utils pkg from IBM; it also simplify a bit the code. Patch from: Emanuele Giaquinta (exg@gentoo.org) --- ybin/ybin | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/ybin/ybin b/ybin/ybin index 379b94b..19ee2aa 100755 --- a/ybin/ybin +++ b/ybin/ybin @@ -436,21 +436,22 @@ checkconf() fi if [ "$nonvram" = 0 ] ; then - ## see if nvsetenv exists and is executable - if (command -v nvsetenv > /dev/null 2>&1) ; then - [ -x `command -v nvsetenv` ] || MISSING=1 ; else MISSING=1 + ## see if nvsetenv or nvram exists and is executable + for program in nvsetenv nvram ; do + if (command -v $program > /dev/null 2>&1) && [ -x `command -v $program` ] ; then + NVRAM_PROG=$program + break + fi + done + if [ -z "$NVRAM_PROG" ] ; then + nonvram=1 + echo 1>&2 "$PRG: Warning: \`nvsetenv' and \`nvram' could not be found, nvram will not be updated" + fi fi if [ "$nonvram" = 0 ] ; then ## if nvsetenv exists see if its the old broken version - if [ "$MISSING" != 1 ] ; then - nvsetenv --version > /dev/null 2>&1 || OLD=1 - else - nonvram=1 - echo 1>&2 "$PRG: Warning: \`nvsetenv' could not be found, nvram will not be updated" - fi - - if [ "$OLD" = 1 ] ; then + if [ "$NVRAM_PROG" = "nvsetenv" ] && ! nvsetenv --version > /dev/null 2>&1 ; then ## i check this myself to avoid misleading error ## messages. nvsetenv should REALLY support --version. if [ ! -e /dev/nvram ] ; then @@ -926,7 +927,11 @@ util_install() if [ "$nonvram" = 0 ] ; then [ "$VERBOSE" = 1 ] && echo "$PRG: Updating OpenFirmware boot-device variable in nvram..." [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: boot-device=${ofboot},${OFFILE}" - nvsetenv boot-device "${ofboot},${OFFILE}" + if [ "$NVRAM_PROG" = "nvsetenv" ] ; then + nvsetenv boot-device "${ofboot},${OFFILE}" + else + nvram -p common --update-config boot-device="${ofboot},${OFFILE}" + fi if [ $? != 0 ] ; then echo 1>&2 "$PRG: An error occured while updating nvram, we'll ignore it" fi @@ -1112,7 +1117,11 @@ mnt_install() if [ "$nonvram" = 0 ] ; then [ "$VERBOSE" = 1 ] && echo "$PRG: Updating OpenFirmware boot-device variable in nvram..." [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: boot-device=${ofboot},${OFFILE}" - nvsetenv boot-device "${ofboot},${OFFILE}" + if [ "$NVRAM_PROG" = "nvsetenv" ] ; then + nvsetenv boot-device "${ofboot},${OFFILE}" + else + nvram -p common --update-config boot-device="${ofboot},${OFFILE}" + fi if [ $? != 0 ] ; then echo 1>&2 "$PRG: An error occured while updating nvram, we'll ignore it" fi -- 2.39.2