--- trunk/grubby/new-kernel-pkg 2012/02/18 00:28:45 1710
+++ trunk/grubby/new-kernel-pkg 2014/07/16 10:54:46 2704
@@ -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
@@ -46,11 +72,13 @@
cfgGrub2Efi=""
cfgGrub=""
cfgLilo=""
+cfgExtlinux=""
cfguBoot=""
runLilo=""
grubConfig=""
grub2Config=""
grub2EfiConfig=""
+extlinuxConfig=""
ARCH=$(uname -m)
@@ -63,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
@@ -83,16 +112,18 @@
lilo=/sbin/zipl
runLilo="yes"
isx86=""
-elif [[ ${ARCH} = armv7l ]]
+elif [[ ${ARCH} =~ armv[5|7].*l ]]
then
liloConfig=""
bootPrefix=/boot
- ubootDir=${UBOOT_DIR:-"/boot/uboot"}
+ extlinuxConfig=$(readlink -f /etc/extlinux.conf 2>/dev/null)
+ 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"}
+ ubootAddress=${UBOOT_IMGADDR:-"0x00008000"}
mounted=""
liloFlag=""
isx86=""
@@ -102,6 +133,7 @@
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"
@@ -113,6 +145,7 @@
dracut=""
dracuthostonly=""
initrdfile=""
+devtreefile=""
moddep=""
verbose=""
makedefault=""
@@ -130,7 +163,7 @@
echo " [--banner=] [--multiboot=multiboot]" >&2
echo " [--mbargs=mbargs] [--make-default] [--add-dracut-args]" >&2
echo " [--add-plymouth-initrd]" >&2
- echo " [--host-only]" >&2
+ echo " [--host-only] [--devtree=]" >&2
echo " <--install | --remove | --update> " >&2
echo " (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2
exit 1
@@ -139,7 +172,7 @@
install()
{
# XXX kernel should be able to be specified also (or work right on ia64)
- if [ ! -f ${bootPrefix}/${kernelName}-${version} ]
+ if [ ! -f ${kernelImage} ]
then
[[ -n ${verbose} ]] && echo "kernel for ${version} does not exist, not running grubby"
return
@@ -157,6 +190,13 @@
fi
fi
+ DEVTREE=""
+ if [[ x${devtreefile} != x ]] && [ -f "${devtreefile}" ]
+ then
+ [[ -n ${verbose} ]] && echo "found ${devtreefile} and using it with grubby"
+ DEVTREE="--devtree ${devtreefile}"
+ fi
+
# FIXME: is this a good heuristic to find out if we're on iSeries?
if [ -d /proc/iSeries ]
then
@@ -164,9 +204,9 @@
if [[ -z ${initrdfile} ]]
then
[[ -n ${verbose} ]] && echo "No initrd, just adding system map"
- /sbin/addSystemMap ${bootPrefix}/System.map-${version} ${bootPrefix}/${kernelName}-${version} ${bootPrefix}/vmlinitrd-${version}
+ /sbin/addSystemMap ${bootPrefix}/System.map-${version} ${kernelImage} ${bootPrefix}/vmlinitrd-${version}
else
- /sbin/addSystemMap ${bootPrefix}/System.map-${version} ${bootPrefix}/${kernelName}-${version} ${bootPrefix}/vmlinux.sm-${version}
+ /sbin/addSystemMap ${bootPrefix}/System.map-${version} ${kernelImage} ${bootPrefix}/vmlinux.sm-${version}
/sbin/addRamDisk ${initrdfile} ${bootPrefix}/System.map-${version} ${bootPrefix}/vmlinux.sm-${version} ${bootPrefix}/vmlinitrd-${version} 2>/dev/null
rm ${bootPrefix}/vmlinux.sm-${version}
fi
@@ -174,7 +214,11 @@
fi
# get the root filesystem to use
- rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab)
+ rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab 2>/dev/null)
+ if [[ -z $rootdevice ]]
+ then
+ rootdevice=$(grep -o -P "(?<=root=)\S+" /proc/cmdline)
+ fi
if [[ -n ${mbkernel} ]] && [[ -n ${cfgLilo} ]] && [[ ${liloFlag} != elilo ]]
then
@@ -182,21 +226,33 @@
cfgLilo=""
fi
- if [[ -n ${cfgGrub} ]]
+ if [[ -n ${banner} ]]
then
- [[ -n ${verbose} ]] && echo "adding ${version} to ${grubConfig}"
-
- if [[ -n ${banner} ]]
+ if [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]]
then
- title="${banner} (${version})"
- elif [ -f /etc/mageversion ]
- then
- title="Magellan Linux $(< /etc/mageversion) (${version})"
+ title=$(echo ${banner} | sed 's/ /_/g')
else
- title="Magellan Linux (${version})"
+ title="${banner} [ ${version} ]"
fi
+ elif [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]]
+ then
+ title=$(echo ${version} | sed 's/ /_/g')
+ elif [ -f /etc/os-release ]
+ then
+ title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]"
+ elif [ -f /etc/mageversion ]
+ then
+ title="Magellan Linux $(< /etc/mageversion) [ ${version} ]"
+ else
+ title="Magellan Linux [ ${version} ]"
+ fi
+
+ if [[ -n ${cfgGrub} ]]
+ then
+ [[ -n ${verbose} ]] && echo "adding ${version} to ${grubConfig}"
+
${grubby} --grub -c ${grubConfig} \
- --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ --add-kernel=${kernelImage} \
${INITRD} --copy-default ${makedefault} --title "${title}" \
${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \
--args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}"
@@ -207,17 +263,8 @@
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})"
- else
- title="Magellan Linux (${version})"
- fi
${grubby} --grub2 -c ${grub2Config} \
- --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ --add-kernel=${kernelImage} \
${INITRD} --copy-default ${makedefault} --title "${title}" \
${mbkernel:+--add-multiboot="${mbkernel}"} \
${mbargs:+--mbargs="${mbargs}"} \
@@ -229,17 +276,8 @@
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})"
- else
- title="Magellan Linux (${version})"
- fi
- ${grubby} --grub2 -c ${grub2EfiConfig} \
- --add-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${grubby} --grub2 -c ${grub2EfiConfig} --efi \
+ --add-kernel=${kernelImage} ${DEVTREE} \
${INITRD} --copy-default ${makedefault} --title "${title}" \
${mbkernel:+--add-multiboot="${mbkernel}"} \
${mbargs:+--mbargs="${mbargs}"} \
@@ -252,8 +290,8 @@
then
[[ -n ${verbose} ]] && echo "adding ${version} to ${liloConfig}"
- ${grubby} --add-kernel=${bootPrefix}/${kernelName}-${version} ${INITRD} \
- --copy-default ${makedefault} --title ${version} \
+ ${grubby} --add-kernel=${kernelImage} ${INITRD} \
+ --copy-default ${makedefault} --title "${title}" \
${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \
--args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${version}" \
--${liloFlag}
@@ -271,6 +309,19 @@
else
[[ -n ${verbose} ]] && echo "${liloConfig} does not exist, not running grubby"
fi
+
+ if [[ -n ${cfgExtlinux} ]]
+ then
+ [[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}"
+
+ ${grubby} --extlinux -c ${extlinuxConfig} \
+ --add-kernel=${kernelImage} \
+ ${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()
@@ -279,7 +330,7 @@
if [ -d /proc/iSeries ]
then
[[ -n ${verbose} ]] && echo "On an iSeries, remove img file"
- rm -f ${bootPrefix}/${kernelName}-${version}.img 2>/dev/null
+ rm -f ${kernelImage}.img 2>/dev/null
return
fi
@@ -287,7 +338,7 @@
then
[[ -n ${verbose} ]] && echo "removing ${version} from ${grubConfig}"
${grubby} --grub -c ${grubConfig} \
- --remove-kernel=${bootPrefix}/${kernelName}-${version}
+ --remove-kernel=${kernelImage}
else
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby for grub 0.97"
fi
@@ -295,15 +346,15 @@
then
[[ -n ${verbose} ]] && echo "removing ${version} from ${grub2Config}"
${grubby} --grub2 -c ${grub2Config} \
- --remove-kernel=${bootPrefix}/${kernelName}-${version}
+ --remove-kernel=${kernelImage}
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}
+ ${grubby} --grub2 -c ${grub2EfiConfig} --efi \
+ --remove-kernel=${kernelImage}
else
[[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby grub 2 with UEFI"
fi
@@ -311,7 +362,7 @@
if [[ -n ${cfgLilo} ]]
then
[[ -n ${verbose} ]] && echo "removing ${version} from ${liloConfig}"
- ${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version} --${liloFlag}
+ ${grubby} --remove-kernel=${kernelImage} --${liloFlag}
if [[ -n ${runLilo} ]]
then
@@ -335,7 +386,7 @@
then
tmpKList=$(mktemp ${ubootDir}/${ubootKList}.XXXX)
curversion=$(tail -n1 ${ubootDir}/${ubootKList})
- sed "/${version}/d" ${ubootDir}/${ubootKList} > ${tmpKList}
+ sed "/$version$/d" ${ubootDir}/${ubootKList} > ${tmpKList}
newversion=$(tail -n1 ${tmpKList})
if [ -f ${ubootDir}/uImage-${newversion} ] && [ -f ${ubootDir}/uInitrd-${newversion} ]
then
@@ -370,21 +421,31 @@
fi
mv ${tmpKList} ${ubootDir}/${ubootKList}
+ [ -x /sbin/a-b-c ] && /sbin/a-b-c
else
[[ -n ${verbose} ]] && echo "uImage ${newversion} does not exist!"
[ -f ${tmpKList} ] && rm -f ${tmpKList}
fi
else
- [[ -n ${verbose} ]] && echo "No previous kernel version. uBoot images not removed!"
+ [[ -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=${kernelImage}
+ else
+ [[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby for extlinux"
+ fi
}
update()
{
- if [ ! -f ${bootPrefix}/${kernelName}-${version} ]
+ if [ ! -f ${kernelImage} ]
then
[[ -n ${verbose} ]] && echo "kernel for ${version} does not exist, not running grubby"
return
@@ -406,10 +467,11 @@
then
[[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}"
${grubby} --grub -c ${grubConfig} \
- --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ --update-kernel=${kernelImage} \
${INITRD} \
${kernargs:+--args="${kernargs}"} \
- ${removeargs:+--remove-args="${removeargs}"}
+ ${removeargs:+--remove-args="${removeargs}"} \
+ ${mbkernel:+--add-multiboot="${mbkernel}"}
else
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby"
fi
@@ -418,7 +480,7 @@
then
[[ -n ${verbose} ]] && echo "updating ${version} from ${grub2Config}"
${grubby} --grub2 -c ${grub2Config} \
- --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ --update-kernel=${kernelImage} \
${INITRD} \
${kernargs:+--args="${kernargs}"} \
${removeargs:+--remove-args="${removeargs}"}
@@ -429,8 +491,8 @@
if [[ -n ${cfgGrub2Efi} ]]
then
[[ -n ${verbose} ]] && echo "updating ${version} from ${grub2EfiConfig}"
- ${grubby} --grub2 -c ${grub2EfiConfig} \
- --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${grubby} --grub2 -c ${grub2EfiConfig} --efi \
+ --update-kernel=${kernelImage} \
${INITRD} \
${kernargs:+--args="${kernargs}"} \
${removeargs:+--remove-args="${removeargs}"}
@@ -441,7 +503,7 @@
if [[ -n ${cfgLilo} ]]
then
[[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}"
- ${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \
+ ${grubby} --update-kernel=${kernelImage} \
${INITRD} \
${kernargs:+--args="${kernargs}"} \
${removeargs:+--remove-args="${removeargs}"} \
@@ -466,8 +528,9 @@
[[ -n ${verbose} ]] && echo "adding $version to ${ubootDir}..."
[[ -n ${verbose} ]] && echo "creating uImage-${version}"
- mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 \
- -n ${version} -d ${bootPrefix}/${kernelName}-${version} ${ubootDir}/uImage-${version}
+ mkimage -A arm -O linux -T kernel -C none -a ${ubootAddress} \
+ -e ${ubootAddress} -n ${version} \
+ -d ${kernelImage} ${ubootDir}/uImage-${version}
[[ -n ${verbose} ]] && echo "creating uInitrd-${version}"
mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 \
@@ -486,21 +549,34 @@
[[ -n ${verbose} ]] && echo "copy uInitrd-${version} error, kernel not installed!" && exit
fi
echo ${version} >> ${ubootDir}/${ubootKList}
+ [ -x /sbin/a-b-c ] && /sbin/a-b-c
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=${kernelImage} \
+ ${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="/sbin/dracut ${dracuthostonly} -f ${initrdfile} ${version}"
+ tool="dracut ${dracuthostonly} -f ${initrdfile} ${version}"
else
- tool="/sbin/mkinitrd --allow-missing -f ${initrdfile} ${version}"
+ tool="mkinitrd --allow-missing -f ${initrdfile} ${version}"
fi
[[ -n ${verbose} ]] && echo "creating initrd ${initrdfile} using ${version}"
${tool}
@@ -527,7 +603,11 @@
doRmmoddep()
{
[[ -n ${verbose} ]] && echo "removing modules.dep info for ${version}"
- [ -d /lib/modules/${version} ] && rm -f /lib/modules/${version}/modules.*
+ if [ -d /lib/modules/${version} ]
+ then
+ rm -f /lib/modules/${version}/modules.*.bin \
+ /lib/modules/${version}/modules.{alias,dep,devname,symbols,softdep}
+ fi
}
@@ -542,6 +622,16 @@
initrd="remove"
;;
+ --devtree*)
+ if [[ $1 == --devtree\=* ]]
+ then
+ devtreefile="${1#--devtreefile=}"
+ else
+ devtreefile="$2"
+ shift
+ fi
+ ;;
+
--dracut)
dracut=--dracut
;;
@@ -551,9 +641,9 @@
;;
--initrdfile*)
- if echo $1 | grep '=' >/dev/null
+ if [[ $1 == --initrdfile\=* ]]
then
- initrdfile=$(echo $1 | sed 's/^--initrdfile=//')
+ initrdfile=${1#--initrdfile=}
else
initrdfile=$2
shift
@@ -561,9 +651,9 @@
;;
--kernel-args*)
- if echo $1 | grep '=' >/dev/null
+ if [[ $1 == --kernel-args\=* ]]
then
- kernargs=$(echo $1 | sed 's/^--kernel-args=//')
+ kernargs=${1#--kernel-args=}
else
kernargs=$2
shift
@@ -571,9 +661,9 @@
;;
--remove-args*)
- if echo $1 | grep '=' >/dev/null
+ if [[ $1 == --remove-args\=* ]]
then
- removeargs=$(echo $1 | sed 's/^--remove-args=//')
+ removeargs=${1#--remove-args=}
else
removeargs=$2
shift
@@ -581,9 +671,9 @@
;;
--banner*)
- if echo $1 | grep '=' >/dev/null
+ if [[ $1 == --banner\=* ]]
then
- banner=$(echo $1 | sed 's/^--banner=//')
+ banner=${1#--banner=}
else
banner=$2
shift
@@ -591,9 +681,9 @@
;;
--multiboot*)
- if echo $1 |grep '=' >/dev/null
+ if [[ $1 == --multiboot\=* ]]
then
- mbkernel=$(echo $1 | sed 's/^--multiboot=//')
+ mbkernel=${1#--multiboot=}
else
# can't really support having an optional second arg here
# sorry!
@@ -602,9 +692,9 @@
;;
--mbargs*)
- if echo $1 |grep '=' >/dev/null
+ if [[ $1 == --mbargs\=* ]]
then
- mbargs=$(echo $1 | sed 's/^--mbargs=//')
+ mbargs=${1#--mbargs=}
else
mbargs="$2"
shift
@@ -623,10 +713,10 @@
makedefault="--make-default"
;;
- --package)
- if echo $1 | grep '=' >/dev/null
+ --package*)
+ if [[ $1 == --package\=* ]]
then
- package=$(echo $1 | sed 's/^--package=//')
+ package=${1#--package=}
else
package=$2
shift
@@ -641,6 +731,22 @@
addplymouthinitrd=--add-plymouth-initrd
;;
+ --kernel-image*)
+ if [[ $1 == --kernel-image\=* ]]
+ then
+ kernelImage=${1#--kernel-image=}
+ else
+ kernelImage="$2"
+ shift
+ fi
+ if ! [[ -f ${kernelImage} ]]
+ then
+ echo "Can't find kernel image '${kernelImage}'" >&2
+ usage
+ exit 1
+ fi
+ ;;
+
-v)
verbose=-v
;;
@@ -688,6 +794,8 @@
fi
fi
+[[ ${kernelImage} ]] || kernelImage="${bootPrefix}/${kernelName}-${version}"
+
# set the initrd file based on arch; ia64 is the only currently known oddball
if [[ -z ${initrdfile} ]]
then
@@ -709,17 +817,45 @@
# 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} ]]
+ if [ -r /etc/vconsole.conf ]
then
- kernargs="${kernargs} KEYTABLE=${KEYMAP}"
+ . /etc/vconsole.conf
+
+ for i in SYSFONT SYSFONTACM UNIMAP KEYTABLE
+ do
+ val=$(eval echo \$$i)
+ [[ -n ${val} ]] && kernargs="${kernargs} ${i}=${val}"
+ done
+ else
+ if [ -r /etc/conf.d/consolefont ]
+ then
+ . /etc/conf.d/consolefont
+
+ if [[ -n ${CONSOLEFONT} ]]
+ then
+ kernargs="${kernargs} SYSFONT=${CONSOLEFONT}"
+ fi
+ fi
+
+ if [ -r /etc/conf.d/keymap ]
+ then
+ . /etc/conf.d/keymap
+
+ if [[ -n ${KEYMAP} ]]
+ then
+ kernargs="${kernargs} KEYTABLE=${KEYMAP}"
+ fi
+ fi
fi
- if [[ -n ${CONSOLEFONT} ]]
+ if [ -r /etc/locale.conf ]
then
- kernargs="${kernargs} SYSFONT=${CONSOLEFONT}"
+ . /etc/locale.conf
+
+ if [[ -n ${LANG} ]]
+ then
+ kernargs="${kernargs} LANG=${LANG}"
+ fi
fi
fi
@@ -741,7 +877,7 @@
if [[ ${initrd} = make ]]
then
- mkinitrd
+ makeinitrd
elif [[ ${initrd} = remove ]]
then
rminitrd
@@ -757,18 +893,39 @@
[[ -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 uBoot directory, check if it is mounted.
-# if not, mount it. Then check if a boot script exists.
+# 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
- mountEntry=$(mount | grep ${ubootDir})
- if [[ -z ${mountEntry} ]]
+ 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're using U-Boot, check if the default load address should change
+if [[ -n ${cfguBoot} ]] && [[ -z ${UBOOT_IMGADDR} ]]
+then
+ [[ ${version} =~ .([^.]*)$ ]]
+ platform=${BASH_REMATCH[1]}
+ # A few platforms use an alternate kernel load address
+ if [[ ${platform} = omap ]]
+ then
+ ubootAddress=0x80008000
+ elif [[ ${platform} = imx ]]
then
- mount ${ubootDevice} ${ubootDir}
- mounted=1
+ ubootAddress=0x90008000
fi
- [ -f ${ubootScript} ] && cfguBoot=1
fi
# if we have a lilo config on an x86 box, see if the default boot loader
@@ -789,4 +946,7 @@
update
fi
+# if we mounted the U-Boot directory, unmount it.
+[[ -n ${mounted} ]] && umount ${ubootDir}
+
exit 0