]> git.wh0rd.org - home.git/blobdiff - .bin/installkernel
cros-board: update
[home.git] / .bin / installkernel
index a8a448fadca092694b20ad1772606ed24a340df9..030e21f0d9203adc9467327731a8292843311b8f 100755 (executable)
@@ -1,31 +1,53 @@
 #!/bin/bash
-# 2.6.35.4-default arch/s390/boot/image System.map Kerntypes /boot
+# 2.6.35.4-default arch/s390/boot/image System.map /boot
 
-mmv() { [[ -e $1 ]] && mv "$1" "$2" ; }
+e() { echo "+ $*"; "$@"; }
+mmv() { [[ -e $1 ]] && mv "$1" "$2"; }
 
 ver=$1
 img=$2
 map=$3
-# $4 == ??
-dir=$5
+dir=$4
+
+mount "${dir}" >&/dev/null
+if [[ ! -w "${dir}" ]] ; then
+       mount "${dir}" -o remount,rw
+fi
 
 case ${img} in
 */blackfin/*)
-       mmv $4/uImage $4/uImage.old
-       mmv $4/${map} $4/${map}.old
+       mmv ${dir}/uImage ${dir}/uImage.old
+       mmv ${dir}/${map} ${dir}/${map}.old
 
-       cp ${img} $4/uImage
-       cp ${map} $4/${map}
+       cp ${img} ${dir}/uImage
+       cp ${map} ${dir}/${map}
        exit 0
        ;;
 
 */s390/*)
+       pushd /lib/modules >/dev/null
+       for v in * ; do
+               [[ -d ${v} ]] || continue
+               [[ -e ${dir}/image-${v} ]] && continue
+               echo rm -rf ${PWD}/${v}
+       done
+       popd >/dev/null
+
        cp ${img} ${dir}/image-${ver}
-       cp ${map} ${dir}/System.map-${ver}
-       cp .config ${dir}/config-${ver}
+       xz -9c ${map} > ${dir}/System.map-${ver}.xz
+       xz -9c .config > ${dir}/config-${ver}.xz
        ln -sf image-${ver} ${dir}/image
        zipl
        exit 0
        ;;
 esac
-exec /sbin/installkernel "$@"
+
+e /sbin/installkernel "$@"
+
+case ${img} in
+*/x86*/*)
+       if [[ -e ${dir}/grub/grub.cfg ]] ; then
+               e grub-mkconfig -o /boot/grub/grub.cfg
+       fi
+       ;;
+esac