tree: multiple rework

Signed-off-by: AuxXxilium <info@auxxxilium.tech>
This commit is contained in:
AuxXxilium
2024-04-16 21:13:55 +02:00
parent 8c296be1fc
commit 2b0ae0bece
4 changed files with 195 additions and 179 deletions

View File

@@ -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

View File

@@ -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}")"

View File

@@ -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")"

View File

@@ -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