diff --git a/files/board/arpl/overlayfs/opt/arpl/zImage_template.gz b/files/board/arpl/overlayfs/opt/arpl/bzImage-template-v4.gz similarity index 100% rename from files/board/arpl/overlayfs/opt/arpl/zImage_template.gz rename to files/board/arpl/overlayfs/opt/arpl/bzImage-template-v4.gz diff --git a/files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz b/files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz new file mode 100644 index 00000000..bfb0c0a6 Binary files /dev/null and b/files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz differ diff --git a/files/board/arpl/overlayfs/opt/arpl/menu.sh b/files/board/arpl/overlayfs/opt/arpl/menu.sh index 523d386e..ee7e09eb 100755 --- a/files/board/arpl/overlayfs/opt/arpl/menu.sh +++ b/files/board/arpl/overlayfs/opt/arpl/menu.sh @@ -1187,9 +1187,9 @@ while true; do s) serialMenu; NEXT="a" ;; a) addonMenu; NEXT="x" ;; x) cmdlineMenu; NEXT="i" ;; - i) synoinfoMenu; NEXT="d" ;; - d) make; NEXT="v" ;; - v) advancedMenu; NEXT="b" ;; + i) synoinfoMenu; NEXT="v" ;; + v) advancedMenu; NEXT="d" ;; + d) make; NEXT="b" ;; b) boot ;; k) keymapMenu ;; c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \ diff --git a/files/board/arpl/overlayfs/opt/arpl/vmlinux-to-bzImage.sh b/files/board/arpl/overlayfs/opt/arpl/vmlinux-to-bzImage.sh index d1b463b7..6b1bd679 100755 --- a/files/board/arpl/overlayfs/opt/arpl/vmlinux-to-bzImage.sh +++ b/files/board/arpl/overlayfs/opt/arpl/vmlinux-to-bzImage.sh @@ -1,21 +1,11 @@ #!/bin/sh +# Based on code and ideas from @jumkey . /opt/arpl/include/functions.sh -#zImage_head 16494 -#payload( -# vmlinux.bin x -# padding 0xf00000-x -# vmlinux.bin size 4 -#) 0xf00004 -#zImage_tail( -# unknown 72 -# run_size 4 -# unknown 30 -# vmlinux.bin size 4 -# unknown 114460 -#) 114570 -#crc32 4 +MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`" +BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`" +KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`" # Adapted from: scripts/Makefile.lib # Usage: size_append FILE [FILE2] [FILEn]... @@ -51,12 +41,41 @@ size_le () { SCRIPT_DIR=`dirname $0` VMLINUX_MOD=${1} ZIMAGE_MOD=${2} -gzip -cd "${SCRIPT_DIR}/zImage_template.gz" > "${ZIMAGE_MOD}" +if [ ${KVER:0:1} -eq 4 ]; then + # Kernel version 4.x + #zImage_head 16494 + #payload( + # vmlinux.bin x + # padding 0xf00000-x + # vmlinux.bin size 4 + #) 0xf00004 + #zImage_tail( + # unknown 72 + # run_size 4 + # unknown 30 + # vmlinux.bin size 4 + # unknown 114460 + #) 114570 + #crc32 4 + gzip -cd "${SCRIPT_DIR}/bzImage-template-v4.gz" > "${ZIMAGE_MOD}" -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 + 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 -RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"` -size_le $RUN_SIZE | dd of=$ZIMAGE_MOD bs=15745210 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 -size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog + RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/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 +else + # Kernel version 5.x + gzip -cd "${SCRIPT_DIR}/bzImage-template-v5.gz" > "${ZIMAGE_MOD}" + + lzma -9c ${VMLINUX_MOD} > ${TMP_PATH}/vmlinux-mod.lzma + dd if="${TMP_PATH}/vmlinux-mod.lzma" of="${ZIMAGE_MOD}" bs=15377 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog + file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=8377991 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog + file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=8420412 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog + + RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"` + size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=8420408 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 +fi