From eae8595072d16277275d0f68857a3b8d1810792e Mon Sep 17 00:00:00 2001 From: Ing Date: Tue, 12 Mar 2024 07:37:20 +0800 Subject: [PATCH] fix make error log --- files/initrd/opt/rr/include/addons.sh | 16 ++++- files/initrd/opt/rr/include/modules.sh | 23 +++++-- files/initrd/opt/rr/menu.sh | 16 +---- files/initrd/opt/rr/ramdisk-patch.sh | 81 ++++++++++++----------- files/initrd/opt/rr/vmlinux-to-bzImage.sh | 26 ++++---- files/initrd/opt/rr/zimage-patch.sh | 11 +-- 6 files changed, 93 insertions(+), 80 deletions(-) diff --git a/files/initrd/opt/rr/include/addons.sh b/files/initrd/opt/rr/include/addons.sh index 10a88b05..5754dfff 100755 --- a/files/initrd/opt/rr/include/addons.sh +++ b/files/initrd/opt/rr/include/addons.sh @@ -51,6 +51,7 @@ function checkAddonExist() { # Return ERROR if not installed function installAddon() { if [ -z "${1}" ]; then + echo "ERROR: installAddon: Addon not defined" return 1 fi local ADDON="${1}" @@ -58,16 +59,25 @@ function installAddon() { local HAS_FILES=0 # First check generic files if [ -f "${ADDONS_PATH}/${ADDON}/all.tgz" ]; then - tar -zxf "${ADDONS_PATH}/${ADDON}/all.tgz" -C "${TMP_PATH}/${ADDON}" + tar -zxf "${ADDONS_PATH}/${ADDON}/all.tgz" -C "${TMP_PATH}/${ADDON}" 2>"${LOG_FILE}" + if [ $? -ne 0 ]; then + return 1 + fi HAS_FILES=1 fi # Now check specific platform files if [ -f "${ADDONS_PATH}/${ADDON}/${2}-${3}.tgz" ]; then - tar -zxf "${ADDONS_PATH}/${ADDON}/${2}-${3}.tgz" -C "${TMP_PATH}/${ADDON}" + tar -zxf "${ADDONS_PATH}/${ADDON}/${2}-${3}.tgz" -C "${TMP_PATH}/${ADDON}" 2>"${LOG_FILE}" + if [ $? -ne 0 ]; then + return 1 + fi HAS_FILES=1 fi # If has files to copy, copy it, else return error - [ ${HAS_FILES} -ne 1 ] && return 1 + if [ ${HAS_FILES} -ne 1 ]; then + echo "ERROR: installAddon: ${ADDON} addon not found" >"${LOG_FILE}" + return 1 + fi cp -f "${TMP_PATH}/${ADDON}/install.sh" "${RAMDISK_PATH}/addons/${ADDON}.sh" 2>"${LOG_FILE}" chmod +x "${RAMDISK_PATH}/addons/${ADDON}.sh" [ -d ${TMP_PATH}/${ADDON}/root ] && (cp -rnf "${TMP_PATH}/${ADDON}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}") diff --git a/files/initrd/opt/rr/include/modules.sh b/files/initrd/opt/rr/include/modules.sh index 786a7941..10bcad69 100755 --- a/files/initrd/opt/rr/include/modules.sh +++ b/files/initrd/opt/rr/include/modules.sh @@ -42,7 +42,7 @@ function installModules() { local MLIST="${@}" if [ -z "${PLATFORM}" -o -z "${KVER}" ]; then - echo "" + echo "ERROR: installModules: Platform or Kernel Version not defined" >"${LOG_FILE}" return 1 fi # Unzip modules for temporary folder @@ -50,28 +50,37 @@ function installModules() { mkdir -p "${TMP_PATH}/modules" local KERNEL="$(readConfigKey "kernel" "${USER_CONFIG_FILE}")" if [ "${KERNEL}" = "custom" ]; then - tar -zxf "${CKS_PATH}/modules-${PLATFORM}-${KVER}.tgz" -C "${TMP_PATH}/modules" + tar -zxf "${CKS_PATH}/modules-${PLATFORM}-${KVER}.tgz" -C "${TMP_PATH}/modules" 2>"${LOG_FILE}" else - tar -zxf "${MODULES_PATH}/${PLATFORM}-${KVER}.tgz" -C "${TMP_PATH}/modules" + tar -zxf "${MODULES_PATH}/${PLATFORM}-${KVER}.tgz" -C "${TMP_PATH}/modules" 2>"${LOG_FILE}" fi + if [ $? -ne 0 ]; then + return 1 + fi + local ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" for F in $(ls "${TMP_PATH}/modules/"*.ko 2>/dev/null); do local M=$(basename ${F}) [ "${ODP}" = "true" -a -f "${RAMDISK_PATH}/usr/lib/modules/${M}" ] && continue if echo "${MLIST}" | grep -wq "${M:0:-3}"; then - cp -f "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}" + cp -f "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}" 2>"${LOG_FILE}" else - rm -f "${RAMDISK_PATH}/usr/lib/modules/${M}" + rm -f "${RAMDISK_PATH}/usr/lib/modules/${M}" 2>"${LOG_FILE}" fi done mkdir -p "${RAMDISK_PATH}/usr/lib/firmware" if [ "${KERNEL}" = "custom" ]; then - tar -zxf "${CKS_PATH}/firmware.tgz" -C "${RAMDISK_PATH}/usr/lib/firmware" + tar -zxf "${CKS_PATH}/firmware.tgz" -C "${RAMDISK_PATH}/usr/lib/firmware" 2>"${LOG_FILE}" else - tar -zxf "${MODULES_PATH}/firmware.tgz" -C "${RAMDISK_PATH}/usr/lib/firmware" + tar -zxf "${MODULES_PATH}/firmware.tgz" -C "${RAMDISK_PATH}/usr/lib/firmware" 2>"${LOG_FILE}" fi + if [ $? -ne 0 ]; then + return 1 + fi + # Clean rm -rf "${TMP_PATH}/modules" + return 0 } ############################################################################### diff --git a/files/initrd/opt/rr/menu.sh b/files/initrd/opt/rr/menu.sh index 8bfe4e2f..3f663175 100755 --- a/files/initrd/opt/rr/menu.sh +++ b/files/initrd/opt/rr/menu.sh @@ -366,6 +366,7 @@ function ParsePat() { --yesno "${MSG}" 0 0 [ $? -ne 0 ] && return fi + mkdir -p "${TMP_PATH}/pats" PAT_PATH="" ITEMS="$(ls ${TMP_PATH}/pats/*.pat 2>/dev/null)" if [ -z "${ITEMS}" ]; then @@ -486,7 +487,7 @@ function ParsePat() { rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1 touch ${PART1_PATH}/.build break - done 2>&1 | DIALOG --title "$(TEXT "Main menu")" --cr-wrap --no-collapse \ + done 2>&1 | DIALOG --title "$(TEXT "Main menu")" \ --progressbox "$(TEXT "Making ...")" 20 100 if [ -f "${MKERR_FILE}" ]; then DIALOG --title "$(TEXT "Error")" \ @@ -1261,17 +1262,6 @@ function make() { MKERR_FILE="${TMP_PATH}/makeerror.log" rm -f "${MKERR_FILE}" while true; do - PLATFORM="$(readModelKey "${MODEL}" "platform")" - KVER="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kver")" - KPRE="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kpre")" - # Check if all addon exists - while IFS=': ' read ADDON PARAM; do - [ -z "${ADDON}" ] && continue - if ! checkAddonExist "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}"; then - echo -e "$(printf "$(TEXT "Addon %s not found!")" "${ADDON}")" >"${MKERR_FILE}" - break 2 - fi - done <<<$(readConfigMap "addons" "${USER_CONFIG_FILE}") if [ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ]; then extractDsmFiles @@ -1296,7 +1286,7 @@ function make() { rm -f "${MKERR_FILE}" sleep 3 break - done 2>&1 | DIALOG --title "$(TEXT "Main menu")" --cr-wrap --no-collapse \ + done 2>&1 | DIALOG --title "$(TEXT "Main menu")" \ --progressbox "$(TEXT "Making ...")" 20 100 if [ -f "${MKERR_FILE}" ]; then DIALOG --title "$(TEXT "Error")" \ diff --git a/files/initrd/opt/rr/ramdisk-patch.sh b/files/initrd/opt/rr/ramdisk-patch.sh index 4fb1a84e..05894775 100755 --- a/files/initrd/opt/rr/ramdisk-patch.sh +++ b/files/initrd/opt/rr/ramdisk-patch.sh @@ -9,7 +9,10 @@ set -o pipefail # Get exit code from process piped # Sanity check -[ -f "${ORI_RDGZ_FILE}" ] || (die "${ORI_RDGZ_FILE} not found!" | tee -a "${LOG_FILE}") +if [ ! -f "${ORI_RDGZ_FILE}" ]; then + echo "ERROR: ${ORI_RDGZ_FILE} not found!" >"${LOG_FILE}" + exit 1 +fi echo -n "Patching Ramdisk" @@ -73,7 +76,10 @@ KPRE="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kpre")" RD_COMPRESSED="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].rd-compressed")" # Sanity check -[ -z "${PLATFORM}" -o -z "${KVER}" ] && (die "ERROR: Configuration for model ${MODEL} and productversion ${PRODUCTVER} not found." | tee -a "${LOG_FILE}") +if [ -z "${PLATFORM}" -o -z "${KVER}" ]; then + echo "ERROR: Configuration for model ${MODEL} and productversion ${PRODUCTVER} not found." >"${LOG_FILE}" + exit 1 +fi declare -A SYNOINFO declare -A ADDONS @@ -95,27 +101,29 @@ done <<<$(readConfigMap "modules" "${USER_CONFIG_FILE}") # Patches (diff -Naru OLDFILE NEWFILE > xxx.patch) while read PE; do RET=1 - echo "Patching with ${PE}" >"${LOG_FILE}" 2>&1 + echo "Patching with ${PE}" >"${LOG_FILE}" for PF in $(ls ${WORK_PATH}/patch/${PE} 2>/dev/null); do echo -n "." - echo "Patching with ${PF}" >>"${LOG_FILE}" 2>&1 + echo "Patching with ${PF}" >>"${LOG_FILE}" ( cd "${RAMDISK_PATH}" - busybox patch -p1 -i "${PF}" >>"${LOG_FILE}" 2>&1 # busybox patch and gun patch have different processing methods and parameters. + busybox patch -p1 -i "${PF}" >>"${LOG_FILE}" 2>&1 # busybox patch and gun patch have different processing methods and parameters. ) RET=$? [ ${RET} -eq 0 ] && break done - [ ${RET} -ne 0 ] && dieLog + [ ${RET} -ne 0 ] && exit 1 done <<<$(readModelArray "${MODEL}" "productvers.[${PRODUCTVER}].patch") # Patch /etc/synoinfo.conf echo -n "." -for KEY in ${!SYNOINFO[@]}; do - _set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog -done # Add serial number to synoinfo.conf, to help to recovery a installed DSM -_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog +echo "Set synoinfo SN" >"${LOG_FILE}" +_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >>"${LOG_FILE}" 2>&1 || exit 1 +for KEY in ${!SYNOINFO[@]}; do + echo "Set synoinfo ${KEY}" >>"${LOG_FILE}" + _set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >>"${LOG_FILE}" 2>&1 || exit 1 +done # Patch /sbin/init.post echo -n "." @@ -134,16 +142,17 @@ rm -f "${TMP_PATH}/rp.txt" # Extract ck modules to ramdisk echo -n "." -installModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" "${!MODULES[@]}" +installModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" "${!MODULES[@]}" || exit 1 echo -n "." # Copying fake modprobe cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe" # Copying LKM to /usr/lib/modules -gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" +gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" 2>"${LOG_FILE}" || exit 1 # Addons echo -n "." +echo "Create addons.sh" >"${LOG_FILE}" mkdir -p "${RAMDISK_PATH}/addons" echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh" echo 'echo "addons.sh called with params ${@}"' >>"${RAMDISK_PATH}/addons/addons.sh" @@ -158,38 +167,30 @@ echo "export LAYOUT=${LAYOUT}" >>"${RAMDISK_PATH}/addons/addons.sh" echo "export KEYMAP=${KEYMAP}" >>"${RAMDISK_PATH}/addons/addons.sh" chmod +x "${RAMDISK_PATH}/addons/addons.sh" -# Required addons: restore -installAddon "revert" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" -echo "/addons/revert.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog - -# Required addons: misc -installAddon "misc" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" -echo "/addons/misc.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog - -# Required addons: eudev, disks, localrss, wol -installAddon "eudev" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" -echo "/addons/eudev.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog -installAddon "disks" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" -echo "/addons/disks.sh \${1} ${HDDSORT} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog -[ -f "${USER_UP_PATH}/${MODEL}.dts" ] && cp -f "${USER_UP_PATH}/${MODEL}.dts" "${RAMDISK_PATH}/addons/model.dts" -installAddon "localrss" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" -echo "/addons/localrss.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog -installAddon "wol" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" -echo "/addons/wol.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog +# Required addons: "revert" "misc" "eudev" "disks" "localrss" "wol" +# This order cannot be changed. +for ADDON in "revert" "misc" "eudev" "disks" "localrss" "wol"; do + PARAMS="" + if [ "${ADDON}" = "disks" ]; then + PARAMS=${HDDSORT} + [ -f "${USER_UP_PATH}/${MODEL}.dts" ] && cp -f "${USER_UP_PATH}/${MODEL}.dts" "${RAMDISK_PATH}/addons/model.dts" + fi + installAddon "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" || exit 1 + echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1 +done # User addons for ADDON in ${!ADDONS[@]}; do PARAMS=${ADDONS[${ADDON}]} - if ! installAddon "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}"; then - echo "ADDON ${ADDON} not found!" | tee -a "${LOG_FILE}" - exit 1 - fi - echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog + installAddon "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" || exit 1 + echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1 done # Enable Telnet echo "inetd" >>"${RAMDISK_PATH}/addons/addons.sh" +echo -n "." +echo "Modify files" >"${LOG_FILE}" # Remove function from scripts [ "2" = "${BUILDNUM:0:1}" ] && sed -i 's/function //g' $(find "${RAMDISK_PATH}/addons/" -type f -name "*.sh") @@ -214,7 +215,7 @@ for F in "${USER_GRUB_CONFIG}" "${USER_CONFIG_FILE}" "${USER_LOCALE_FILE}" "${US elif [ -d "${F}" ]; then SIZE="$(du -sm "${F}" 2>/dev/null | awk '{print $1}')" if [ ${SIZE:-0} -gt 4 ]; then - echo "Backup of ${F} skipped, size is ${SIZE}MB" >>"${LOG_FILE}" 2>&1 + echo "Backup of ${F} skipped, size is ${SIZE}MB" >>"${LOG_FILE}" continue fi FD="$(dirname "${F}")" @@ -245,16 +246,16 @@ fi # Call user patch scripts echo -n "." for F in $(ls -1 ${SCRIPTS_PATH}/*.sh 2>/dev/null); do - echo "Calling ${F}" >>"${LOG_FILE}" 2>&1 - . "${F}" >>"${LOG_FILE}" 2>&1 || dieLog + echo "Calling ${F}" >"${LOG_FILE}" + . "${F}" >>"${LOG_FILE}" 2>&1 || exit 1 done # Reassembly ramdisk echo -n "." if [ "${RD_COMPRESSED}" == "true" ]; then - (cd "${RAMDISK_PATH}" && find . 2>/dev/null | cpio -o -H newc -R root:root | xz -9 --format=lzma >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog + (cd "${RAMDISK_PATH}" && find . 2>/dev/null | cpio -o -H newc -R root:root | xz -9 --format=lzma >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || exit 1 else - (cd "${RAMDISK_PATH}" && find . 2>/dev/null | cpio -o -H newc -R root:root >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog + (cd "${RAMDISK_PATH}" && find . 2>/dev/null | cpio -o -H newc -R root:root >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || exit 1 fi # Clean diff --git a/files/initrd/opt/rr/vmlinux-to-bzImage.sh b/files/initrd/opt/rr/vmlinux-to-bzImage.sh index 2e580b9e..3385a64e 100755 --- a/files/initrd/opt/rr/vmlinux-to-bzImage.sh +++ b/files/initrd/opt/rr/vmlinux-to-bzImage.sh @@ -60,23 +60,23 @@ if [ ${KVER_MAJOR} -eq 4 ] || [ ${KVER_MAJOR} -eq 3 ]; then # unknown 114460 #) 114570 #crc32 4 - gzip -dc "${WORK_PATH}/bzImage-template-v4.gz" >"${ZIMAGE_MOD}" + gzip -dc "${WORK_PATH}/bzImage-template-v4.gz" >"${ZIMAGE_MOD}" || exit 1 - dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog + dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc || exit 1 + file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc || exit 1 + file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc || exit 1 RUN_SIZE=$(objdump -h ${VMLINUX_MOD} | sh "${WORK_PATH}/calc_run_size.sh") - size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog + size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc|| exit 1 + size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append || exit 1 else # Kernel version 5.x - gzip -dc "${WORK_PATH}/bzImage-template-v5.gz" >"${ZIMAGE_MOD}" + gzip -dc "${WORK_PATH}/bzImage-template-v5.gz" >"${ZIMAGE_MOD}" || exit 1 - dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=14561 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34463421 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34479132 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - # RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${WORK_PATH}/calc_run_size.sh"` - # size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=34626904 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog - size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog + dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=14561 seek=1 conv=notrunc || exit 1 + file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34463421 seek=1 conv=notrunc || exit 1 + file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34479132 seek=1 conv=notrunc || exit 1 + # RUN_SIZE=$(objdump -h ${VMLINUX_MOD} | sh "${WORK_PATH}/calc_run_size.sh") + # size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=34626904 seek=1 conv=notrunc || exit 1 + size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append || exit 1 fi diff --git a/files/initrd/opt/rr/zimage-patch.sh b/files/initrd/opt/rr/zimage-patch.sh index 98540560..c34563ca 100755 --- a/files/initrd/opt/rr/zimage-patch.sh +++ b/files/initrd/opt/rr/zimage-patch.sh @@ -7,7 +7,10 @@ set -o pipefail # Get exit code from process piped # Sanity check -[ -f "${ORI_ZIMAGE_FILE}" ] || (die "${ORI_ZIMAGE_FILE} not found!" | tee -a "${LOG_FILE}") +if [ ! -f "${ORI_ZIMAGE_FILE}" ]; then + echo "ERROR: ${ORI_ZIMAGE_FILE} not found!" >"${LOG_FILE}" + exit 1 +fi echo -n "Patching zImage" @@ -26,13 +29,13 @@ if [ "${KERNEL}" = "custom" ]; then else echo -n "." # Extract vmlinux - ${WORK_PATH}/bzImage-to-vmlinux.sh "${ORI_ZIMAGE_FILE}" "${TMP_PATH}/vmlinux" >"${LOG_FILE}" 2>&1 || dieLog + ${WORK_PATH}/bzImage-to-vmlinux.sh "${ORI_ZIMAGE_FILE}" "${TMP_PATH}/vmlinux" >"${LOG_FILE}" 2>&1 || exit 1 echo -n "." # Patch boot params and ramdisk check - ${WORK_PATH}/kpatch "${TMP_PATH}/vmlinux" "${TMP_PATH}/vmlinux-mod" >"${LOG_FILE}" 2>&1 || dieLog + ${WORK_PATH}/kpatch "${TMP_PATH}/vmlinux" "${TMP_PATH}/vmlinux-mod" >"${LOG_FILE}" 2>&1 || exit 1 echo -n "." # rebuild zImage - ${WORK_PATH}/vmlinux-to-bzImage.sh "${TMP_PATH}/vmlinux-mod" "${MOD_ZIMAGE_FILE}" >"${LOG_FILE}" 2>&1 || dieLog + ${WORK_PATH}/vmlinux-to-bzImage.sh "${TMP_PATH}/vmlinux-mod" "${MOD_ZIMAGE_FILE}" >"${LOG_FILE}" 2>&1 || exit 1 fi echo -n "."