diff options
Diffstat (limited to 'remote/setup_target')
| -rwxr-xr-x | remote/setup_target | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/remote/setup_target b/remote/setup_target index 1638f392..804f43bc 100755 --- a/remote/setup_target +++ b/remote/setup_target @@ -227,6 +227,26 @@ generate_target() { pinfo "Activated modules in '${TARGET}':" pinfo "\t$(echo ${MODULES})" + # we need a bit of special logic for kernel specifically + # to check if the built version is corresponding to the + # current kernel version. If not we had a kernel update + # and need to ask the user what to do + if [[ "$MODULES" == *kernel* ]]; then + # if so, check what kernels have been built + if [ -e "${MODULES_DIR}/kernel/ksrc/KVERSION" ]; then + local BUILT_KERNEL_VERSION=$(cat "${MODULES_DIR}/kernel/ksrc/KVERSION") + if [[ "${BUILT_KERNEL_VERSION}" != "${KERNEL_CURRENT_VERSION}" ]]; then + pinfo "The built kernel (${BUILT_KERNEL_VERSION}) is older than the running one (${KERNEL_CURRENT_VERSION})!" + # cleaning the module is enough as it forces to rebuild. + [[ "${AUTO_UPDATE_KERNEL}" == 1 ]] && pinfo "Auto-Udpate Kernel..." && clean_kernel_module --force + fi + else + # KVERSION is not found. + pdebug "KVERSION not found under remote/modules/kernel/ksrc/KVERSION" + pdebug "Ignoring. If errors arise, either write your KVERSION manually or clean the kernel." + fi + fi + # copy basic libs pinfo "Copying libc and ld-linux used by ${SHELL}" tarcopy "$(list_basic_libs)" "${TARGET_BUILD_DIR}" @@ -255,11 +275,6 @@ process_module() { pinfo ">>>>>>>>>>>>>>>>> Processing module [ $MODULE ]" TOOL_STR="[${MODULE}]" if [ -d "${MODULE_DIR}" ]; then - - #[ "x$DEBUG" != "x1" ] \ - # && echo "Logging to ${TOOL_DIR}/${TOOL}/stage32.log" \ - # && exec 6>&1 > ${TOOL_DIR}/${TOOL}/stage32.log - # TODO: Make above work with the new logging system (add function to logging.inc to switch logfile) cd "${MODULE_DIR}" || perror "Module dir '${MODULE_DIR}' seems to exist, but cd to it failed." pinfo "## Reading config" read_config @@ -299,10 +314,8 @@ process_module() { copy_static_data pinfo "## Post copy" post_copy - # reset pipes - #[ "x$DEBUG" != "x1" ] && exec 1>&6 6>&- - # TODO - calc_size #sets MODULE_BUILD_SIZE + # set MODULE_BUILD_SIZE + calc_size pinfo "Module completed. Total size: ${MODULE_BUILD_SIZE}" else pwarning "Module directory for '$MODULE' not found." @@ -310,10 +323,8 @@ process_module() { } post_process_target() { - local TOOL_STR="$TOOL_STR post_process_target:" - - #move systemd files from /lib to /etc/lib + # move systemd files from /lib to /etc/lib pinfo "move systemd files from /lib/systemd to /etc/systemd" if [ -d "${TARGET_BUILD_DIR}/lib/systemd" ]; then cd "${TARGET_BUILD_DIR}/lib" @@ -404,12 +415,17 @@ clean_module() { } clean_kernel_module() { + local CLEAN=0 + if [ "x$1" == "x--force" ]; then + CLEAN=1 + else + pinfo "It will take a long time to rebuild, are you sure? [y/N]" + read USER_INPUT + [ "x$USER_INPUT" == "xy" ] && CLEAN=1 + fi + pinfo "Cleaning kernel module (including sources and compiled stuff)." - pinfo "It will take a long time to rebuild, are you sure? [y/N]" - read USER_INPUT - if [ "x$USER_INPUT" == "xy" ]; then - pinfo "Confirmed, going on..." - # clean kernel module + if [[ $CLEAN == 1 ]]; then cd "${TARGET_DIR}/kernel" || perror "Could not cd to ${TARGET_DIR}/kernel" if [ -e build ]; then rm -rf build || perror "Could not delete ${TARGET_DIR}/kernel/build" |
