--- trunk/mkinitrd-magellan/grubby/new-kernel-pkg 2009/10/28 13:29:18 925
+++ trunk/grubby/new-kernel-pkg 2012/07/02 13:07:56 1848
@@ -25,6 +25,32 @@
# along with this program. If not, see .
#
+read_os_release()
+{
+ local NAME
+ local ID
+ local Version
+ local Version_ID
+ local PRETTY_NAME
+ local ANSI_COLOR
+ local CPE_NAME
+
+ if [[ -f /etc/os-release ]]
+ then
+ source /etc/os-release
+
+ case $1 in
+ name) echo "${NAME}" ;;
+ id) echo "${ID}" ;;
+ version) echo "${Version}" ;;
+ version_id) echo "${Version_ID}" ;;
+ pretty_name) echo "${PRETTY_NAME}" ;;
+ ansi_color) echo "${ANSI_COLOR}" ;;
+ cpe_name) echo "${CPE_NAME}" ;;
+ esac
+ fi
+}
+
PATH=/sbin:/bin:$PATH
lilo=/sbin/lilo
@@ -40,11 +66,19 @@
fi
[ -f /etc/conf.d/grubby ] && . /etc/conf.d/grubby
+[ -f /etc/conf.d/grubby-uboot ] && . /etc/conf.d/grubby-uboot
+cfgGrub2=""
+cfgGrub2Efi=""
cfgGrub=""
cfgLilo=""
+cfgExtlinux=""
+cfguBoot=""
runLilo=""
grubConfig=""
+grub2Config=""
+grub2EfiConfig=""
+extlinuxConfig=""
ARCH=$(uname -m)
@@ -57,6 +91,7 @@
elif [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]]
then
liloConfig=/etc/yaboot.conf
+ grub2Config=/boot/grub/grub.cfg
bootPrefix=/boot
lilo=/sbin/ybin
liloFlag=yaboot
@@ -77,10 +112,42 @@
lilo=/sbin/zipl
runLilo="yes"
isx86=""
+elif [[ ${ARCH} =~ armv[5|7].*l ]]
+then
+ liloConfig=""
+ bootPrefix=/boot
+ ubootDir=${UBOOT_DIR:-"/boot"}
+ ubootScript=$ubootDir/${UBOOT_SCR:-"boot.scr"}
+ ubootKList=${UBOOT_KLIST:-"klist.txt"}
+ ubootDevice=/dev/${UBOOT_DEVICE:-"mmcblk0p1"}
+ ubootDefaultImage=${UBOOT_UIMAGE:-"uImage"}
+ ubootDefaultInitrd=${UBOOT_UINITRD:-"uInitrd"}
+ mounted=""
+ liloFlag=""
+ isx86=""
+ if [[ -z ${UBOOT_IMGADDR} ]]
+ then
+ machine=${MACHINE:-$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//')}
+ # A few machines use an alternate kernel load address
+ if [[ "${machine}" =~ ^OMAP[3|4].* ]]
+ then
+ ubootAddress=0x80008000
+ elif [[ "${machine}" =~ ^Efika\ MX.* ]]
+ then
+ ubootAddress=0x90008000
+ else
+ ubootAddress=0x00008000
+ fi
+ else
+ ubootAddress="${UBOOT_IMGADDR}"
+ fi
else
# this leaves i?86 and x86_64
liloConfig=/etc/lilo.conf
grubConfig=/boot/grub/grub.conf
+ grub2Config=/boot/grub/grub.cfg
+ grub2EfiConfig=/boot/grub/grub-efi.cfg
+ extlinuxConfig=/boot/extlinux/extlinux.conf
bootPrefix=/boot
liloFlag=lilo
isx86="yes"
@@ -89,21 +156,27 @@
mode=""
version=""
initrd=""
+dracut=""
+dracuthostonly=""
initrdfile=""
moddep=""
verbose=""
makedefault=""
package=""
-mbkernel=""
-mbargs=""
+mbkernel="${HYPERVISOR}"
+mbargs="${HYPERVISOR_ARGS}"
+adddracutargs=""
+addplymouthinitrd=""
usage()
{
- echo "Usage: $(basename $0) [-v] [--mkinitrd] [--rminitrd]" >&2
+ echo "Usage: $(basename $0) [-v] [--mkinitrd] [--rminitrd] [--dracut]" >&2
echo " [--initrdfile=] [--depmod] [--rmmoddep]" >&2
- echo " [--kernel-args=] [--remove-args=]" >&2
+ echo " [--kernel-args=] [--remove-args=]" >&2
echo " [--banner=] [--multiboot=multiboot]" >&2
- echo " [--mbargs=mbargs] [--make-default]" >&2
+ echo " [--mbargs=mbargs] [--make-default] [--add-dracut-args]" >&2
+ echo " [--add-plymouth-initrd]" >&2
+ echo " [--host-only]" >&2
echo " <--install | --remove | --update> " >&2
echo " (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2
exit 1
@@ -123,6 +196,11 @@
then
[[ -n ${verbose} ]] && echo "found ${initrdfile} and using it with grubby"
INITRD="--initrd ${initrdfile}"
+
+ if [[ -n ${addplymouthinitrd} ]]
+ then
+ INITRD="${INITRD} --extra-initrd ${bootPrefix}/initrd-plymouth.img"
+ fi
fi
# FIXME: is this a good heuristic to find out if we're on iSeries?
@@ -156,19 +234,73 @@
if [[ -n ${banner} ]]
then
- title="${banner} (${version})"
+ title="${banner} [ ${version} ]"
elif [ -f /etc/mageversion ]
then
- title="Magellan Linux $(< /etc/mageversion) (${version})"
+ title="Magellan Linux $(< /etc/mageversion) [ ${version} ]"
+ elif [[ $(read_os_release id) = magellan ]]
+ then
+ title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]"
else
- title="Magellan Linux (${version})"
+ title="Magellan Linux [ ${version} ]"
fi
- ${grubby} --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${grubby} --grub -c ${grubConfig} \
+ --add-kernel=${bootPrefix}/${kernelName}-${version} \
${INITRD} --copy-default ${makedefault} --title "${title}" \
${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \
--args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}"
else
- [[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby"
+ [[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby for grub 0.97"
+ fi
+ if [[ -n ${cfgGrub2} ]]
+ then
+ [[ -n ${verbose} ]] && echo "adding ${version} to ${grub2Config}"
+
+ if [[ -n ${banner} ]]
+ then
+ title="${banner} [ ${version} ]"
+ elif [ -f /etc/mageversion ]
+ then
+ title="Magellan Linux $(< /etc/mageversion) [ ${version} ]"
+ elif [[ $(read_os_release id) = magellan ]]
+ then
+ title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]"
+ else
+ title="Magellan Linux [ ${version} ]"
+ fi
+ ${grubby} --grub2 -c ${grub2Config} \
+ --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} --copy-default ${makedefault} --title "${title}" \
+ ${mbkernel:+--add-multiboot="${mbkernel}"} \
+ ${mbargs:+--mbargs="${mbargs}"} \
+ --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}"
+ else
+ [[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby for grub 2"
+ fi
+ if [[ -n ${cfgGrub2Efi} ]]
+ then
+ [[ -n ${verbose} ]] && echo "adding ${version} to ${grub2EfiConfig}"
+
+ if [[ -n ${banner} ]]
+ then
+ title="${banner} [ ${version} ]"
+ elif [ -f /etc/mageversion ]
+ then
+ title="Magellan Linux $(< /etc/mageversion) [ ${version} ]"
+ elif [[ $(read_os_release id) = magellan ]]
+ then
+ title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]"
+ else
+ title="Magellan Linux [ ${version} ]"
+ fi
+ ${grubby} --grub2 -c ${grub2EfiConfig} \
+ --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} --copy-default ${makedefault} --title "${title}" \
+ ${mbkernel:+--add-multiboot="${mbkernel}"} \
+ ${mbargs:+--mbargs="${mbargs}"} \
+ --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}"
+ else
+ [[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby for grub 2 with UEFI"
fi
if [[ -n ${cfgLilo} ]]
@@ -184,7 +316,7 @@
if [[ -n ${runLilo} ]]
then
[[ -n ${verbose} ]] && echo "running ${lilo}"
- if [ ! -x $lilo ]
+ if [ ! -x ${lilo} ]
then
[[ -n ${verbose} ]] && echo "${lilo} does not exist"
else
@@ -194,6 +326,31 @@
else
[[ -n ${verbose} ]] && echo "${liloConfig} does not exist, not running grubby"
fi
+
+ if [[ -n ${cfgExtlinux} ]]
+ then
+ [[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}"
+
+ if [[ -n ${banner} ]]
+ then
+ title="${banner} [ ${version} ]"
+ elif [ -f /etc/mageversion ]
+ then
+ title="Magellan Linux $(< /etc/mageversion) [ ${version} ]"
+ elif [[ $(read_os_release id) = magellan ]]
+ then
+ title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]"
+ else
+ title="Magellan Linux [ ${version} ]"
+ fi
+ ${grubby} --extlinux -c ${extlinuxConfig} \
+ --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} --copy-default ${makedefault} --title "${title}" \
+ ${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \
+ --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}"
+ else
+ [[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby for extlinux"
+ fi
}
remove()
@@ -209,16 +366,32 @@
if [[ -n ${cfgGrub} ]]
then
[[ -n ${verbose} ]] && echo "removing ${version} from ${grubConfig}"
- ${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version}
+ ${grubby} --grub -c ${grubConfig} \
+ --remove-kernel=${bootPrefix}/${kernelName}-${version}
else
- [[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby"
+ [[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby for grub 0.97"
+ fi
+ if [[ -n ${cfgGrub2} ]]
+ then
+ [[ -n ${verbose} ]] && echo "removing ${version} from ${grub2Config}"
+ ${grubby} --grub2 -c ${grub2Config} \
+ --remove-kernel=${bootPrefix}/${kernelName}-${version}
+ else
+ [[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby for grub 2"
+ fi
+ if [[ -n ${cfgGrub2Efi} ]]
+ then
+ [[ -n ${verbose} ]] && echo "removing ${version} from ${grub2EfiConfig}"
+ ${grubby} --grub2 -c ${grub2EfiConfig} \
+ --remove-kernel=${bootPrefix}/${kernelName}-${version}
+ else
+ [[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby grub 2 with UEFI"
fi
if [[ -n ${cfgLilo} ]]
then
[[ -n ${verbose} ]] && echo "removing ${version} from ${liloConfig}"
- ${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version} \
- --${liloFlag}
+ ${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version} --${liloFlag}
if [[ -n ${runLilo} ]]
then
@@ -233,24 +406,132 @@
else
[[ -n ${verbose} ]] && echo "${liloConfig} does not exist, not running grubby"
fi
+
+ if [[ -n ${cfguBoot} ]]
+ then
+ [[ -n ${verbose} ]] && echo "removing ${version} from ${ubootDir}..."
+
+ if [ -f ${ubootDir}/${ubootKList} ]
+ then
+ tmpKList=$(mktemp ${ubootDir}/${ubootKList}.XXXX)
+ curversion=$(tail -n1 ${ubootDir}/${ubootKList})
+ sed "/$version$/d" ${ubootDir}/${ubootKList} > ${tmpKList}
+ newversion=$(tail -n1 ${tmpKList})
+ if [ -f ${ubootDir}/uImage-${newversion} ] && [ -f ${ubootDir}/uInitrd-${newversion} ]
+ then
+ if [[ ${curversion} != ${newversion} ]]
+ then
+ cp -fp ${ubootDir}/uImage-${newversion} ${ubootDir}/${ubootDefaultImage}
+ if [ $? -ne 0 ]
+ then
+ [[ -n ${verbose} ]] && echo "copy uImage-${newversion} error, default kernel not replaced!" && exit
+ fi
+ cp -fp ${ubootDir}/uInitrd-${newversion} ${ubootDir}/${ubootDefaultInitrd}
+ if [ $? -ne 0 ]
+ then
+ [[ -n ${verbose} ]] && echo "copy uInitrd-${newversion} error, default Initrd not replaced!" && exit
+ fi
+ fi
+
+ [[ -n ${verbose} ]] && echo "removing uImage-${version}"
+ if [ -f ${ubootDir}/uImage-${version} ]
+ then
+ rm -f ${ubootDir}/uImage-${version}
+ else
+ [[ -n ${verbose} ]] && echo "uImage-${version} did not exist!"
+ fi
+
+ [[ -n ${verbose} ]] && echo "removing uInitrd-${version}"
+ if [ -f ${ubootDir}/uInitrd-${version} ]
+ then
+ rm -f ${ubootDir}/uInitrd-${version}
+ else
+ [[ -n ${verbose} ]] && echo "uInitrd-${version} did not exist!"
+ fi
+
+ mv ${tmpKList} ${ubootDir}/${ubootKList}
+ else
+ [[ -n ${verbose} ]] && echo "uImage ${newversion} does not exist!"
+ [ -f ${tmpKList} ] && rm -f ${tmpKList}
+ fi
+ else
+ [[ -n ${verbose} ]] && echo "No previous kernel version. U-Boot images not removed!"
+ fi
+ else
+ [[ -n ${verbose} ]] && echo "${ubootScript} does not exist, not modifying ${ubootDir}"
+ fi
+
+ if [[ -n ${cfgExtlinux} ]]
+ then
+ [[ -n ${verbose} ]] && echo "removing ${version} from ${extlinuxConfig}"
+ ${grubby} --extlinux -c ${extlinuxConfig} \
+ --remove-kernel=${bootPrefix}/${kernelName}-${version}
+ else
+ [[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby for extlinux"
+ fi
}
update()
{
+ if [ ! -f ${bootPrefix}/${kernelName}-${version} ]
+ then
+ [[ -n ${verbose} ]] && echo "kernel for ${version} does not exist, not running grubby"
+ return
+ fi
+
+ INITRD=""
+ if [ -f ${initrdfile} ]
+ then
+ [[ -n ${verbose} ]] && echo "found ${initrdfile} and using it with grubby"
+ INITRD="--initrd ${initrdfile}"
+
+ if [[ -n ${addplymouthinitrd} ]]
+ then
+ INITRD="${INITRD} --extra-initrd ${bootPrefix}/initrd-plymouth.img"
+ fi
+ fi
+
if [[ -n ${cfgGrub} ]]
then
[[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}"
- ${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${grubby} --grub -c ${grubConfig} \
+ --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} \
${kernargs:+--args="${kernargs}"} \
${removeargs:+--remove-args="${removeargs}"}
else
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby"
fi
+ if [[ -n ${cfgGrub2} ]]
+ then
+ [[ -n ${verbose} ]] && echo "updating ${version} from ${grub2Config}"
+ ${grubby} --grub2 -c ${grub2Config} \
+ --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} \
+ ${kernargs:+--args="${kernargs}"} \
+ ${removeargs:+--remove-args="${removeargs}"}
+ else
+ [[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby"
+ fi
+
+ if [[ -n ${cfgGrub2Efi} ]]
+ then
+ [[ -n ${verbose} ]] && echo "updating ${version} from ${grub2EfiConfig}"
+ ${grubby} --grub2 -c ${grub2EfiConfig} \
+ --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} \
+ ${kernargs:+--args="${kernargs}"} \
+ ${removeargs:+--remove-args="${removeargs}"}
+ else
+ [[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby"
+ fi
+
if [[ -n ${cfgLilo} ]]
then
[[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}"
${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} \
${kernargs:+--args="${kernargs}"} \
${removeargs:+--remove-args="${removeargs}"} \
--${liloFlag}
@@ -268,12 +549,63 @@
else
[[ -n ${verbose} ]] && echo "${liloConfig} does not exist, not running grubby"
fi
+
+ if [[ -n ${cfguBoot} ]]
+ then
+ [[ -n ${verbose} ]] && echo "adding $version to ${ubootDir}..."
+
+ [[ -n ${verbose} ]] && echo "creating uImage-${version}"
+ mkimage -A arm -O linux -T kernel -C none -a ${ubootAddress} \
+ -e ${ubootAddress} -n ${version} \
+ -d ${bootPrefix}/${kernelName}-${version} ${ubootDir}/uImage-${version}
+
+ [[ -n ${verbose} ]] && echo "creating uInitrd-${version}"
+ mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 \
+ -n initramfs -d ${initrdfile} ${ubootDir}/uInitrd-${version}
+
+ if [ -f ${ubootDir}/uImage-${version} ] && [ -f ${ubootDir}/uInitrd-${version} ]
+ then
+ cp -fp ${ubootDir}/uImage-${version} ${ubootDir}/${ubootDefaultImage}
+ if [ $? -ne 0 ]
+ then
+ [[ -n ${verbose} ]] && echo "copy uImage-${version} error, kernel not installed!" && exit
+ fi
+ cp -fp ${ubootDir}/uInitrd-${version} ${ubootDir}/${ubootDefaultInitrd}
+ if [ $? -ne 0 ]
+ then
+ [[ -n ${verbose} ]] && echo "copy uInitrd-${version} error, kernel not installed!" && exit
+ fi
+ echo ${version} >> ${ubootDir}/${ubootKList}
+ else
+ [[ -n ${verbose} ]] && echo "cannot make ${version} the default"
+ fi
+ else
+ [[ -n ${verbose} ]] && echo "${ubootScript} does not exist, not setting up ${ubootDir}"
+ fi
+
+ if [[ -n ${cfgExtlinux} ]]
+ then
+ [[ -n ${verbose} ]] && echo "updating ${version} from ${extlinuxConfig}"
+ ${grubby} --extlinux -c ${extlinuxConfig} \
+ --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${INITRD} \
+ ${kernargs:+--args="${kernargs}"} \
+ ${removeargs:+--remove-args="${removeargs}"}
+ else
+ [[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby"
+ fi
}
-mkinitrd()
+makeinitrd()
{
+ if [[ -n ${dracut} ]]
+ then
+ tool="dracut ${dracuthostonly} -f ${initrdfile} ${version}"
+ else
+ tool="mkinitrd --allow-missing -f ${initrdfile} ${version}"
+ fi
[[ -n ${verbose} ]] && echo "creating initrd ${initrdfile} using ${version}"
- /sbin/mkinitrd --allow-missing -f ${initrdfile} ${version}
+ ${tool}
rc=$?
if [ ${rc} != 0 ]
then
@@ -312,6 +644,14 @@
initrd="remove"
;;
+ --dracut)
+ dracut=--dracut
+ ;;
+
+ --host-only)
+ dracuthostonly=-H
+ ;;
+
--initrdfile*)
if echo $1 | grep '=' >/dev/null
then
@@ -335,7 +675,7 @@
--remove-args*)
if echo $1 | grep '=' >/dev/null
then
- removeargs=$(echo $1 | sed 's/^--remove-args=//')
+ removeargs=$(echo $1 | sed 's/^--remove-args=//')
else
removeargs=$2
shift
@@ -395,6 +735,14 @@
fi
;;
+ --add-dracut-args)
+ adddracutargs=--add-dracut-args
+ ;;
+
+ --add-plymouth-initrd)
+ addplymouthinitrd=--add-plymouth-initrd
+ ;;
+
-v)
verbose=-v
;;
@@ -433,7 +781,7 @@
kernelmajor=$(echo ${kernel} | cut -d . -f 1,2)
-# kernel image for 2.4 is vmlinux
+# kernel image for 2.4 is kernel
if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]]
then
if [[ ${kernelmajor} = 2.4 ]]
@@ -446,6 +794,10 @@
if [[ -z ${initrdfile} ]]
then
INITRD_NAME_PREFIX="initrd"
+ if [[ -n ${dracut} ]]
+ then
+ INITRD_NAME_PREFIX="initramfs"
+ fi
if [[ $(uname -m) = ia64 ]]
then
@@ -456,6 +808,23 @@
fi
[[ -n ${verbose} ]] && echo "initrdfile is ${initrdfile}"
+# add dracut i18n, keyboard and plymouth kernel args if requested
+if [[ -n ${dracut} ]] || [[ -n ${adddracutargs} ]]
+then
+ [ -r /etc/conf.d/keymap ] && . /etc/conf.d/keymap
+ [ -r /etc/conf.d/consolefont ] && . /etc/conf.d/consolefont
+
+ if [[ -n ${KEYMAP} ]]
+ then
+ kernargs="${kernargs} KEYTABLE=${KEYMAP}"
+ fi
+
+ if [[ -n ${CONSOLEFONT} ]]
+ then
+ kernargs="${kernargs} SYSFONT=${CONSOLEFONT}"
+ fi
+fi
+
# set this as the default if we have the package and it matches
if [[ ${mode} = --install ]] && [[ ${UPDATEDEFAULT} = yes ]] && [[ -n ${package} ]] &&
[[ -n ${DEFAULTKERNEL} ]] && [[ ${package} = ${DEFAULTKERNEL} ]]
@@ -474,7 +843,7 @@
if [[ ${initrd} = make ]]
then
- mkinitrd
+ makeinitrd
elif [[ ${initrd} = remove ]]
then
rminitrd
@@ -487,7 +856,28 @@
fi
[[ -n ${grubConfig} ]] && [ -f ${grubConfig} ] && cfgGrub=1
+[[ -n ${grub2Config} ]] && [ -f ${grub2Config} ] && cfgGrub2=1
+[[ -n ${grub2EfiConfig} ]] && [ -f ${grub2EfiConfig} ] && cfgGrub2Efi=1
[[ -n ${liloConfig} ]] && [ -f ${liloConfig} ] && cfgLilo=1
+[[ -n ${extlinuxConfig} ]] && [ -f ${extlinuxConfig} ] && cfgExtlinux=1
+
+# if we have a U-Boot directory, but no boot script, check if the directory
+# is mounted. If not, mount it, and then check if a boot script exists.
+if [[ -n ${ubootDir} ]]
+then
+ if [ -f ${ubootScript} ]
+ then
+ cfguBoot=1
+ else
+ mountEntry=$(mount | grep ${ubootDir})
+ if [[ -z ${mountEntry} ]]
+ then
+ mount ${ubootDevice} ${ubootDir}
+ mounted=1
+ fi
+ [ -f ${ubootScript} ] && cfguBoot=1
+ fi
+fi
# if we have a lilo config on an x86 box, see if the default boot loader
# is lilo to determine if it should be run
@@ -507,4 +897,7 @@
update
fi
+# if we mounted the U-Boot directory, unmount it.
+[[ -n ${mounted} ]] && umount ${ubootDir}
+
exit 0