@@ -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
|
||||
|
||||
@@ -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}")"
|
||||
|
||||
@@ -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")"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user