add hddsort

This commit is contained in:
Ing 2023-10-29 20:59:44 +08:00
parent 717566f505
commit f260f93e48
7 changed files with 1310 additions and 1285 deletions

View File

@ -35,6 +35,7 @@ initConfigKey "bootipwait" "10" "${USER_CONFIG_FILE}"
initConfigKey "kernelway" "power" "${USER_CONFIG_FILE}" initConfigKey "kernelway" "power" "${USER_CONFIG_FILE}"
initConfigKey "kernelpanic" "5" "${USER_CONFIG_FILE}" initConfigKey "kernelpanic" "5" "${USER_CONFIG_FILE}"
initConfigKey "odp" "false" "${USER_CONFIG_FILE}" initConfigKey "odp" "false" "${USER_CONFIG_FILE}"
initConfigKey "hddsort" "true" "${USER_CONFIG_FILE}"
initConfigKey "model" "" "${USER_CONFIG_FILE}" initConfigKey "model" "" "${USER_CONFIG_FILE}"
initConfigKey "productver" "" "${USER_CONFIG_FILE}" initConfigKey "productver" "" "${USER_CONFIG_FILE}"
initConfigKey "buildnum" "" "${USER_CONFIG_FILE}" initConfigKey "buildnum" "" "${USER_CONFIG_FILE}"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -35,6 +35,7 @@ BOOTIPWAIT="$(readConfigKey "bootipwait" "${USER_CONFIG_FILE}")"
KERNELWAY="$(readConfigKey "kernelway" "${USER_CONFIG_FILE}")" KERNELWAY="$(readConfigKey "kernelway" "${USER_CONFIG_FILE}")"
KERNELPANIC="$(readConfigKey "kernelpanic" "${USER_CONFIG_FILE}")" KERNELPANIC="$(readConfigKey "kernelpanic" "${USER_CONFIG_FILE}")"
ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" # official drivers priorities ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" # official drivers priorities
HDDSORT="$(readConfigKey "hddsort" "${USER_CONFIG_FILE}")"
SN="$(readConfigKey "sn" "${USER_CONFIG_FILE}")" SN="$(readConfigKey "sn" "${USER_CONFIG_FILE}")"
MAC1="$(readConfigKey "mac1" "${USER_CONFIG_FILE}")" MAC1="$(readConfigKey "mac1" "${USER_CONFIG_FILE}")"
@ -476,7 +477,7 @@ function moduleMenu() {
c) c)
while true; do while true; do
dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Modules")" \ dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Modules")" \
--infobox "$(TEXT "Reading modules")" 0 0 --infobox "$(TEXT "Reading modules ...")" 0 0
ALLMODULES=$(getAllModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}") ALLMODULES=$(getAllModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}")
unset USERMODULES unset USERMODULES
declare -A USERMODULES declare -A USERMODULES
@ -793,7 +794,7 @@ function extractDsmFiles() {
else else
# If we have little disk space, clean cache folder # If we have little disk space, clean cache folder
if [ ${CLEARCACHE} -eq 1 ]; then if [ ${CLEARCACHE} -eq 1 ]; then
echo "$(TEXT "Cleaning cache")" echo "$(TEXT "Cleaning cache ...")"
rm -rf "${PART3_PATH}/dl" rm -rf "${PART3_PATH}/dl"
fi fi
mkdir -p "${PART3_PATH}/dl" mkdir -p "${PART3_PATH}/dl"
@ -805,7 +806,7 @@ function extractDsmFiles() {
PATURL="$(echo ${PATURL} | sed "s/${mirror}/${fastest}/")" PATURL="$(echo ${PATURL} | sed "s/${mirror}/${fastest}/")"
OLDPATURL="https://${fastest}/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat" OLDPATURL="https://${fastest}/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
fi fi
echo "$(printf "$(TEXT "Downloading %s")" "${PAT_FILE}")" echo "$(printf "$(TEXT "Downloading %s ...")" "${PAT_FILE}")"
# Discover remote file size # Discover remote file size
FILESIZE=$(curl -k -sLI "${PATURL}" | grep -i Content-Length | awk '{print$2}') FILESIZE=$(curl -k -sLI "${PATURL}" | grep -i Content-Length | awk '{print$2}')
if [ 0${FILESIZE} -ge 0${SPACELEFT} ]; then if [ 0${FILESIZE} -ge 0${SPACELEFT} ]; then
@ -813,9 +814,10 @@ function extractDsmFiles() {
PAT_PATH="${TMP_PATH}/${PAT_FILE}" PAT_PATH="${TMP_PATH}/${PAT_FILE}"
fi fi
STATUS=$(curl -k -w "%{http_code}" -L "${PATURL}" -o "${PAT_PATH}") STATUS=$(curl -k -w "%{http_code}" -L "${PATURL}" -o "${PAT_PATH}")
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then RET=$?
if [ ${RET} -ne 0 -o ${STATUS} -ne 200 ]; then
rm -f "${PAT_PATH}" rm -f "${PAT_PATH}"
MSG="$(printf "$(TEXT "Check internet or cache disk space.\nError: %d")" "${STATUS}")" MSG="$(printf "$(TEXT "Check internet or cache disk space.\nError: %d:%d")" "${RET}" "${STATUS}")"
dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Error")" \ dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Error")" \
--msgbox "${MSG}" 0 0 --msgbox "${MSG}" 0 0
return 1 return 1
@ -824,9 +826,9 @@ function extractDsmFiles() {
echo -n "$(printf "$(TEXT "Checking hash of %s: ")" "${PAT_FILE}")" echo -n "$(printf "$(TEXT "Checking hash of %s: ")" "${PAT_FILE}")"
if [ "$(md5sum ${PAT_PATH} | awk '{print $1}')" != "${PATSUM}" ]; then if [ "$(md5sum ${PAT_PATH} | awk '{print $1}')" != "${PATSUM}" ]; then
rm -f ${PAT_PATH}
dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Error")" \ dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Error")" \
--msgbox "$(TEXT "md5 hash of pat not match, Please reget pat data from the version menu and try again!")" 0 0 --msgbox "$(TEXT "md5 hash of pat not match, Please reget pat data from the version menu and try again!")" 0 0
rm -f ${PAT_PATH}
return 1 return 1
fi fi
echo "$(TEXT "OK")" echo "$(TEXT "OK")"
@ -876,9 +878,10 @@ function extractDsmFiles() {
OLDPAT_PATH="${TMP_PATH}/DS3622xs+-42218.pat" OLDPAT_PATH="${TMP_PATH}/DS3622xs+-42218.pat"
fi fi
STATUS=$(curl -k -w "%{http_code}" -L "${OLDPATURL}" -o "${OLDPAT_PATH}") STATUS=$(curl -k -w "%{http_code}" -L "${OLDPATURL}" -o "${OLDPAT_PATH}")
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then RET=$?
if [ ${RET} -ne 0 -o ${STATUS} -ne 200 ]; then
rm -f "${OLDPAT_PATH}" rm -f "${OLDPAT_PATH}"
MSG="$(printf "$(TEXT "Check internet or cache disk space.\nError: %d")" "${STATUS}")" MSG="$(printf "$(TEXT "Check internet or cache disk space.\nError: %d:%d")" "${RET}" "${STATUS}")"
dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Error")" \ dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Error")" \
--msgbox "${MSG}" 0 0 --msgbox "${MSG}" 0 0
return 1 return 1
@ -987,7 +990,7 @@ function make() {
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")" PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
BUILDNUM="$(readConfigKey "buildnum" "${USER_CONFIG_FILE}")" BUILDNUM="$(readConfigKey "buildnum" "${USER_CONFIG_FILE}")"
SMALLNUM="$(readConfigKey "smallnum" "${USER_CONFIG_FILE}")" SMALLNUM="$(readConfigKey "smallnum" "${USER_CONFIG_FILE}")"
echo "$(TEXT "Cleaning")" echo "$(TEXT "Cleaning ...")"
rm -rf "${UNTAR_PAT_PATH}" rm -rf "${UNTAR_PAT_PATH}"
echo "$(TEXT "Ready!")" echo "$(TEXT "Ready!")"
sleep 3 sleep 3
@ -1002,6 +1005,7 @@ function advancedMenu() {
rm -f "${TMP_PATH}/menu" rm -f "${TMP_PATH}/menu"
if [ -n "${PRODUCTVER}" ]; then if [ -n "${PRODUCTVER}" ]; then
echo "l \"$(TEXT "Switch LKM version:") \Z4${LKM}\Zn\"" >>"${TMP_PATH}/menu" echo "l \"$(TEXT "Switch LKM version:") \Z4${LKM}\Zn\"" >>"${TMP_PATH}/menu"
echo "j \"$(TEXT "HDD sort:") \Z4${HDDSORT}\Zn\"" >>"${TMP_PATH}/menu"
fi fi
if loaderIsConfigured; then if loaderIsConfigured; then
echo "q \"$(TEXT "Switch direct boot:") \Z4${DIRECTBOOT}\Zn\"" >>"${TMP_PATH}/menu" echo "q \"$(TEXT "Switch direct boot:") \Z4${DIRECTBOOT}\Zn\"" >>"${TMP_PATH}/menu"
@ -1046,6 +1050,12 @@ function advancedMenu() {
touch ${PART1_PATH}/.build touch ${PART1_PATH}/.build
NEXT="l" NEXT="l"
;; ;;
j)
[ "${HDDSORT}" = "true" ] && HDDSORT='false' || HDDSORT='true'
writeConfigKey "hddsort" "${HDDSORT}" "${USER_CONFIG_FILE}"
touch ${PART1_PATH}/.build
NEXT="l"
;;
q) q)
[ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false' [ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false'
writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}" writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}"
@ -1487,7 +1497,7 @@ function advancedMenu() {
# Try to recovery a DSM already installed # Try to recovery a DSM already installed
function tryRecoveryDSM() { function tryRecoveryDSM() {
dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Try recovery DSM")" \ dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Try recovery DSM")" \
--infobox "$(TEXT "Trying to recovery a DSM installed system")" 0 0 --infobox "$(TEXT "Trying to recovery a DSM installed system ...")" 0 0
if findAndMountDSMRoot; then if findAndMountDSMRoot; then
MODEL="" MODEL=""
PRODUCTVER="" PRODUCTVER=""
@ -1641,7 +1651,7 @@ function downloadExts() {
T="$(printf "$(TEXT "Update %s")" "${1}")" T="$(printf "$(TEXT "Update %s")" "${1}")"
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--infobox "$(TEXT "Checking last version")" 0 0 --infobox "$(TEXT "Checking last version ...")" 0 0
if [ "${PRERELEASE}" = "true" ]; then if [ "${PRERELEASE}" = "true" ]; then
TAG="$(curl -skL "${PROXY}${3}/tags" | grep /refs/tags/.*\.zip | head -1 | sed -r 's/.*\/refs\/tags\/(.*)\.zip.*$/\1/')" TAG="$(curl -skL "${PROXY}${3}/tags" | grep /refs/tags/.*\.zip | head -1 | sed -r 's/.*\/refs\/tags\/(.*)\.zip.*$/\1/')"
else else
@ -1654,10 +1664,10 @@ function downloadExts() {
if [ -z "${TAG}" -o "${TAG}" = "latest" ]; then if [ -z "${TAG}" -o "${TAG}" = "latest" ]; then
if [ ! "${5}" = "0" ]; then if [ ! "${5}" = "0" ]; then
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--infobox "$(TEXT "Error checking new version")" 0 0 --infobox "$(printf "$(TEXT "Error checking new version.\nError: TAG is %s")" "${TAG}")" 0 0
else else
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--msgbox "$(TEXT "Error checking new version")" 0 0 --msgbox "$(printf "$(TEXT "Error checking new version.\nError: TAG is %s")" "${TAG}")" 0 0
fi fi
return 1 return 1
fi fi
@ -1675,15 +1685,16 @@ function downloadExts() {
( (
rm -f "${TMP_PATH}/${4}.zip" rm -f "${TMP_PATH}/${4}.zip"
STATUS=$(curl -kL -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}.zip" -o "${TMP_PATH}/${4}.zip") STATUS=$(curl -kL -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}.zip" -o "${TMP_PATH}/${4}.zip")
RET=$?
) 2>&1 | dialog --backtitle "$(backtitle)" --colors --title "${T}" \ ) 2>&1 | dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--progressbox "$(TEXT "Downloading ...")" 20 100 --progressbox "$(TEXT "Downloading ...")" 20 100
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then if [ ${RET} -ne 0 -o ${STATUS} -ne 200 ]; then
if [ ! "${5}" = "0" ]; then if [ ! "${5}" = "0" ]; then
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--infobox "$(TEXT "Error downloading new version")" 0 0 --infobox "$(printf "$(TEXT "Error downloading new version.\nError: %d:%d")" "${RET}" "${STATUS}")" 0 0
else else
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--msgbox "$(TEXT "Error downloading new version")" 0 0 --msgbox "$(printf "$(TEXT "Error downloading new version.\nError: %d:%d")" "${RET}" "${STATUS}")" 0 0
fi fi
return 1 return 1
fi fi
@ -1719,7 +1730,7 @@ function updateRR() {
fi fi
fi fi
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--infobox "$(TEXT "Installing new files")" 0 0 --infobox "$(TEXT "Installing new files ...")" 0 0
# Process update-list.yml # Process update-list.yml
while read F; do while read F; do
[ -f "${F}" ] && rm -f "${F}" [ -f "${F}" ] && rm -f "${F}"
@ -1751,7 +1762,7 @@ function updateExts() {
mkdir -p "${TMP_PATH}/addons" mkdir -p "${TMP_PATH}/addons"
unzip "${TMP_PATH}/addons.zip" -d "${TMP_PATH}/addons" >/dev/null 2>&1 unzip "${TMP_PATH}/addons.zip" -d "${TMP_PATH}/addons" >/dev/null 2>&1
dialog --backtitle "$(backtitle)" --colors --title "${T}" \ dialog --backtitle "$(backtitle)" --colors --title "${T}" \
--infobox "$(printf "$(TEXT "Installing new %s")" "${1}")" 0 0 --infobox "$(printf "$(TEXT "Installing new %s ...")" "${1}")" 0 0
rm -Rf "${ADDONS_PATH}/"* rm -Rf "${ADDONS_PATH}/"*
[ -f "${TMP_PATH}/addons/VERSION" ] && cp -f "${TMP_PATH}/addons/VERSION" "${ADDONS_PATH}/" [ -f "${TMP_PATH}/addons/VERSION" ] && cp -f "${TMP_PATH}/addons/VERSION" "${ADDONS_PATH}/"
for PKG in $(ls ${TMP_PATH}/addons/*.addon); do for PKG in $(ls ${TMP_PATH}/addons/*.addon); do
@ -2037,7 +2048,7 @@ while true; do
NEXT="m" NEXT="m"
;; ;;
c) c)
dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Cleaning")" \ dialog --backtitle "$(backtitle)" --colors --title "$(TEXT "Cleaning ...")" \
--prgbox "rm -rfv \"${PART3_PATH}/dl\"" 0 0 --prgbox "rm -rfv \"${PART3_PATH}/dl\"" 0 0
NEXT="d" NEXT="d"
;; ;;

View File

@ -36,6 +36,7 @@ KEYMAP="$(readConfigKey "keymap" "${USER_CONFIG_FILE}")"
PATURL="$(readConfigKey "paturl" "${USER_CONFIG_FILE}")" PATURL="$(readConfigKey "paturl" "${USER_CONFIG_FILE}")"
PATSUM="$(readConfigKey "patsum" "${USER_CONFIG_FILE}")" PATSUM="$(readConfigKey "patsum" "${USER_CONFIG_FILE}")"
ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" # official drivers priorities ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" # official drivers priorities
HDDSORT="$(readConfigKey "hddsort" "${USER_CONFIG_FILE}")"
# Check if DSM buildnumber changed # Check if DSM buildnumber changed
. "${RAMDISK_PATH}/etc/VERSION" . "${RAMDISK_PATH}/etc/VERSION"
@ -59,7 +60,6 @@ writeConfigKey "smallnum" "${SMALLNUM}" "${USER_CONFIG_FILE}"
echo -n "." echo -n "."
# Read model data # Read model data
UNIQUE=$(readModelKey "${MODEL}" "unique")
PLATFORM="$(readModelKey "${MODEL}" "platform")" PLATFORM="$(readModelKey "${MODEL}" "platform")"
KVER="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kver")" KVER="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kver")"
KPRE="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kpre")" KPRE="$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kpre")"
@ -151,10 +151,6 @@ cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modpr
gzip -dc "${LKM_PATH}/rp-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" gzip -dc "${LKM_PATH}/rp-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko"
# Addons # Addons
#MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
# Check if model needs Device-tree dynamic patch
DT="$(readModelKey "${MODEL}" "dt")"
echo -n "." echo -n "."
mkdir -p "${RAMDISK_PATH}/addons" mkdir -p "${RAMDISK_PATH}/addons"
echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh" echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh"
@ -175,7 +171,7 @@ echo "/addons/revert.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FI
installAddon eudev installAddon eudev
echo "/addons/eudev.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/eudev.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
installAddon disks installAddon disks
echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/disks.sh \${1} ${HDDSORT} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
[ -f "${USER_UP_PATH}/${MODEL}.dts" ] && cp "${USER_UP_PATH}/${MODEL}.dts" "${RAMDISK_PATH}/addons/model.dts" [ -f "${USER_UP_PATH}/${MODEL}.dts" ] && cp "${USER_UP_PATH}/${MODEL}.dts" "${RAMDISK_PATH}/addons/model.dts"
installAddon localrss installAddon localrss
echo "/addons/localrss.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/localrss.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog