echo -e "\n$ME:\nFrank Brehm's installkernel script, $VERSION"
echo "* Arguments:
-kernel version: $1
-kernel image file: $2
-kernel map file: $3
-default install path: $4
+kernel version: $1
+kernel image file: $2
+kernel map file: $3
+default install path: $4
+
+current path: $( pwd )
"
#B="/mnt/misc/boot"
KERNEL_MAPFILE=$3
DEF_INSTALL_PATH=$4
+SIMULATE='n'
+
was_mounted='y'
# check we have a valid kernel target directory
fi
i=0
+for f in $( ls -1 -tr "${BOOT_DIR}/config-${KERNEL_VERSION}"* 2>/dev/null || true ) ; do
+ if [[ ! -f "${f}" ]] ; then
+ break
+ fi
+ j=$( echo "${f}" | sed -e "s|${BOOT_DIR}/config-${KERNEL_VERSION}-||" )
+ if [[ -z "${j}" ]] ; then
+ continue
+ fi
+ i=$(( $j + 0 ))
+done
TARGET_CONFIG_BOOT=$( printf "%s/config-%s-%02d" "${BOOT_DIR}" "${KERNEL_VERSION}" "${i}" )
while [[ -f "${TARGET_CONFIG_BOOT}" ]] ; do
i=$(( i + 1 ))
done
echo " CP ${DOT_CONFIG} -> ${TARGET_CONFIG_BOOT}"
-cp -p "${DOT_CONFIG}" "${TARGET_CONFIG_BOOT}"
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " cp -p \"${DOT_CONFIG}\" \"${TARGET_CONFIG_BOOT}\""
+else
+ cp -p "${DOT_CONFIG}" "${TARGET_CONFIG_BOOT}"
+fi
if [[ ! -d /etc/kernel-config ]] ; then
echo " MKDIR /etc/kernel-config"
fi
i=0
+for f in $( ls -1 -tr "/etc/kernel-config/config-${KERNEL_VERSION}"* 2>/dev/null || true ) ; do
+ if [[ ! -f "${f}" ]] ; then
+ break
+ fi
+ j=$( echo "${f}" | sed -e "s|/etc/kernel-config/config-${KERNEL_VERSION}-||" )
+ if [[ -z "${j}" ]] ; then
+ continue
+ fi
+ i=$(( $j + 0 ))
+done
TARGET_CONFIG_ETC=$( printf "%s/config-%s-%02d" "/etc/kernel-config" "${KERNEL_VERSION}" "${i}" )
while [[ -f "${TARGET_CONFIG_ETC}" ]] ; do
i=$(( i + 1 ))
done
echo " CP ${DOT_CONFIG} -> ${TARGET_CONFIG_ETC}"
-cp -p "${DOT_CONFIG}" "${TARGET_CONFIG_ETC}"
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " cp -p \"${DOT_CONFIG}\" \"${TARGET_CONFIG_ETC}\""
+else
+ cp -p "${DOT_CONFIG}" "${TARGET_CONFIG_ETC}"
+fi
if [[ -n "$KBUILD_OUTPUT_PREFIX" && -d $KBUILD_OUTPUT_PREFIX/$KERNEL_VERSION ]] ; then
LINUX_SRC_DIR=$KBUILD_OUTPUT_PREFIX/$KERNEL_VERSION
fi
i=0
+for f in $( ls -1 -tr "${BOOT_DIR}/bzImage-${KERNEL_VERSION}"* 2>/dev/null || true ) ; do
+ if [[ ! -f "${f}" ]] ; then
+ break
+ fi
+ j=$( echo "${f}" | sed -e "s|${BOOT_DIR}/bzImage-${KERNEL_VERSION}-||" )
+ if [[ -z "${j}" ]] ; then
+ continue
+ fi
+ i=$(( $j + 0 ))
+done
image_version=$( printf "%s-%02d" "${KERNEL_VERSION}" "${i}" )
bzimage_inst="${BOOT_DIR}/bzImage-${image_version}"
kernel_inst="${BOOT_DIR}/kernel-${image_version}"
test -f $KERNEL_MAPFILE || exit 1
fi
-cp -p $LINUX_SRC_DIR$EX/$KERNEL_IMAGE "${bzimage_inst}"
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " cp -p \"${LINUX_SRC_DIR}${EX}/${KERNEL_IMAGE}\" \"${bzimage_inst}\""
+else
+ cp -p "${LINUX_SRC_DIR}${EX}/${KERNEL_IMAGE}" "${bzimage_inst}"
+fi
echo " LN ${bzimage_inst} -> ${kernel_inst}"
-ln "${bzimage_inst}" "${kernel_inst}"
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " ln \"${bzimage_inst}\" \"${kernel_inst}\""
+else
+ ln "${bzimage_inst}" "${kernel_inst}"
+fi
echo " INSTALL ${mapfile_inst}"
-cp -p $KERNEL_MAPFILE "${mapfile_inst}"
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " cp -p \"${KERNEL_MAPFILE}\" \"${mapfile_inst}\""
+else
+ cp -p "${KERNEL_MAPFILE}" "${mapfile_inst}"
+fi
case $KERNEL_VERSION in
*-gentoo*)
if [[ -L $BOOT_DIR/bzImage${TARG_CUR} ]] ; then
IMG_LAST=$(readlink $BOOT_DIR/bzImage${TARG_CUR})
echo " LN $BOOT_DIR/bzImage${TARG_LAST}"
- ln -sf ${IMG_LAST} $BOOT_DIR/bzImage${TARG_LAST}
+ if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " ln -sf ${IMG_LAST} $BOOT_DIR/bzImage${TARG_LAST}"
+ else
+ ln -sf ${IMG_LAST} $BOOT_DIR/bzImage${TARG_LAST}
+ fi
fi
echo " LN $BOOT_DIR/bzImage${TARG_CUR}"
-ln -sf "bzImage-${image_version}" $BOOT_DIR/bzImage${TARG_CUR}
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " ln -sf \"bzImage-${image_version}\" $BOOT_DIR/bzImage${TARG_CUR}"
+else
+ ln -sf "bzImage-${image_version}" $BOOT_DIR/bzImage${TARG_CUR}
+fi
if [[ -L $BOOT_DIR/System${TARG_CUR}.map ]] ; then
- IMG_LAST=$(readlink $BOOT_DIR/System${TARG_CUR}.map)
+ SYSTEM_MAP_LAST=$(readlink $BOOT_DIR/System${TARG_CUR}.map)
echo " LN $BOOT_DIR/System${TARG_LAST}.map"
- ln -sf $IMG_LAST $BOOT_DIR/System${TARG_LAST}.map
+ if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " ln -sf ${SYSTEM_MAP_LAST} $BOOT_DIR/System${TARG_LAST}.map"
+ else
+ ln -sf $SYSTEM_MAP_LAST $BOOT_DIR/System${TARG_LAST}.map
+ fi
fi
echo " LN $BOOT_DIR/System${TARG_CUR}.map"
-ln -sf "System.map-${image_version}" $BOOT_DIR/System${TARG_CUR}.map
+if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " ln -sf \"System.map-${image_version}\" $BOOT_DIR/Sytem${TARG_CUR}.map"
+else
+ ln -sf "System.map-${image_version}" $BOOT_DIR/System${TARG_CUR}.map
+fi
+
+if [[ -x "/usr/bin/genkernel" && -f "/etc/kernel-config/do-genkernel" ]] ; then
+ initrd_src=$( printf "initramfs-genkernel-x86_64-%s" "${KERNEL_VERSION}" )
+ initrd_tgt="initramfs-genkernel-x86_64-${image_version}"
+ echo " INITRD ${initrd_src}"
+ if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " /usr/bin/genkernel --kerneldir=. --install initramfs"
+ else
+ /usr/bin/genkernel --kerneldir=. --install initramfs || exit $?
+ fi
+ if [[ "${SIMULATE}" != "y" && ! -f "$BOOT_DIR/${initrd_src}" ]] ; then
+ echo "File '$BOOT_DIR/${initrd_src}' not found." >&2
+ exit 6
+ fi
+ echo " MV ${initrd_src} -> ${initrd_tgt}"
+ if [[ "${SIMULATE}" == "y" ]] ; then
+ echo " mv -i \"$BOOT_DIR/${initrd_src}\" \"$BOOT_DIR/${initrd_tgt}\""
+ else
+ mv -i "$BOOT_DIR/${initrd_src}" "$BOOT_DIR/${initrd_tgt}" </dev/null || exit $?
+ fi
+fi
if [ "${was_mounted}" = "n" ] ; then
echo " UMOUNT ${BOOT_DIR}"
- umount ${BOOT_DIR}
+ echo " Don't forget un unmount '${BOOT_DIR}' manually!"
fi
# vim: ts=4 expandtab