--- trunk/grubby/new-kernel-pkg 2016/06/29 14:45:50 2964 +++ trunk/grubby/new-kernel-pkg 2016/06/30 10:22:14 2973 @@ -165,7 +165,7 @@ echo " [--banner=] [--multiboot=multiboot]" >&2 echo " [--mbargs=mbargs] [--make-default] [--add-dracut-args]" >&2 echo " [--add-plymouth-initrd]" >&2 - echo " [--host-only] [--devtree=]" >&2 + echo " [--host-only] [--devtree=] [--devtreedir=]" >&2 echo " <--install | --remove | --update> " >&2 echo " (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2 exit 1 @@ -236,12 +236,19 @@ fi DEVTREE="" - if [[ x${devtreefile} != x ]] && [ -f "${devtreefile}" ] + if [[ -n ${devtreefile} ]] && [ -f ${devtreefile} ] then [[ -n ${verbose} ]] && echo "found ${devtreefile} and using it with grubby" DEVTREE="--devtree ${devtreefile}" fi + DEVTREEDIR="" + if [[ -n ${devtreedir} ]] && [ -d ${devtreedir} ] + then + [ -n ${verbose} ] && echo "found ${devtreedir} and using it with grubby" + DEVTREEDIR="--devtreedir ${devtreedir}" + fi + # FIXME: is this a good heuristic to find out if we're on iSeries? if [ -d /proc/iSeries ] then @@ -352,6 +359,7 @@ [[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}" ARGS="--extlinux -c ${extlinuxConfig} --add-kernel=${kernelImage} \ + ${DEVTREEDIR} ${DEVTREE} \ ${INITRD} --copy-default --title \"${title}\${debugtitle}\" \ ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ ${mbargs:+--mbargs=\"${mbargs}\"} \ @@ -505,6 +513,20 @@ fi fi + DEVTREE="" + if [[ -n ${devtreefile} ]] && [ -f ${devtreefile} ] + then + [[ -n ${verbose} ]] && echo "found ${devtreefile} and using it with grubby" + DEVTREE="--devtree ${devtreefile}" + fi + + DEVTREEDIR="" + if [[ -n ${devtreedir} ]] && [ -d ${devtreedir} ] + then + [[ -n ${verbose} ]] && echo "found ${devtreedir} and using it with grubby" + DEVTREEDIR="--devtreedir ${devtreedir}" + fi + if [[ -n ${cfgGrub} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}" @@ -607,7 +629,7 @@ then [[ -n ${verbose} ]] && echo "updating ${version} from ${extlinuxConfig}" ARGS="--extlinux -c ${extlinuxConfig} --update-kernel=${kernelImage} \ - ${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ + ${DEVTREE} ${DEVTREEDIR} ${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ ${removeargs:+--remove-args=\"${removeargs}\"} \ --title=\"${title}\${debugtitle}\"" rungrubby --debug ${ARGS} @@ -657,6 +679,14 @@ fi } +# kernel image for 2.4 is kernel +if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] +then + if [[ ${kernelmajor} = 2.4 ]] + then + kernelName=kernel + fi +fi while [ $# -gt 0 ] do @@ -679,6 +709,16 @@ fi ;; + --devtreedir*) + if [[ $1 == --devtreedir\=* ]] + then + devtreedir=${1#--devtreedir=} + else + devtreedir=$2 + shift + fi + ;; + --dracut) dracut=--dracut ;; @@ -794,6 +834,16 @@ fi ;; + --kernel-name*) + if [[ $1 == --kernel-name\=* ]] + then + kernelName=${1#--kernel-name=} + else + kernelName="$2" + shift + fi + ;; + -v) verbose=-v ;; @@ -832,15 +882,6 @@ kernelmajor=$(echo ${kernel} | cut -d . -f 1,2) -# kernel image for 2.4 is kernel -if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] -then - if [[ ${kernelmajor} = 2.4 ]] - then - kernelName=kernel - fi -fi - [[ ${kernelImage} ]] || kernelImage="${bootPrefix}/${kernelName}-${version}" # set the initrd file based on arch; ia64 is the only currently known oddball @@ -861,6 +902,23 @@ fi [[ -n ${verbose} ]] && echo "initrdfile is ${initrdfile}" +if [[ ${ARCH} =~ armv[5|7].*l ]] +then + if [[ -z ${SHIPSDTB} ]] || [[ ${SHIPSDTB} != yes ]] + then + if [[ -n ${dtbfile} ]] && [ -f ${bootPrefix}/dtb-${version}/${dtbfile} ] + then + devtreefile="${bootPrefix}/dtb-${version}/${dtbfile}" + [[ -n ${verbose} ]] && echo "devtreefile is ${devtreefile}" + elif [ -d ${bootPrefix}/dtb-${version}/ ] + then + devtreedir="${bootPrefix}/dtb-${version}/" + [[ -n ${verbose} ]] && echo "devtreedir is ${devtreedir}" + fi + fi +fi +[[ -n ${verbose} ]] && echo "devtreedir is ${devtreedir}" + # add dracut i18n, keyboard and plymouth kernel args if requested if [[ -n ${dracut} ]] || [[ -n ${adddracutargs} ]] then