diff --git a/files/initrd/opt/arc/arc-functions.sh b/files/initrd/opt/arc/arc-functions.sh index 1b85bd72..5656183f 100755 --- a/files/initrd/opt/arc/arc-functions.sh +++ b/files/initrd/opt/arc/arc-functions.sh @@ -252,25 +252,27 @@ function cmdlineMenu() { 2>"${TMP_PATH}/resp" RET=$? case ${RET} in - 0) # ok-button - NAME="$(cat "${TMP_PATH}/resp" | sed -n '1p')" - VALUE="$(cat "${TMP_PATH}/resp" | sed -n '2p')" - if [ -z "${NAME//\"/}" ]; then - dialog --clear --backtitle "$(backtitle)" --title "User Cmdline" \ - --yesno "Invalid Parameter Name, retry?" 0 0 - [ $? -eq 0 ] && break - fi - writeConfigKey "cmdline.\"${NAME//\"/}\"" "${VALUE}" "${USER_CONFIG_FILE}" - break - ;; - 1) # cancel-button - break - ;; - 255) # ESC - break - ;; + 0) # ok-button + NAME="$(cat "${TMP_PATH}/resp" | sed -n '1p')" + VALUE="$(cat "${TMP_PATH}/resp" | sed -n '2p')" + if [ -z "${NAME//\"/}" ]; then + dialog --clear --backtitle "$(backtitle)" --title "User Cmdline" \ + --yesno "Invalid Parameter Name, retry?" 0 0 + [ $? -eq 0 ] && break + fi + writeConfigKey "cmdline.\"${NAME//\"/}\"" "${VALUE}" "${USER_CONFIG_FILE}" + break + ;; + 1) # cancel-button + break + ;; + 255) # ESC + break + ;; esac done + writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}" + BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" ;; 2) if [ ${#CMDLINE[@]} -eq 0 ]; then @@ -428,6 +430,7 @@ function synoinfoMenu() { echo "3 \"Show Synoinfo entries\"" >>"${TMP_PATH}/menu" echo "4 \"Add optimized Synoinfo\"" >>"${TMP_PATH}/menu" echo "5 \"Thermal Shutdown (DT only)\"" >>"${TMP_PATH}/menu" + echo "6 \"Set Maxdisks for DSM\"" >>"${TMP_PATH}/menu" # menu loop while true; do @@ -436,19 +439,41 @@ function synoinfoMenu() { [ $? -ne 0 ] && return 1 case "$(cat ${TMP_PATH}/resp)" in 1) - dialog --backtitle "$(backtitle)" --title "Synoinfo entries" \ - --inputbox "Type a name of synoinfo entry" 0 0 \ - 2>"${TMP_PATH}/resp" - [ $? -ne 0 ] && return 1 - NAME=$(cat "${TMP_PATH}/resp") - [ -z "${NAME//\"/}" ] && return 1 - dialog --backtitle "$(backtitle)" --title "Synoinfo entries" \ - --inputbox "Type a value of '${NAME}' entry" 0 0 "${SYNOINFO[${NAME}]}" \ - 2>"${TMP_PATH}/resp" - [ $? -ne 0 ] && return 1 - VALUE=$(cat "${TMP_PATH}/resp") - SYNOINFO[${NAME}]="${VALUE}" - writeConfigKey "synoinfo.\"${NAME//\"/}\"" "${VALUE}" "${USER_CONFIG_FILE}" + MSG="" + MSG+="Commonly used Synoinfo:\n" + MSG+=" * \Z4maxdisks=??\Zn\n Maximum number of disks supported.\n" + MSG+=" * \Z4internalportcfg=0x????\Zn\n Internal(sata) disks mask.\n" + MSG+=" * \Z4esataportcfg=0x????\Zn\n Esata disks mask.\n" + MSG+=" * \Z4usbportcfg=0x????\Zn\n USB disks mask.\n" + MSG+=" * \Z4max_sys_raid_disks=12\Zn\n Maximum number of system partition(md0) raid disks.\n" + MSG+="\nEnter the Parameter Name and Value you want to add.\n" + LINENUM=$(($(echo -e "${MSG}" | wc -l) + 10)) + while true; do + dialog --clear --backtitle "$(backtitle)" \ + --colors --title "User Cmdline" \ + --form "${MSG}" ${LINENUM:-16} 70 2 "Name:" 1 1 "" 1 10 55 0 "Value:" 2 1 "" 2 10 55 0 \ + 2>"${TMP_PATH}/resp" + RET=$? + case ${RET} in + 0) # ok-button + NAME="$(cat "${TMP_PATH}/resp" | sed -n '1p')" + VALUE="$(cat "${TMP_PATH}/resp" | sed -n '2p')" + if [ -z "${NAME//\"/}" ]; then + dialog --clear --backtitle "$(backtitle)" --title "User Cmdline" \ + --yesno "Invalid Parameter Name, retry?" 0 0 + [ $? -eq 0 ] && break + fi + writeConfigKey "synoinfo.\"${NAME//\"/}\"" "${VALUE}" "${USER_CONFIG_FILE}" + break + ;; + 1) # cancel-button + break + ;; + 255) # ESC + break + ;; + esac + done writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}" BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" ;; @@ -491,13 +516,15 @@ function synoinfoMenu() { writeConfigKey "synoinfo.support_tiny_btrfs_dedupe" "yes" "${USER_CONFIG_FILE}" dialog --backtitle "$(backtitle)" --title "Optimized Synoinfo entries" \ --aspect 18 --msgbox "Optimized Synoinfo is written to Config." 0 0 + writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}" + BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" ;; 5) MODEL="$(readConfigKey "model" "${USER_CONFIG_FILE}")" CONFDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" PLATFORM="$(readModelKey "${MODEL}" "platform")" DT="$(readModelKey "${MODEL}" "dt")" - if [[ "${CONFDONE}" = "true" && "${DT}" = "true" ]]; then + if ["${DT}" = "true" ]; then if findAndMountDSMRoot; then if [ -f "${TMP_PATH}/mdX/usr/syno/etc.defaults/scemd.xml" ]; then if [ -f "${TMP_PATH}/mdX/usr/syno/etc.defaults/scemd.xml.bak" ]; then @@ -552,6 +579,16 @@ function synoinfoMenu() { --msgbox "Please build and install DSM first!" 0 0 fi ;; + 6) + dialog --backtitle "$(backtitle)" --title "Set Maxdisks" \ + --inputbox "Set Maxdisks for DSM!" 0 0 \ + 2>"${TMP_PATH}/input" + MAXDISKS=$(cat "${TMP_PATH}/input") + [ -z "${MAXDISKS}" ] && return 1 + writeConfigKey "device.maxdisks" "${MAXDISKS}" "${USER_CONFIG_FILE}" + writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}" + BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" + ;; esac done return @@ -1147,7 +1184,7 @@ function sysinfo() { elif [ "${REMAP}" = "user" ]; then TEXT+="\n PortMap: \Zb"User"\Zn" fi - TEXT+="\n Mount Disks: \Zb${USBMOUNT}\Zn" + TEXT+="\n USB Drives as: \Zb${USBMOUNT}\Zn" TEXT+="\n" # Check for Controller // 104=RAID // 106=SATA // 107=SAS // 100=SCSI // c03=USB TEXT+="\n\Z4> Storage\Zn" @@ -1219,7 +1256,7 @@ function sysinfo() { done fi if [[ -d "/sys/class/mmc_host" && $(ls -l /sys/class/mmc_host | grep mmc_host | wc -l) -gt 0 ]]; then - TEXT+="\n MMC Controller:\n" + TEXT+="\n MMC Controller:\n" for PCI in $(lspci -d ::805 | awk '{print $1}'); do NAME=$(lspci -s "${PCI}" | sed "s/\ .*://") PORTNUM=$(ls -l /sys/class/mmc_host | grep "${PCI}" | wc -l) @@ -1230,7 +1267,7 @@ function sysinfo() { done fi if [ $(lspci -d ::108 | wc -l) -gt 0 ]; then - TEXT+="\n NVMe Controller:\n" + TEXT+="\n NVMe Controller:\n" for PCI in $(lspci -d ::108 | awk '{print $1}'); do NAME=$(lspci -s "${PCI}" | sed "s/\ .*://") PORT=$(ls -l /sys/class/nvme | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/nvme//' | sort -n) @@ -1245,18 +1282,18 @@ function sysinfo() { --msgbox "${TEXT}" 0 0 RET=$? case ${RET} in - 0) # ok-button - return 0 - ;; - 2) # help-button - networkdiag - ;; - 3) # extra-button - fullsysinfo - ;; - 255) # ESC - return 0 - ;; + 0) # ok-button + return 0 + ;; + 2) # help-button + networkdiag + ;; + 3) # extra-button + fullsysinfos + ;; + 255) # ESC + return 0 + ;; esac return } @@ -1382,7 +1419,7 @@ function fullsysinfo() { elif [ "${REMAP}" = "user" ]; then TEXT+="\nPortMap: "User"" fi - TEXT+="\nMount Disks: ${USBMOUNT}" + TEXT+="\nUSB Drives as: ${USBMOUNT}" TEXT+="\n" # Check for Controller // 104=RAID // 106=SATA // 107=SAS // 100=SCSI // c03=USB TEXT+="\nStorage" @@ -1876,7 +1913,7 @@ function cloneLoader() { while read -r KNAME KMODEL PKNAME TYPE; do [ -z "${KNAME}" ] && continue [ -z "${KMODEL}" ] && KMODEL="${TYPE}" - [[ "${KNAME}" = "${LOADER_DISK}" || "${PKNAME}" = "${LOADER_DISK}" ]] && continue + [[ "${KNAME}" = "${LOADER_DISK}" || "${PKNAME}" = "${LOADER_DISK}" || "${KMODEL}" = "${LOADER_DISK}" ]] && continue echo "\"${KNAME}\" \"${KMODEL}\" \"off\"" >>"${TMP_PATH}/opts" done <<<$(lsblk -dpno KNAME,MODEL,PKNAME,TYPE) if [ ! -f "${TMP_PATH}/opts" ]; then diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index c6e8ac5b..01a0244f 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -140,7 +140,7 @@ function arcModel() { [ -n "${ARCCONF}" ] && ARC="x" || ARC="" [[ "${PLATFORM}" = "r1000" || "${PLATFORM}" = "v1000" || "${PLATFORM}" = "epyc7002" ]] && CPU="AMD" || CPU="Intel" [[ "${PLATFORM}" = "apollolake" || "${PLATFORM}" = "geminilake" || "${PLATFORM}" = "epyc7002" ]] && IGPUS="x" || IGPUS="" - [[ "${DT}" = "true" || "${DT}" = "false" ]] && HBAS="x" || HBAS="" + [ "${DT}" = "false" ] && USBS="x" || USBS="" [[ "${M}" = "DS220+" || "${M}" = "DS224+" || "${M}" = "DS918+" || "${M}" = "DS1019+" || "${M}" = "DS1621xs+" || "${M}" = "RS1619xs+" ]] && M_2_CACHE="" || M_2_CACHE="x" [[ "${DT}" = "true" && "${M}" != "DS220+" && "${M}" != "DS224+" ]] && M_2_STORAGE="x" || M_2_STORAGE="" # Check id model is compatible with CPU @@ -161,37 +161,37 @@ function arcModel() { fi [ "${DT}" = "true" ] && DTS="x" || DTS="" [ "${BETA}" = "true" ] && BETA="x" || BETA="" - [ ${COMPATIBLE} -eq 1 ] && echo "${M} \"$(printf "\Zb%-8s\Zn \Zb%-8s\Zn \Zb%-15s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-4s\Zn" "${DISKS}" "${CPU}" "${PLATFORM}" "${DTS}" "${ARC}" "${IGPUS}" "${HBAS}" "${M_2_CACHE}" "${M_2_STORAGE}" "${BETA}")\" ">>"${TMP_PATH}/menu" + [ ${COMPATIBLE} -eq 1 ] && echo "${M} \"$(printf "\Zb%-8s\Zn \Zb%-8s\Zn \Zb%-15s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-4s\Zn" "${DISKS}" "${CPU}" "${PLATFORM}" "${DTS}" "${ARC}" "${IGPUS}" "${USBS}" "${M_2_CACHE}" "${M_2_STORAGE}" "${BETA}")\" ">>"${TMP_PATH}/menu" done <<<$(cat "${TMP_PATH}/modellist" | sort -n -k 2) dialog --backtitle "$(backtitle)" --colors \ --cancel-label "Show all" --help-button --help-label "Exit" \ --extra-button --extra-label "Info" \ - --menu "Choose Model for Loader (This Chart indicates the original Values, without Addons.)\n $(printf "\Zb%-10s\Zn \Zb%-8s\Zn \Zb%-8s\Zn \Zb%-15s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-4s\Zn" "Model" "Disks" "CPU" "Platform" "DT" "Arc" "iGPU" "HBA" "M.2 Cache" "M.2 Volume" "Beta")" 0 105 0 \ + --menu "Choose Model for Loader (This Chart indicates the original Values, without Addons.)\n $(printf "\Zb%-10s\Zn \Zb%-8s\Zn \Zb%-8s\Zn \Zb%-15s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-4s\Zn" "Model" "Disks" "CPU" "Platform" "DT" "Arc" "iGPU" "USB Mount" "M.2 Cache" "M.2 Volume" "Beta")" 0 105 0 \ --file "${TMP_PATH}/menu" 2>"${TMP_PATH}/resp" RET=$? case ${RET} in - 0) # ok-button - resp=$(cat ${TMP_PATH}/resp) - [ -z "${resp}" ] && return 1 - break - ;; - 1) # cancel-button -> Show all Models - FLGBETA=1 - RESTRICT=0 - ;; - 2) # help-button -> Exit - return 0 - break - ;; - 3) # extra-button -> Platform Info - resp=$(cat ${TMP_PATH}/resp) - PLATFORM="$(readModelKey "${resp}" "platform")" - dialog --textbox "./informations/${PLATFORM}.yml" 15 80 - ;; - 255) # ESC -> Exit - return 1 - break - ;; + 0) # ok-button + resp=$(cat ${TMP_PATH}/resp) + [ -z "${resp}" ] && return 1 + break + ;; + 1) # cancel-button -> Show all Models + FLGBETA=1 + RESTRICT=0 + ;; + 2) # help-button -> Exit + return 0 + break + ;; + 3) # extra-button -> Platform Info + resp=$(cat ${TMP_PATH}/resp) + PLATFORM="$(readModelKey "${resp}" "platform")" + dialog --textbox "./informations/${PLATFORM}.yml" 15 80 + ;; + 255) # ESC -> Exit + return 1 + break + ;; esac done # read model config for dt and aes @@ -429,12 +429,9 @@ function premake() { writeConfigKey "synoinfo.mem_max_mb" "${RAMMAX}" "${USER_CONFIG_FILE}" writeConfigKey "synoinfo.mem_min_mb" "${RAMMIN}" "${USER_CONFIG_FILE}" # Disks Mount Option - if [ "${USBMOUNT}" = "internal" ]; then + if [ "${USBMOUNT}" = "external" ]; then MAXDISKS="$(readConfigKey "device.harddrives" "${USER_CONFIG_FILE}")" writeConfigKey "synoinfo.maxdisks" "${MAXDISKS}" "${USER_CONFIG_FILE}" - elif [ "${USBMOUNT}" = "external" ]; then - MAXDISKS="$(readConfigKey "device.drives" "${USER_CONFIG_FILE}")" - writeConfigKey "synoinfo.maxdisks" "${MAXDISKS}" "${USER_CONFIG_FILE}" else deleteConfigKey "synoinfo.maxdisks" "${USER_CONFIG_FILE}" fi @@ -495,7 +492,7 @@ function arcSummary() { SUMMARY+="\n>> MacSys: \Zb${MACSYS}\Zn" [ -n "${PORTMAP}" ] && SUMMARY+="\n>> Portmap: \Zb${PORTMAP}\Zn" [ -n "${DISKMAP}" ] && SUMMARY+="\n>> Diskmap: \Zb${DISKMAP}\Zn" - SUMMARY+="\n>> Mount Disks: \Zb${USBMOUNT}\Zn" + SUMMARY+="\n>> USB Disks as: \Zb${USBMOUNT}\Zn" SUMMARY+="\n>> Sort Drives: \Zb${HDDSORT}\Zn" SUMMARY+="\n>> IPv6: \Zb${ARCIPV6}\Zn" SUMMARY+="\n>> Offline Mode: \Zb${OFFLINE}\Zn" @@ -513,15 +510,15 @@ function arcSummary() { --extra-button --extra-label "Cancel" --msgbox "${SUMMARY}" 0 0 RET=$? case ${RET} in - 0) # ok-button - make - ;; - 3) # extra-button - return 0 - ;; - 255) # ESC - return 0 - ;; + 0) # ok-button + make + ;; + 3) # extra-button + return 0 + ;; + 255) # ESC + return 0 + ;; esac } @@ -632,18 +629,18 @@ function make() { # Extract Files header=$(od -bcN2 ${PAT_FILE} | head -1 | awk '{print $3}') case ${header} in - 105) - isencrypted="no" - ;; - 213) - isencrypted="no" - ;; - 255) - isencrypted="yes" - ;; - *) - echo -e "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" - ;; + 105) + isencrypted="no" + ;; + 213) + isencrypted="no" + ;; + 255) + isencrypted="yes" + ;; + *) + echo -e "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" + ;; esac if [ "${isencrypted}" = "yes" ]; then # Uses the extractor to untar PAT file @@ -727,18 +724,18 @@ function offlinemake() { # Extract Files header=$(od -bcN2 ${PAT_FILE} | head -1 | awk '{print $3}') case ${header} in - 105) - isencrypted="no" - ;; - 213) - isencrypted="no" - ;; - 255) - isencrypted="yes" - ;; - *) - echo -e "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" - ;; + 105) + isencrypted="no" + ;; + 213) + isencrypted="no" + ;; + 255) + isencrypted="yes" + ;; + *) + echo -e "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" + ;; esac if [ "${isencrypted}" = "yes" ]; then # Uses the extractor to untar PAT file @@ -920,12 +917,9 @@ function autopremake() { # Memory: Set mem_max_mb to the amount of installed memory to bypass Limitation writeConfigKey "synoinfo.mem_max_mb" "${RAMMAX}" "${USER_CONFIG_FILE}" writeConfigKey "synoinfo.mem_min_mb" "${RAMMIN}" "${USER_CONFIG_FILE}" - # Disks Mount Option - if [ "${USBMOUNT}" = "internal" ]; then - MAXDISKS="$(readConfigKey "device.harddrives" "${USER_CONFIG_FILE}")" - writeConfigKey "synoinfo.maxdisks" "${MAXDISKS}" "${USER_CONFIG_FILE}" - elif [ "${USBMOUNT}" = "external" ]; then - MAXDISKS="$(readConfigKey "device.drives" "${USER_CONFIG_FILE}")" + # Disks Mount Option + if [ "${USBMOUNT}" = "external" ]; then + MAXDISKS="$(readConfigKey "device.maxdisks" "${USER_CONFIG_FILE}")" writeConfigKey "synoinfo.maxdisks" "${MAXDISKS}" "${USER_CONFIG_FILE}" else deleteConfigKey "synoinfo.maxdisks" "${USER_CONFIG_FILE}" @@ -968,6 +962,13 @@ function automake() { continue fi done <<<$(readConfigMap "addons" "${USER_CONFIG_FILE}") + # Get PAT Data from Config + PAT_URL_CONF="$(readConfigKey "arc.paturl" "${USER_CONFIG_FILE}")" + PAT_HASH_CONF="$(readConfigKey "arc.pathash" "${USER_CONFIG_FILE}")" + if [[ -z "${PAT_URL_CONF}" || -z "${PAT_HASH_CONF}" ]]; then + PAT_URL_CONF="#" + PAT_HASH_CONF="#" + fi dialog --backtitle "$(backtitle)" --colors --title "Arc Build" \ --infobox "Get PAT Data from Syno..." 3 30 # Get PAT Data from Syno @@ -1029,18 +1030,18 @@ function automake() { # Extract Files header=$(od -bcN2 ${PAT_FILE} | head -1 | awk '{print $3}') case ${header} in - 105) - isencrypted="no" - ;; - 213) - isencrypted="no" - ;; - 255) - isencrypted="yes" - ;; - *) - echo -e "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" - ;; + 105) + isencrypted="no" + ;; + 213) + isencrypted="no" + ;; + 255) + isencrypted="yes" + ;; + *) + echo -e "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" + ;; esac if [ "${isencrypted}" = "yes" ]; then # Uses the extractor to untar PAT file @@ -1162,9 +1163,11 @@ else fi echo "O \"Official Driver Priority: \Z4${ODP}\Zn \" " >>"${TMP_PATH}/menu" if [ "${DT}" = "true" ]; then - echo "H \"Sort Disks: \Z4${HDDSORT}\Zn \" " >>"${TMP_PATH}/menu" + echo "H \"Hotplug: \Z4${HDDSORT}\Zn \" " >>"${TMP_PATH}/menu" + fi + if [ "${DT}" = "false" ]; then + echo "U \"USB Drives as: \Z4${USBMOUNT}\Zn \" " >>"${TMP_PATH}/menu" fi - echo "U \"Mount Disks: \Z4${USBMOUNT}\Zn \" " >>"${TMP_PATH}/menu" echo "c \"IPv6 Support: \Z4${ARCIPV6}\Zn \" " >>"${TMP_PATH}/menu" echo "E \"eMMC Boot Support: \Z4${EMMCBOOT}\Zn \" " >>"${TMP_PATH}/menu" echo "o \"Switch MacSys: \Z4${MACSYS}\Zn \" " >>"${TMP_PATH}/menu" @@ -1298,14 +1301,7 @@ else BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" NEXT="H" ;; - U) - if [ "${USBMOUNT}" = "automated" ]; then - USBMOUNT="internal" - elif [ "${USBMOUNT}" = "internal" ]; then - USBMOUNT="external" - elif [ "${USBMOUNT}" = "external" ]; then - USBMOUNT="automated" - fi + U) [ "${USBMOUNT}" = "internal" ] && USBMOUNT='external' || USBMOUNT='internal' writeConfigKey "arc.usbmount" "${USBMOUNT}" "${USER_CONFIG_FILE}" writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}" BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" diff --git a/files/initrd/opt/arc/include/storage.sh b/files/initrd/opt/arc/include/storage.sh index 8ebf1eb5..581488d4 100755 --- a/files/initrd/opt/arc/include/storage.sh +++ b/files/initrd/opt/arc/include/storage.sh @@ -106,6 +106,19 @@ function getmap() { NVMEDRIVES=$((${NVMEDRIVES} + ${PORTNUM})) done fi + # Check for Sata Boot + LASTDRIVE=0 + while read -r LINE; do + if [[ "${BUS}" != "usb" && ${LINE} -eq 0 && "${LOADER_DISK}" = "/dev/sda" ]]; then + MAXDISKS=$((${SATADRIVES} + 1)) + echo -n "${LINE}>${MAXDISKS}:">>"${TMP_PATH}/remap" + elif [ ! ${LINE} = ${LASTDRIVE} ]; then + echo -n "${LINE}>${LASTDRIVE}:">>"${TMP_PATH}/remap" + LASTDRIVE=$((${LASTDRIVE} + 1)) + elif [ ${LINE} = ${LASTDRIVE} ]; then + LASTDRIVE=$((${LINE} + 1)) + fi + done <<<$(cat "${TMP_PATH}/ports") # Disk Count for MaxDisks DRIVES=$((${SATADRIVES} + ${SASDRIVES} + ${SCSIDRIVES} + ${RAIDDRIVES} + ${USBDRIVES} + ${MMCDRIVES} + ${NVMEDRIVES})) HARDDRIVES=$((${SATADRIVES} + ${SASDRIVES} + ${SCSIDRIVES} + ${RAIDDRIVES} + ${NVMEDRIVES})) @@ -118,25 +131,11 @@ function getmap() { writeConfigKey "device.nvmedrives" "${NVMEDRIVES}" "${USER_CONFIG_FILE}" writeConfigKey "device.drives" "${DRIVES}" "${USER_CONFIG_FILE}" writeConfigKey "device.harddrives" "${HARDDRIVES}" "${USER_CONFIG_FILE}" + MAXDISKS=$((${HARDDRIVES} + 1)) + writeConfigKey "device.maxdisks" "${MAXDISKS}" "${USER_CONFIG_FILE}" } function getmapSelection() { - # Check for Sata Boot - LASTDRIVE=0 - while read -r LINE; do - if [[ "${BUS}" != "usb" && ${LINE} -eq 0 && "${LOADER_DISK}" = "/dev/sda" ]]; then - MAXDISKS="$(readModelKey "${MODEL}" "disks")" - if [ ${MAXDISKS} -lt ${DRIVES} ]; then - MAXDISKS=${DRIVES} - fi - echo -n "${LINE}>${MAXDISKS}:">>"${TMP_PATH}/remap" - elif [ ! ${LINE} = ${LASTDRIVE} ]; then - echo -n "${LINE}>${LASTDRIVE}:">>"${TMP_PATH}/remap" - LASTDRIVE=$((${LASTDRIVE} + 1)) - elif [ ${LINE} = ${LASTDRIVE} ]; then - LASTDRIVE=$((${LINE} + 1)) - fi - done <<<$(cat "${TMP_PATH}/ports") # Compute PortMap Options SATAPORTMAPMAX="$(awk '{print $1}' "${TMP_PATH}/drivesmax")" SATAPORTMAP="$(awk '{print $1}' "${TMP_PATH}/drivescon")" @@ -220,22 +219,6 @@ function getmapSelection() { } function autogetmapSelection() { - # Check for Sata Boot - LASTDRIVE=0 - while read -r LINE; do - if [[ "${BUS}" != "usb" && ${LINE} -eq 0 && "${LOADER_DISK}" = "/dev/sda" ]]; then - MAXDISKS="$(readModelKey "${MODEL}" "disks")" - if [ ${MAXDISKS} -lt ${DRIVES} ]; then - MAXDISKS=${DRIVES} - fi - echo -n "${LINE}>${MAXDISKS}:">>"${TMP_PATH}/remap" - elif [ ! ${LINE} = ${LASTDRIVE} ]; then - echo -n "${LINE}>${LASTDRIVE}:">>"${TMP_PATH}/remap" - LASTDRIVE=$((${LASTDRIVE} + 1)) - elif [ ${LINE} = ${LASTDRIVE} ]; then - LASTDRIVE=$((${LINE} + 1)) - fi - done <<<$(cat "${TMP_PATH}/ports") # Compute PortMap Options SATAPORTMAPMAX="$(awk '{print $1}' "${TMP_PATH}/drivesmax")" SATAPORTMAP="$(awk '{print $1}' "${TMP_PATH}/drivescon")" diff --git a/files/initrd/opt/arc/init.sh b/files/initrd/opt/arc/init.sh index d037998b..8522c98d 100755 --- a/files/initrd/opt/arc/init.sh +++ b/files/initrd/opt/arc/init.sh @@ -63,7 +63,7 @@ initConfigKey "arc.kernelpanic" "5" "${USER_CONFIG_FILE}" initConfigKey "arc.macsys" "hardware" "${USER_CONFIG_FILE}" initConfigKey "arc.odp" "false" "${USER_CONFIG_FILE}" initConfigKey "arc.hddsort" "false" "${USER_CONFIG_FILE}" -initConfigKey "arc.usbmount" "automated" "${USER_CONFIG_FILE}" +initConfigKey "arc.usbmount" "external" "${USER_CONFIG_FILE}" initConfigKey "arc.kernel" "official" "${USER_CONFIG_FILE}" initConfigKey "arc.custom" "false" "${USER_CONFIG_FILE}" initConfigKey "arc.version" "${ARC_VERSION}" "${USER_CONFIG_FILE}" @@ -75,8 +75,8 @@ initConfigKey "mac" "{}" "${USER_CONFIG_FILE}" initConfigKey "static" "{}" "${USER_CONFIG_FILE}" # Config Update USBMOUNT="$(readConfigKey "arc.usbmount" "${USER_CONFIG_FILE}")" -[ "${USBMOUNT}" = "true" ] && writeConfigKey "arc.usbmount" "external" "${USER_CONFIG_FILE}" -[ "${USBMOUNT}" = "false" ] && writeConfigKey "arc.usbmount" "internal" "${USER_CONFIG_FILE}" +[ "${USBMOUNT}" = "true" ] && writeConfigKey "arc.usbmount" "internal" "${USER_CONFIG_FILE}" +[ "${USBMOUNT}" = "false" ] && writeConfigKey "arc.usbmount" "external" "${USER_CONFIG_FILE}" # Init Network ETHX=$(ls /sys/class/net/ 2>/dev/null | grep eth) || true @@ -143,16 +143,16 @@ BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" # Decide if boot automatically if grep -q "force_arc" /proc/cmdline; then - echo -e "\033[1;34mLoading Config Mode.\033[0m" + echo -e "\033[1;34mStarting Config Mode...\033[0m" elif grep -q "automated_arc" /proc/cmdline; then - echo -e "\033[1;34mLoading Automated Config Mode.\033[0m" + echo -e "\033[1;34mStarting Automated Config Mode...\033[0m" elif grep -q "update_arc" /proc/cmdline; then - echo -e "\033[1;34mLoading Update Mode.\033[0m" + echo -e "\033[1;34mStarting Update Mode...\033[0m" elif [ "${BUILDDONE}" = "true" ]; then - echo -e "\033[1;34mLoading DSM Mode.\033[0m" + echo -e "\033[1;34mStarting DSM Mode...\033[0m" boot.sh && exit 0 else - echo -e "\033[1;34mLoading Config Mode.\033[0m" + echo -e "\033[1;34mStarting Config Mode...\033[0m" fi echo