fix make error log

This commit is contained in:
Ing 2024-03-12 07:37:20 +08:00
parent 2638ea3e5a
commit eae8595072
6 changed files with 93 additions and 80 deletions

View File

@ -51,6 +51,7 @@ function checkAddonExist() {
# Return ERROR if not installed # Return ERROR if not installed
function installAddon() { function installAddon() {
if [ -z "${1}" ]; then if [ -z "${1}" ]; then
echo "ERROR: installAddon: Addon not defined"
return 1 return 1
fi fi
local ADDON="${1}" local ADDON="${1}"
@ -58,16 +59,25 @@ function installAddon() {
local HAS_FILES=0 local HAS_FILES=0
# First check generic files # First check generic files
if [ -f "${ADDONS_PATH}/${ADDON}/all.tgz" ]; then 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 HAS_FILES=1
fi fi
# Now check specific platform files # Now check specific platform files
if [ -f "${ADDONS_PATH}/${ADDON}/${2}-${3}.tgz" ]; then 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 HAS_FILES=1
fi fi
# If has files to copy, copy it, else return error # 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}" cp -f "${TMP_PATH}/${ADDON}/install.sh" "${RAMDISK_PATH}/addons/${ADDON}.sh" 2>"${LOG_FILE}"
chmod +x "${RAMDISK_PATH}/addons/${ADDON}.sh" chmod +x "${RAMDISK_PATH}/addons/${ADDON}.sh"
[ -d ${TMP_PATH}/${ADDON}/root ] && (cp -rnf "${TMP_PATH}/${ADDON}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}") [ -d ${TMP_PATH}/${ADDON}/root ] && (cp -rnf "${TMP_PATH}/${ADDON}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}")

View File

@ -42,7 +42,7 @@ function installModules() {
local MLIST="${@}" local MLIST="${@}"
if [ -z "${PLATFORM}" -o -z "${KVER}" ]; then if [ -z "${PLATFORM}" -o -z "${KVER}" ]; then
echo "" echo "ERROR: installModules: Platform or Kernel Version not defined" >"${LOG_FILE}"
return 1 return 1
fi fi
# Unzip modules for temporary folder # Unzip modules for temporary folder
@ -50,28 +50,37 @@ function installModules() {
mkdir -p "${TMP_PATH}/modules" mkdir -p "${TMP_PATH}/modules"
local KERNEL="$(readConfigKey "kernel" "${USER_CONFIG_FILE}")" local KERNEL="$(readConfigKey "kernel" "${USER_CONFIG_FILE}")"
if [ "${KERNEL}" = "custom" ]; then 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 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 fi
if [ $? -ne 0 ]; then
return 1
fi
local ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" local ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")"
for F in $(ls "${TMP_PATH}/modules/"*.ko 2>/dev/null); do for F in $(ls "${TMP_PATH}/modules/"*.ko 2>/dev/null); do
local M=$(basename ${F}) local M=$(basename ${F})
[ "${ODP}" = "true" -a -f "${RAMDISK_PATH}/usr/lib/modules/${M}" ] && continue [ "${ODP}" = "true" -a -f "${RAMDISK_PATH}/usr/lib/modules/${M}" ] && continue
if echo "${MLIST}" | grep -wq "${M:0:-3}"; then 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 else
rm -f "${RAMDISK_PATH}/usr/lib/modules/${M}" rm -f "${RAMDISK_PATH}/usr/lib/modules/${M}" 2>"${LOG_FILE}"
fi fi
done done
mkdir -p "${RAMDISK_PATH}/usr/lib/firmware" mkdir -p "${RAMDISK_PATH}/usr/lib/firmware"
if [ "${KERNEL}" = "custom" ]; then 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 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 fi
if [ $? -ne 0 ]; then
return 1
fi
# Clean # Clean
rm -rf "${TMP_PATH}/modules" rm -rf "${TMP_PATH}/modules"
return 0
} }
############################################################################### ###############################################################################

View File

@ -366,6 +366,7 @@ function ParsePat() {
--yesno "${MSG}" 0 0 --yesno "${MSG}" 0 0
[ $? -ne 0 ] && return [ $? -ne 0 ] && return
fi fi
mkdir -p "${TMP_PATH}/pats"
PAT_PATH="" PAT_PATH=""
ITEMS="$(ls ${TMP_PATH}/pats/*.pat 2>/dev/null)" ITEMS="$(ls ${TMP_PATH}/pats/*.pat 2>/dev/null)"
if [ -z "${ITEMS}" ]; then 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 rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1
touch ${PART1_PATH}/.build touch ${PART1_PATH}/.build
break 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 --progressbox "$(TEXT "Making ...")" 20 100
if [ -f "${MKERR_FILE}" ]; then if [ -f "${MKERR_FILE}" ]; then
DIALOG --title "$(TEXT "Error")" \ DIALOG --title "$(TEXT "Error")" \
@ -1261,17 +1262,6 @@ function make() {
MKERR_FILE="${TMP_PATH}/makeerror.log" MKERR_FILE="${TMP_PATH}/makeerror.log"
rm -f "${MKERR_FILE}" rm -f "${MKERR_FILE}"
while true; do 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 if [ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ]; then
extractDsmFiles extractDsmFiles
@ -1296,7 +1286,7 @@ function make() {
rm -f "${MKERR_FILE}" rm -f "${MKERR_FILE}"
sleep 3 sleep 3
break 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 --progressbox "$(TEXT "Making ...")" 20 100
if [ -f "${MKERR_FILE}" ]; then if [ -f "${MKERR_FILE}" ]; then
DIALOG --title "$(TEXT "Error")" \ DIALOG --title "$(TEXT "Error")" \

View File

@ -9,7 +9,10 @@
set -o pipefail # Get exit code from process piped set -o pipefail # Get exit code from process piped
# Sanity check # 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" echo -n "Patching Ramdisk"
@ -73,7 +76,10 @@ KPRE="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kpre")"
RD_COMPRESSED="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].rd-compressed")" RD_COMPRESSED="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].rd-compressed")"
# Sanity check # 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 SYNOINFO
declare -A ADDONS declare -A ADDONS
@ -95,10 +101,10 @@ done <<<$(readConfigMap "modules" "${USER_CONFIG_FILE}")
# Patches (diff -Naru OLDFILE NEWFILE > xxx.patch) # Patches (diff -Naru OLDFILE NEWFILE > xxx.patch)
while read PE; do while read PE; do
RET=1 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 for PF in $(ls ${WORK_PATH}/patch/${PE} 2>/dev/null); do
echo -n "." echo -n "."
echo "Patching with ${PF}" >>"${LOG_FILE}" 2>&1 echo "Patching with ${PF}" >>"${LOG_FILE}"
( (
cd "${RAMDISK_PATH}" 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.
@ -106,16 +112,18 @@ while read PE; do
RET=$? RET=$?
[ ${RET} -eq 0 ] && break [ ${RET} -eq 0 ] && break
done done
[ ${RET} -ne 0 ] && dieLog [ ${RET} -ne 0 ] && exit 1
done <<<$(readModelArray "${MODEL}" "productvers.[${PRODUCTVER}].patch") done <<<$(readModelArray "${MODEL}" "productvers.[${PRODUCTVER}].patch")
# Patch /etc/synoinfo.conf # Patch /etc/synoinfo.conf
echo -n "." 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 # 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 # Patch /sbin/init.post
echo -n "." echo -n "."
@ -134,16 +142,17 @@ rm -f "${TMP_PATH}/rp.txt"
# Extract ck modules to ramdisk # Extract ck modules to ramdisk
echo -n "." echo -n "."
installModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" "${!MODULES[@]}" installModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" "${!MODULES[@]}" || exit 1
echo -n "." echo -n "."
# Copying fake modprobe # Copying fake modprobe
cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe" cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
# Copying LKM to /usr/lib/modules # 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 # Addons
echo -n "." echo -n "."
echo "Create addons.sh" >"${LOG_FILE}"
mkdir -p "${RAMDISK_PATH}/addons" mkdir -p "${RAMDISK_PATH}/addons"
echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh" echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh"
echo 'echo "addons.sh called with params ${@}"' >>"${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" echo "export KEYMAP=${KEYMAP}" >>"${RAMDISK_PATH}/addons/addons.sh"
chmod +x "${RAMDISK_PATH}/addons/addons.sh" chmod +x "${RAMDISK_PATH}/addons/addons.sh"
# Required addons: restore # Required addons: "revert" "misc" "eudev" "disks" "localrss" "wol"
installAddon "revert" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" # This order cannot be changed.
echo "/addons/revert.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog for ADDON in "revert" "misc" "eudev" "disks" "localrss" "wol"; do
PARAMS=""
# Required addons: misc if [ "${ADDON}" = "disks" ]; then
installAddon "misc" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" PARAMS=${HDDSORT}
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" [ -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}" fi
echo "/addons/localrss.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog installAddon "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" || exit 1
installAddon "wol" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1
echo "/addons/wol.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog done
# User addons # User addons
for ADDON in ${!ADDONS[@]}; do for ADDON in ${!ADDONS[@]}; do
PARAMS=${ADDONS[${ADDON}]} PARAMS=${ADDONS[${ADDON}]}
if ! installAddon "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}"; then installAddon "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" || exit 1
echo "ADDON ${ADDON} not found!" | tee -a "${LOG_FILE}" echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1
exit 1
fi
echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
done done
# Enable Telnet # Enable Telnet
echo "inetd" >>"${RAMDISK_PATH}/addons/addons.sh" echo "inetd" >>"${RAMDISK_PATH}/addons/addons.sh"
echo -n "."
echo "Modify files" >"${LOG_FILE}"
# Remove function from scripts # Remove function from scripts
[ "2" = "${BUILDNUM:0:1}" ] && sed -i 's/function //g' $(find "${RAMDISK_PATH}/addons/" -type f -name "*.sh") [ "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 elif [ -d "${F}" ]; then
SIZE="$(du -sm "${F}" 2>/dev/null | awk '{print $1}')" SIZE="$(du -sm "${F}" 2>/dev/null | awk '{print $1}')"
if [ ${SIZE:-0} -gt 4 ]; then 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 continue
fi fi
FD="$(dirname "${F}")" FD="$(dirname "${F}")"
@ -245,16 +246,16 @@ fi
# Call user patch scripts # Call user patch scripts
echo -n "." echo -n "."
for F in $(ls -1 ${SCRIPTS_PATH}/*.sh 2>/dev/null); do for F in $(ls -1 ${SCRIPTS_PATH}/*.sh 2>/dev/null); do
echo "Calling ${F}" >>"${LOG_FILE}" 2>&1 echo "Calling ${F}" >"${LOG_FILE}"
. "${F}" >>"${LOG_FILE}" 2>&1 || dieLog . "${F}" >>"${LOG_FILE}" 2>&1 || exit 1
done done
# Reassembly ramdisk # Reassembly ramdisk
echo -n "." echo -n "."
if [ "${RD_COMPRESSED}" == "true" ]; then 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 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 fi
# Clean # Clean

View File

@ -60,23 +60,23 @@ if [ ${KVER_MAJOR} -eq 4 ] || [ ${KVER_MAJOR} -eq 3 ]; then
# unknown 114460 # unknown 114460
#) 114570 #) 114570
#crc32 4 #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 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 >"${LOG_FILE}" 2>&1 || dieLog 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 >"${LOG_FILE}" 2>&1 || dieLog 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") 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 ${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 >"${LOG_FILE}" 2>&1 || dieLog size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append || exit 1
else else
# Kernel version 5.x # 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 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 >"${LOG_FILE}" 2>&1 || dieLog 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 >"${LOG_FILE}" 2>&1 || dieLog 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"` # 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 ${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 >"${LOG_FILE}" 2>&1 || dieLog size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append || exit 1
fi fi

View File

@ -7,7 +7,10 @@
set -o pipefail # Get exit code from process piped set -o pipefail # Get exit code from process piped
# Sanity check # 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" echo -n "Patching zImage"
@ -26,13 +29,13 @@ if [ "${KERNEL}" = "custom" ]; then
else else
echo -n "." echo -n "."
# Extract vmlinux # 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 "." echo -n "."
# Patch boot params and ramdisk check # 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 "." echo -n "."
# rebuild zImage # 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 fi
echo -n "." echo -n "."