From dc51577bbb3e82bbc948bd41d9af09befbd58175 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Mon, 23 Dec 2024 17:56:55 +0100 Subject: [PATCH 1/3] arc-functions: add unmount to mount dsm pool feature Signed-off-by: AuxXxilium --- files/initrd/opt/arc/arc-functions.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/files/initrd/opt/arc/arc-functions.sh b/files/initrd/opt/arc/arc-functions.sh index b28355af..62fe16c8 100755 --- a/files/initrd/opt/arc/arc-functions.sh +++ b/files/initrd/opt/arc/arc-functions.sh @@ -2204,9 +2204,18 @@ function mountDSM() { umount "${I}" 2>/dev/null mount ${I} "/mnt/DSM/${NAME}" -o ro done - MSG="Storage pools are mounted under /mnt/DSM.\nPlease check them via ${IPCON}:7304." + MSG="Storage pools are mounted under /mnt/DSM.\nPlease check them via ${IPCON}:7304.\nIf you proceed, DSM Pool will be unmounted!" dialog --backtitle "$(backtitle)" --title "Mount DSM Pool" \ --msgbox "${MSG}" 7 50 + if [ -n "${VOLS}" ]; then + dialog --backtitle "$(backtitle)" --title "Mount DSM Pool" \ + --yesno "Unmount all storage pools?" 5 30 + [ $? -ne 0 ] && return + for I in ${VOLS}; do + umount "${I}" 2>/dev/null + done + rm -rf /mnt/DSM + fi return } From 1c71b690c4b1f577b6379e524e51d129fd638b1f Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Mon, 23 Dec 2024 21:13:27 +0100 Subject: [PATCH 2/3] arc: add failsafe for arc config mode Signed-off-by: AuxXxilium --- files/initrd/opt/arc/arc.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index f9504386..58f0f893 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -820,7 +820,7 @@ elif [ "${ARCMODE}" = "automated" ]; then else make fi -else +elif [ "${ARCMODE}" = "config" ]; then [ "${CONFDONE}" = "true" ] && NEXT="2" || NEXT="1" [ "${BUILDDONE}" = "true" ] && NEXT="3" || NEXT="1" while true; do @@ -1099,6 +1099,8 @@ else esac done clear +else + exec reboot fi # Inform user From 96afe6dd293adb21f2fea855652b25399e73d066 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Tue, 24 Dec 2024 01:37:47 +0100 Subject: [PATCH 3/3] tree: fix logic Signed-off-by: AuxXxilium --- files/initrd/opt/arc/arc.sh | 40 +++++++++++++------------- files/initrd/opt/arc/include/addons.sh | 1 + 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index 58f0f893..ff12c38e 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -256,9 +256,7 @@ function arcVersion() { writeConfigKey "smallnum" "" "${USER_CONFIG_FILE}" writeConfigKey "zimage-hash" "" "${USER_CONFIG_FILE}" writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}" - writeConfigKey "arc.confdone" "false" "${USER_CONFIG_FILE}" BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" - CONFDONE="$(readConfigKey "arc.confdone" "${USER_CONFIG_FILE}")" fi dialog --backtitle "$(backtitlep)" --title "Version" \ --infobox "Reading DSM Build..." 3 25 @@ -311,10 +309,12 @@ function arcVersion() { rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" >/dev/null 2>&1 || true rm -f "${USER_UP_PATH}/"*.tar >/dev/null 2>&1 || true fi - MSG="Do you want to try Automated Mode?\nIf yes, Loader will configure, build and boot DSM." - dialog --backtitle "$(backtitlep)" --colors --title "Automated Mode" \ - --yesno "${MSG}" 6 55 - [ $? -eq 0 ] && ARCMODE="automated" || ARCMODE="config" + if [ "${ONLYVERSION}" != "true" ]; then + MSG="Do you want to try Automated Mode?\nIf yes, Loader will configure, build and boot DSM." + dialog --backtitle "$(backtitlep)" --colors --title "Automated Mode" \ + --yesno "${MSG}" 6 55 + [ $? -eq 0 ] && ARCMODE="automated" || ARCMODE="config" + fi elif [ "${ARCMODE}" = "automated" ] || [ "${ARCRESTORE}" = "true" ]; then VALID="true" fi @@ -411,29 +411,29 @@ function arcPatch() { [ -n "${ARCCONF}" ] && writeConfigKey "arc.patch" "true" "${USER_CONFIG_FILE}" || writeConfigKey "arc.patch" "false" "${USER_CONFIG_FILE}" writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}" elif [ "${ARCMODE}" = "config" ]; then - dialog --clear --backtitle "$(backtitlep)" \ + ARCCONF="$(readConfigKey "${MODEL}.serial" "${S_FILE}")" + if [ -n "${ARCCONF}" ]; then + dialog --clear --backtitle "$(backtitlep)" \ --nocancel --title "SN/Mac Options"\ --menu "Choose an Option" 7 60 0 \ 1 "Use Arc Patch (AME, QC, Push Notify and more)" \ 2 "Use random SN/Mac (Reduced DSM Features)" \ 3 "Use my own SN/Mac (Be sure your Data is valid)" \ - 2>"${TMP_PATH}/resp" + 2>"${TMP_PATH}/resp" + else + dialog --clear --backtitle "$(backtitlep)" \ + --nocancel --title "SN/Mac Options"\ + --menu "Choose an Option" 7 60 0 \ + 2 "Use random SN/Mac (Reduced DSM Features)" \ + 3 "Use my own SN/Mac (Be sure your Data is valid)" \ + 2>"${TMP_PATH}/resp" + fi resp=$(cat ${TMP_PATH}/resp) [ -z "${resp}" ] && return 1 if [ ${resp} -eq 1 ]; then - ARCCONF="$(readConfigKey "${MODEL}.serial" "${S_FILE}")" - if [ -n "${ARCCONF}" ]; then - SN="$(generateSerial "${MODEL}" "true")" - writeConfigKey "arc.patch" "true" "${USER_CONFIG_FILE}" - else - dialog --backtitle "$(backtitlep)" --colors --title "Arc Patch" \ - --infobox "Arc Patch failed - Not registered HardwareID!" 3 50 - sleep 3 - SN="$(generateSerial "${MODEL}" "false")" - writeConfigKey "arc.patch" "false" "${USER_CONFIG_FILE}" - fi + SN="$(generateSerial "${MODEL}" "true")" + writeConfigKey "arc.patch" "true" "${USER_CONFIG_FILE}" elif [ ${resp} -eq 2 ]; then - # Generate random Serial SN="$(generateSerial "${MODEL}" "false")" writeConfigKey "arc.patch" "false" "${USER_CONFIG_FILE}" elif [ ${resp} -eq 3 ]; then diff --git a/files/initrd/opt/arc/include/addons.sh b/files/initrd/opt/arc/include/addons.sh index 5bbb12b3..744360a7 100755 --- a/files/initrd/opt/arc/include/addons.sh +++ b/files/initrd/opt/arc/include/addons.sh @@ -8,6 +8,7 @@ function availableAddons() { fi local ARCOFFLINE="$(readConfigKey "arc.offline" "${USER_CONFIG_FILE}")" local ARCCONF="$(readConfigKey "${MODEL}.serial" "${S_FILE}")" + local PAT_URL="$(readConfigKey "paturl" "${USER_CONFIG_FILE}")" for D in $(find "${ADDONS_PATH}" -maxdepth 1 -type d 2>/dev/null | sort); do [ ! -f "${D}/manifest.yml" ] && continue local ADDON=$(basename ${D})