From cf081f178366698d02988fb6207cada1ef80a101 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Thu, 2 Nov 2023 21:01:31 +0100 Subject: [PATCH] arc/tree: update Signed-off-by: AuxXxilium --- files/initrd/opt/arc/arc.sh | 40 ++++++++++----------- files/initrd/opt/arc/boot.sh | 10 +----- files/initrd/opt/arc/include/addons.sh | 2 +- files/initrd/opt/arc/include/consts.sh | 40 ++++++++++----------- files/initrd/opt/arc/include/extensions.sh | 2 +- files/initrd/opt/arc/init.sh | 42 +--------------------- 6 files changed, 43 insertions(+), 93 deletions(-) diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index 776c72f5..7762bf64 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -27,9 +27,7 @@ else MACHINE="NATIVE" fi -# Get Loader Disk information -LOADER_DISK="$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1)" -LOADER_DEVICE_NAME=$(echo "${LOADER_DISK}" | sed 's|/dev/||') +# Get Loader Disk Bus BUS=$(getBus "${LOADER_DISK}") # Set Warning to 0 @@ -539,10 +537,10 @@ function make() { --msgbox "ERROR: No DSM Image found!" 0 0 fi # Copy DSM Files to Locations if DSM Files not found - cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}" - cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}" - cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}" - cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}" + cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${PART1_PATH}" + cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${PART1_PATH}" + cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${PART2_PATH}" + cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${PART2_PATH}" cp -f "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}" cp -f "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}" rm -rf "${UNTAR_PAT_PATH}" @@ -1312,7 +1310,7 @@ function backupMenu() { ) dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \ --infobox "Restore in progress..." 0 0 - umount "${BOOTLOADER_PATH}" "${SLPART_PATH}" "${CACHE_PATH}" + umount "${PART1_PATH}" "${PART2_PATH}" "${PART3_PATH}" if [ "${IFTOOL}" = "zip" ]; then unzip -p "${TMP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync elif [ "${IFTOOL}" = "gzip" ]; then @@ -1400,8 +1398,8 @@ function backupMenu() { writeConfigKey "productver" "${majorversion}.${minorversion}" "${USER_CONFIG_FILE}" PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")" if [ -n "${PRODUCTVER}" ]; then - cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}" - cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}" + cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${PART2_PATH}" + cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${PART2_PATH}" TEXT="Installation found:\nModel: ${MODEL}\nVersion: ${PRODUCTVER}" SN=$(_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf") if [ -n "${SN}" ]; then @@ -1509,7 +1507,7 @@ function backupMenu() { ) dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \ --infobox "Restore in progress..." 0 0 - umount "${BOOTLOADER_PATH}" "${SLPART_PATH}" "${CACHE_PATH}" + umount "${PART1_PATH}" "${PART2_PATH}" "${PART3_PATH}" if [ "${IFTOOL}" = "zip" ]; then unzip -p "${TMP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync elif [ "${IFTOOL}" = "gzip" ]; then @@ -1587,8 +1585,8 @@ function backupMenu() { writeConfigKey "productver" "${majorversion}.${minorversion}" "${USER_CONFIG_FILE}" PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")" if [ -n "${PRODUCTVER}" ]; then - cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}" - cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}" + cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${PART2_PATH}" + cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${PART2_PATH}" TEXT="Installation found:\nModel: ${MODEL}\nVersion: ${PRODUCTVER}" SN=$(_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf") if [ -n "${SN}" ]; then @@ -1701,7 +1699,7 @@ function updateMenu() { dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \ --infobox "Installing new Loader Image" 0 0 # Process complete update - umount "${BOOTLOADER_PATH}" "${SLPART_PATH}" "${CACHE_PATH}" + umount "${PART1_PATH}" "${PART2_PATH}" "${PART3_PATH}" dd if="${TMP_PATH}/arc.img" of=$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1) bs=1M conv=fsync # Ask for Boot rm -f "${TMP_PATH}/arc.img" @@ -1750,10 +1748,10 @@ function updateMenu() { unzip -oq "${TMP_PATH}/update.zip" -d "${TMP_PATH}/update" >/dev/null 2>&1 dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \ --infobox "Updating Loader Image" 0 0 - cp -f "${TMP_PATH}/update/bzImage" "${CACHE_PATH}/bzImage-arc" - cp -f "${TMP_PATH}/update/rootfs.cpio.xz" "${CACHE_PATH}/initrd-arc" - cp -f "${TMP_PATH}/update/ARC-VERSION" "${BOOTLOADER_PATH}/ARC-VERSION" - cp -f "${TMP_PATH}/update/grub.cfg" "${BOOTLOADER_PATH}/boot/grub/grub.cfg" + cp -f "${TMP_PATH}/update/bzImage" "${PART3_PATH}/bzImage-arc" + cp -f "${TMP_PATH}/update/rootfs.cpio.xz" "${PART3_PATH}/initrd-arc" + cp -f "${TMP_PATH}/update/ARC-VERSION" "${PART1_PATH}/ARC-VERSION" + cp -f "${TMP_PATH}/update/grub.cfg" "${PART1_PATH}/boot/grub/grub.cfg" rm -rf "${TMP_PATH}/update" rm -f "${TMP_PATH}/update.zip" dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \ @@ -2441,10 +2439,10 @@ function saveMenu() { --infobox "Saving ..." 0 0 RDXZ_PATH="${TMP_PATH}/rdxz_tmp" mkdir -p "${RDXZ_PATH}" - (cd "${RDXZ_PATH}"; xz -dc <"${CACHE_PATH}/initrd-arc" | cpio -idm) >/dev/null 2>&1 || true + (cd "${RDXZ_PATH}"; xz -dc <"${PART3_PATH}/initrd-arc" | cpio -idm) >/dev/null 2>&1 || true rm -rf "${RDXZ_PATH}/opt/arc" cp -Rf "/opt" "${RDXZ_PATH}" - (cd "${RDXZ_PATH}"; find . 2>/dev/null | cpio -o -H newc -R root:root | xz --check=crc32 >"${CACHE_PATH}/initrd-arc") || true + (cd "${RDXZ_PATH}"; find . 2>/dev/null | cpio -o -H newc -R root:root | xz --check=crc32 >"${PART3_PATH}/initrd-arc") || true rm -rf "${RDXZ_PATH}" dialog --backtitle "$(backtitle)" --colors --aspect 18 \ --msgbox "Save to Disk is complete." 0 0 @@ -2493,7 +2491,7 @@ function resetLoader() { # Clean old files rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" "${USER_CONFIG_FILE}" rm -rf "${UNTAR_PAT_PATH}" - rm -rf "${CACHE_PATH}/${MODEL}" + rm -rf "${PART3_PATH}/${MODEL}" fi if [ ! -f "${USER_CONFIG_FILE}" ]; then touch "${USER_CONFIG_FILE}" diff --git a/files/initrd/opt/arc/boot.sh b/files/initrd/opt/arc/boot.sh index 4992deec..4d8cdb39 100755 --- a/files/initrd/opt/arc/boot.sh +++ b/files/initrd/opt/arc/boot.sh @@ -5,15 +5,7 @@ set -e . ${ARC_PATH}/include/functions.sh -# Wait kernel enumerate the disks -CNT=3 -while true; do - [ ${CNT} -eq 0 ] && break - LOADER_DISK="$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1)" - [ -n "${LOADER_DISK}" ] && break - CNT=$((${CNT} - 1)) - sleep 1 -done +# Get Loader Disk Bus BUS=$(getBus "${LOADER_DISK}") # Check if machine has EFI diff --git a/files/initrd/opt/arc/include/addons.sh b/files/initrd/opt/arc/include/addons.sh index 92f107fc..864682d6 100755 --- a/files/initrd/opt/arc/include/addons.sh +++ b/files/initrd/opt/arc/include/addons.sh @@ -86,7 +86,7 @@ function untarAddon() { ############################################################################### # Detect if has new local plugins to install/reinstall function updateAddons() { - for F in $(ls ${CACHE_PATH}/*.addon 2>/dev/null); do + for F in $(ls ${PART3_PATH}/*.addon 2>/dev/null); do ADDON=$(basename "${F}" | sed 's|.addon||') rm -rf "${ADDONS_PATH}/${ADDON:?}" mkdir -p "${ADDONS_PATH}/${ADDON}" diff --git a/files/initrd/opt/arc/include/consts.sh b/files/initrd/opt/arc/include/consts.sh index 799e239c..39166ec6 100755 --- a/files/initrd/opt/arc/include/consts.sh +++ b/files/initrd/opt/arc/include/consts.sh @@ -3,9 +3,9 @@ ARC_VERSION="23.1.1" ARC_TITLE="Arc ${ARC_VERSION}" # Define paths -BOOTLOADER_PATH="/mnt/p1" -SLPART_PATH="/mnt/p2" -CACHE_PATH="/mnt/p3" +PART1_PATH="/mnt/p1" +PART2_PATH="/mnt/p2" +PART3_PATH="/mnt/p3" DSMROOT_PATH="/mnt/dsmroot" TMP_PATH="/tmp" @@ -13,26 +13,26 @@ UNTAR_PAT_PATH="${TMP_PATH}/DSM" RAMDISK_PATH="${TMP_PATH}/ramdisk" LOG_FILE="${TMP_PATH}/log.txt" -USER_CONFIG_FILE="${BOOTLOADER_PATH}/user-config.yml" -GRUB_PATH="${BOOTLOADER_PATH}/boot/grub" +USER_CONFIG_FILE="${PART1_PATH}/user-config.yml" +GRUB_PATH="${PART1_PATH}/boot/grub" -ORI_ZIMAGE_FILE="${SLPART_PATH}/zImage" -ORI_RDGZ_FILE="${SLPART_PATH}/rd.gz" +ORI_ZIMAGE_FILE="${PART2_PATH}/zImage" +ORI_RDGZ_FILE="${PART2_PATH}/rd.gz" -ARC_BZIMAGE_FILE="${CACHE_PATH}/bzImage-arc" -ARC_RAMDISK_FILE="${CACHE_PATH}/initrd-arc" -MOD_ZIMAGE_FILE="${CACHE_PATH}/zImage-dsm" -MOD_RDGZ_FILE="${CACHE_PATH}/initrd-dsm" +ARC_BZIMAGE_FILE="${PART3_PATH}/bzImage-arc" +ARC_RAMDISK_FILE="${PART3_PATH}/initrd-arc" +MOD_ZIMAGE_FILE="${PART3_PATH}/zImage-dsm" +MOD_RDGZ_FILE="${PART3_PATH}/initrd-dsm" -ADDONS_PATH="${CACHE_PATH}/addons" -EXTENSIONS_PATH="${CACHE_PATH}/extensions" -MODULES_PATH="${CACHE_PATH}/modules" -MODEL_CONFIG_PATH="${CACHE_PATH}/configs" -PATCH_PATH="${CACHE_PATH}/patches" -LKM_PATH="${CACHE_PATH}/lkms" -USER_UP_PATH="${CACHE_PATH}/users" -BACKUPDIR="${CACHE_PATH}/backup" +ADDONS_PATH="${PART3_PATH}/addons" +EXTENSIONS_PATH="${PART3_PATH}/extensions" +MODULES_PATH="${PART3_PATH}/modules" +MODEL_CONFIG_PATH="${PART3_PATH}/configs" +PATCH_PATH="${PART3_PATH}/patches" +LKM_PATH="${PART3_PATH}/lkms" +USER_UP_PATH="${PART3_PATH}/users" +BACKUPDIR="${PART3_PATH}/backup" BB_USER_CONFIG_FILE="${BACKUPDIR}/user-config.yml" -EXTRACTOR_PATH="${CACHE_PATH}/extractor" +EXTRACTOR_PATH="${PART3_PATH}/extractor" EXTRACTOR_BIN="syno_extract_system_patch" \ No newline at end of file diff --git a/files/initrd/opt/arc/include/extensions.sh b/files/initrd/opt/arc/include/extensions.sh index be4b6f7e..86670541 100755 --- a/files/initrd/opt/arc/include/extensions.sh +++ b/files/initrd/opt/arc/include/extensions.sh @@ -82,7 +82,7 @@ function untarExtension() { ############################################################################### # Detect if has new local plugins to install/reinstall function updateExtensions() { - for F in $(ls ${CACHE_PATH}/*.extension 2>/dev/null); do + for F in $(ls ${PART3_PATH}/*.extension 2>/dev/null); do EXTENSION=$(basename "${F}" | sed 's|.extension||') rm -rf "${EXTENSIONS_PATH}/${EXTENSION:?}" mkdir -p "${EXTENSIONS_PATH}/${EXTENSION}" diff --git a/files/initrd/opt/arc/init.sh b/files/initrd/opt/arc/init.sh index 06364988..8ced2dfb 100755 --- a/files/initrd/opt/arc/init.sh +++ b/files/initrd/opt/arc/init.sh @@ -5,34 +5,7 @@ set -e . ${ARC_PATH}/include/functions.sh -# Wait kernel enumerate the disks -CNT=3 -while true; do - [ ${CNT} -eq 0 ] && break - LOADER_DISK="$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1)" - [ -n "${LOADER_DISK}" ] && break - CNT=$((${CNT} - 1)) - sleep 1 -done - -[ -z "${LOADER_DISK}" ] && die "Loader disk not found!" -NUM_PARTITIONS=$(blkid | grep "${LOADER_DISK}[0-9]\+" | cut -d: -f1 | wc -l) -[ ${NUM_PARTITIONS} -lt 3 ] && die "Loader disk seems to be damaged!" -[ ${NUM_PARTITIONS} -gt 3 ] && die "There are multiple loader disks, please insert only one loader disk!" - -# Check partitions and ignore errors -fsck.vfat -aw ${LOADER_DISK}1 >/dev/null 2>&1 || true -fsck.ext2 -p ${LOADER_DISK}2 >/dev/null 2>&1 || true -fsck.ext4 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true -# Make folders to mount partitions -mkdir -p ${BOOTLOADER_PATH} -mkdir -p ${SLPART_PATH} -mkdir -p ${CACHE_PATH} -mkdir -p ${DSMROOT_PATH} -# Mount the partitions -mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}" -mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}" -mount ${LOADER_DISK}3 ${CACHE_PATH} || die "Can't mount ${CACHE_PATH}" +[ -z "${LOADER_DISK}" ] && die "Loader Disk not found!" # Shows title clear @@ -43,19 +16,6 @@ printf "\033[1;30m%*s\033[A\n" ${COLUMNS} "" printf "\033[1;34m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}" printf "\033[1;30m%*s\033[0m\n" ${COLUMNS} "" -# Move/link SSH machine keys to/from cache volume -[ ! -d "${PART3_PATH}/ssh" ] && cp -R "/etc/ssh" "${PART3_PATH}/ssh" -rm -rf "/etc/ssh" -ln -s "${PART3_PATH}/ssh" "/etc/ssh" - -# Link bash history to cache volume -rm -rf ~/.bash_history -ln -s "${PART3_PATH}/.bash_history" ~/.bash_history -touch ~/.bash_history -if ! grep -q "arc.sh" ~/.bash_history; then - echo "arc.sh " >>~/.bash_history -fi - # If user config file not exists, initialize it if [ ! -f "${USER_CONFIG_FILE}" ]; then touch "${USER_CONFIG_FILE}"