@@ -53,45 +53,67 @@ function arcModel() {
5353 [[ " ${M} " = " DS220+" || " ${M} " = " DS224+" || " ${M} " = " DVA1622" ]] && M_2_CACHE=" "
5454 [[ " ${M} " = " DS220+" || " ${M} " = " DS224+" || " ${DT} " = " false" ]] && M_2_STORAGE=" " || M_2_STORAGE=" +"
5555 if [ " ${RESTRICT} " -eq 1 ]; then
56- for F in ${FLAGS} ; do
57- grep -q " ^flags.*${F} .*" /proc/cpuinfo || COMPATIBLE=0
58- done
59- # for NF in ${NOFLAGS}; do
60- # grep -q "^flags.*${NF}.*" /proc/cpuinfo && COMPATIBLE=0
61- # done
6256 if is_in_array " ${A} " " ${KVER5L[@]} " ; then
6357 if { [ " ${NVMEDRIVES} " -eq 0 ] && [ " ${BUS} " = " usb" ] && [ " ${SATADRIVES} " -eq 0 ] && [ " ${EXTERNALCONTROLLER} " = " false" ]; } ||
6458 { [ " ${NVMEDRIVES} " -eq 0 ] && [ " ${BUS} " = " sata" ] && [ " ${SATADRIVES} " -eq 1 ] && [ " ${EXTERNALCONTROLLER} " = " false" ]; } ||
6559 [ " ${SCSICONTROLLER} " -ge 1 ] || [ " ${RAIDCONTROLLER} " -ge 1 ]; then
66- COMPATIBLE=0
60+ COMPATIBLE=0
6761 fi
6862 else
6963 if { [ " ${DT} " = " true" ] && [ " ${EXTERNALCONTROLLER} " = " true" ]; } ||
7064 { [ " ${SATACONTROLLER} " -eq 0 ] && [ " ${EXTERNALCONTROLLER} " = " false" ]; } ||
7165 { [ " ${NVMEDRIVES} " -gt 0 ] && [ " ${BUS} " = " usb" ] && [ " ${SATADRIVES} " -eq 0 ] && [ " ${EXTERNALCONTROLLER} " = " false" ]; } ||
7266 { [ " ${NVMEDRIVES} " -gt 0 ] && [ " ${BUS} " = " sata" ] && [ " ${SATADRIVES} " -eq 1 ] && [ " ${EXTERNALCONTROLLER} " = " false" ]; }; then
73- COMPATIBLE=0
67+ COMPATIBLE=0
68+ fi
69+ fi
70+ WARN=" " && rm -f " ${TMP_PATH} /${M} _warn"
71+ if [ -n " ${FLAGS} " ]; then
72+ for F in ${FLAGS} ; do
73+ grep -q " ^flags.*${F} .*" /proc/cpuinfo || echo -e " ${WARN} - Missing required CPU flag: ${F} \n" >> " ${TMP_PATH} /${M} _warn"
74+ done
75+ fi
76+ if [ -n " ${NOFLAGS} " ]; then
77+ for NF in ${NOFLAGS} ; do
78+ grep -q " ^flags.*${NF} .*" /proc/cpuinfo && echo -e " ${WARN} - Disable the following CPU flag: ${NF} \n" >> " ${TMP_PATH} /${M} _warn"
79+ done
80+ fi
81+ if [ " ${DT} " = " true" ]; then
82+ if [[ " ${SCSICONTROLLER} " -ge 1 || " ${RAIDCONTROLLER} " -ge 1 ]]; then
83+ echo -e " ${WARN} - DT Model selected: Raid/SCSI will not work\n" >> " ${TMP_PATH} /${M} _warn"
7484 fi
7585 fi
7686 [ -z " $( grep -w " ${M} " " ${S_FILE} " ) " ] && COMPATIBLE=0
7787 [ -z " $( grep -w " ${A} " " ${P_FILE} " ) " ] && COMPATIBLE=0
7888 fi
7989 [ -n " $( grep -w " ${M} " " ${S_FILE} " ) " ] && BETA=" Loader" || BETA=" Syno"
80- [ " ${COMPATIBLE} " -eq 1 ] && echo -e " ${M} \" \t$( printf " \Zb%-15s\Zn \Zb%-8s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-10s\Zn \Zb%-10s\Zn" " ${A} " " ${KVERM} " " ${DTS} " " ${ARC} " " ${IGPUS} " " ${HBAS} " " ${M_2_CACHE} " " ${M_2_STORAGE} " " ${USBS} " " ${BETA} " ) \" " >> " ${TMP_PATH} /menu"
90+ [ -s " ${TMP_PATH} /${M} _warn" ] && A=" \Z1${A} \Zn" || A=" \Z4${A} \Zn"
91+ [ " ${COMPATIBLE} " -eq 1 ] && echo -e " ${M} \" \t$( printf " \Zb%-21s\Zn \Zb%-8s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-10s\Zn \Zb%-10s\Zn" " ${A} " " ${KVERM} " " ${DTS} " " ${ARC} " " ${IGPUS} " " ${HBAS} " " ${M_2_CACHE} " " ${M_2_STORAGE} " " ${USBS} " " ${BETA} " ) \" " >> " ${TMP_PATH} /menu"
8192 done <<< " $(cat " ${TMP_PATH} /modellist" )"
82- [ ! -s " ${TMP_PATH} /menu" ] && echo " No supported models found." > " ${TMP_PATH} /menu"
83- [ " ${RESTRICT} " -eq 1 ] && TITLEMSG=" Supported Models for your Hardware" || TITLEMSG=" Supported and unsupported Models for your Hardware"
84- MSG=" ${TITLEMSG} (x = supported / + = need Addons)\n$( printf " \Zb%-16s\Zn \Zb%-15s\Zn \Zb%-8s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-10s\Zn \Zb%-10s\Zn" " Model" " Platform" " Kernel" " DT" " Arc" " iGPU" " HBA" " M.2 Cache" " M.2 Volume" " USB Mount" " Source" ) "
93+ [ ! -s " ${TMP_PATH} /menu" ] && echo " No supported Models found." > " ${TMP_PATH} /menu"
94+ [ " ${RESTRICT} " -eq 1 ] && TITLEMSG=" \Z4Supported\Zn and \Z1Unsupported\Zn Platforms for your Hardware" || TITLEMSG=" All Platorms"
95+ MSG=" ${TITLEMSG} | Features: \Z4x = supported\Zn / \Z1+ = need Addon\Zn\n$( printf " \Zb%-16s\Zn \Zb%-15s\Zn \Zb%-8s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-5s\Zn \Zb%-10s\Zn \Zb%-12s\Zn \Zb%-10s\Zn \Zb%-10s\Zn" " Model" " Platform" " Kernel" " DT" " Arc" " iGPU" " HBA" " M.2 Cache" " M.2 Volume" " USB Mount" " Source" ) "
96+ [ " ${RESTRICT} " -eq 1 ] && SHOWMSG=" Show all" || SHOWMSG=" Show supported"
8597 dialog --backtitle " $( backtitle) " --title " DSM Model" --colors \
86- --cancel-label " Show all " --help-button --help-label " Exit" \
98+ --cancel-label " ${SHOWMSG} " --help-button --help-label " Exit" \
8799 --menu " ${MSG} " 0 120 0 \
88100 --file " ${TMP_PATH} /menu" 2> " ${TMP_PATH} /resp"
89101 RET=$?
90102 case ${RET} in
91103 0)
92104 resp=" $( cat " ${TMP_PATH} /resp" 2> /dev/null) "
93105 [ -z " ${resp} " ] && return
94- break
106+ if [ -s " ${TMP_PATH} /${resp} _warn" ]; then
107+ MSG=" Your Hardware is not compatible with the selected Model!\n\n\Z1$( cat " ${TMP_PATH} /${resp} _warn" ) \Zn\n\nDo you still want to proceed?"
108+ dialog --backtitle " $( backtitle) " --title " Arc Warning" --colors \
109+ --yesno " ${MSG} " 0 0
110+ RET=$?
111+ if [ $RET -eq 0 ]; then
112+ break
113+ fi
114+ else
115+ break
116+ fi
95117 ;;
96118 1)
97119 [ " ${RESTRICT} " -eq 1 ] && RESTRICT=0 || RESTRICT=1
@@ -260,18 +282,6 @@ function arcVersion() {
260282 fi
261283
262284 if [ " ${ONLYVERSION} " != " true" ] && [ " ${ARC_MODE} " = " config" ]; then
263- if [ " ${DT} " = " true" ]; then
264- if [ " ${SASCONTROLLER} " -ge 1 ]; then
265- dialog --backtitle " $( backtitle) " --title " Arc Warning" \
266- --yesno " WARN: You use a HBA Controller and selected a DT Model.\nThis is an experimental feature.\n\nContinue anyway?" 8 70
267- [ $? -ne 0 ] && return 1
268- fi
269- if [ " ${SCSICONTROLLER} " -ge 1 ] || [ " ${RAIDCONTROLLER} " -ge 1 ]; then
270- dialog --backtitle " $( backtitle) " --title " Arc Warning" \
271- --yesno " WARN: You use a Raid/SCSI Controller and selected a DT Model.\nThis is not supported.\n\nContinue anyway?" 8 70
272- [ $? -ne 0 ] && return 1
273- fi
274- fi
275285 USERID=" $( readConfigKey " arc.userid" " ${USER_CONFIG_FILE} " ) "
276286 ADDONS_LIST=" $( readConfigMap " addons" " ${USER_CONFIG_FILE} " ) "
277287 if [ -n " ${USERID} " ] && ! echo " ${ADDONS_LIST} " | grep -q " notification" ; then
0 commit comments