Merge branch 'dev'

This commit is contained in:
Fabio Belavenuto 2022-07-05 21:48:48 -03:00
commit 285ef9beb8
16 changed files with 63 additions and 68 deletions

4
TODO
View File

@ -18,6 +18,8 @@ Concluidos:
- Usando TTYD para acesso via web - Usando TTYD para acesso via web
- Verificar se fica legal colocar na config dos modelos os addons obrigatórios como o qjs-dtb *** Usado outra maneira *** - Verificar se fica legal colocar na config dos modelos os addons obrigatórios como o qjs-dtb *** Usado outra maneira ***
- Implementar escolha de maxdisks - Implementar escolha de maxdisks
- Limpar addons quando usuário muda de modelo
- Arrumar detecção de discos/maxdisks. 918 tem só 4 discos e dá problema com proxmox
- Melhorar opções de HD, talvez criar um menu a parte
https://kb.synology.com/en-me/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have https://kb.synology.com/en-me/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have

View File

@ -1 +1 @@
0.1-alpha3 0.1-alpha4

View File

@ -103,6 +103,8 @@ function modelMenu() {
rm -f "${MOD_ZIMAGE_FILE}" rm -f "${MOD_ZIMAGE_FILE}"
rm -f "${MOD_RDGZ_FILE}" rm -f "${MOD_RDGZ_FILE}"
DIRTY=1 DIRTY=1
# Remove addons
writeConfigKey "addons" "{}" "${USER_CONFIG_FILE}"
fi fi
} }
@ -346,40 +348,25 @@ function addonMenu() {
done done
} }
###############################################################################
# Sets variables to configure maxdisks
# 1 - Number of disks
function setMaxDisks() {
CMDLINE['maxdisks']="${1}"
writeConfigKey "cmdline.maxdisks" "${1}" "${USER_CONFIG_FILE}"
INTPORTCFG=""
for I in `seq 1 ${1}`; do INTPORTCFG+="1"; done
INTPORTCFG="0x`printf "%x" "$((2#${INTPORTCFG}))"`"
CMDLINE['internalportcfg']="${INTPORTCFG}"
writeConfigKey "cmdline.internalportcfg" "${INTPORTCFG}" "${USER_CONFIG_FILE}"
}
############################################################################### ###############################################################################
function cmdlineMenu() { function cmdlineMenu() {
# Read from user config # Read device-tree flag
DT="`readModelKey "${MODEL}" "dt"`" DT="`readModelKey "${MODEL}" "dt"`"
unset CMDLINE unset CMDLINE
declare -A CMDLINE declare -A CMDLINE
while IFS="=" read KEY VALUE; do while IFS="=" read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}" [ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}") done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
# Loop menu
while true; do
echo "a \"Add/edit an cmdline item\"" > "${TMP_PATH}/menu" echo "a \"Add/edit an cmdline item\"" > "${TMP_PATH}/menu"
echo "d \"Delete cmdline item(s)\"" >> "${TMP_PATH}/menu" echo "d \"Delete cmdline item(s)\"" >> "${TMP_PATH}/menu"
echo "s \"Show user cmdline\"" >> "${TMP_PATH}/menu"
echo "m \"Show model/build cmdline\"" >> "${TMP_PATH}/menu"
if [ "${DT}" != "true" ]; then if [ "${DT}" != "true" ]; then
echo "h \"Change maxdisks\"" >> "${TMP_PATH}/menu"
echo "u \"Show SATA(s) # ports and drives\"" >> "${TMP_PATH}/menu" echo "u \"Show SATA(s) # ports and drives\"" >> "${TMP_PATH}/menu"
fi fi
echo "s \"Show user cmdline\"" >> "${TMP_PATH}/menu"
echo "m \"Show model/build cmdline\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu" echo "e \"Exit\"" >> "${TMP_PATH}/menu"
# Loop menu
while true; do
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \ dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp --file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return [ $? -ne 0 ] && return
@ -419,36 +406,8 @@ function cmdlineMenu() {
deleteConfigKey "cmdline.${I}" "${USER_CONFIG_FILE}" deleteConfigKey "cmdline.${I}" "${USER_CONFIG_FILE}"
done done
;; ;;
s)
ITEMS=""
for KEY in ${!CMDLINE[@]}; do
ITEMS+="${KEY}: ${CMDLINE[$KEY]}\n"
done
dialog --backtitle "`backtitle`" --title "User cmdline" \
--aspect 18 --msgbox "${ITEMS}" 0 0
;;
m)
ITEMS=""
while IFS="=" read KEY VALUE; do
ITEMS+="${KEY}: ${VALUE}\n"
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
dialog --backtitle "`backtitle`" --title "Model/build cmdline" \
--aspect 18 --msgbox "${ITEMS}" 0 0
;;
h) MODEL_DISKS="`readModelKey "${MODEL}" "disks"`"
dialog --backtitle "`backtitle`" --title "Change max of disks" \
--inputbox "${MODEL} disks: ${MODEL_DISKS}\nType the desired number of disks (1-26)" 0 0 \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && continue
VALUE="`<"${TMP_PATH}/resp"`"
[ -z "${VALUE}" ] && continue
if [ ${VALUE} -ge 1 -a ${VALUE} -le 26 ]; then
setMaxDisks ${VALUE}
else
dialog --backtitle "`backtitle`" --msgbox "Invalid number" 0 0
fi
;;
u) TEXT="" u) TEXT=""
NUMPORTS=0
for PCI in `lspci -d ::106 | awk '{print$1}'`; do for PCI in `lspci -d ::106 | awk '{print$1}'`; do
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"` NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
TEXT+="\Zb${NAME}\Zn\nPorts: " TEXT+="\Zb${NAME}\Zn\nPorts: "
@ -466,13 +425,31 @@ function cmdlineMenu() {
[ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb" [ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb"
[ ${DUMMY} -eq 1 ] && TEXT+="\Z1" [ ${DUMMY} -eq 1 ] && TEXT+="\Z1"
TEXT+="${PORT}\Zn " TEXT+="${PORT}\Zn "
NUMPORTS=$((${NUMPORTS}+1))
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n) done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
TEXT+="\n" TEXT+="\n"
done done
TEXT+="\nTotal of ports: ${NUMPORTS}\n"
TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected." TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected."
dialog --backtitle "`backtitle`" --colors --aspect 18 \ dialog --backtitle "`backtitle`" --colors --aspect 18 \
--msgbox "${TEXT}" 0 0 --msgbox "${TEXT}" 0 0
;; ;;
s)
ITEMS=""
for KEY in ${!CMDLINE[@]}; do
ITEMS+="${KEY}: ${CMDLINE[$KEY]}\n"
done
dialog --backtitle "`backtitle`" --title "User cmdline" \
--aspect 18 --msgbox "${ITEMS}" 0 0
;;
m)
ITEMS=""
while IFS="=" read KEY VALUE; do
ITEMS+="${KEY}: ${VALUE}\n"
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
dialog --backtitle "`backtitle`" --title "Model/build cmdline" \
--aspect 18 --msgbox "${ITEMS}" 0 0
;;
e) return ;; e) return ;;
esac esac
done done
@ -486,16 +463,17 @@ function synoinfoMenu() {
while IFS="=" read KEY VALUE; do while IFS="=" read KEY VALUE; do
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}" [ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}") done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
echo "a \"Add/edit an synoinfo item\"" > "${TMP_PATH}/menu"
echo "d \"Delete synoinfo item(s)\"" >> "${TMP_PATH}/menu"
echo "s \"Show user synoinfo\"" >> "${TMP_PATH}/menu"
echo "m \"Show model/build synoinfo\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
# menu loop # menu loop
while true; do while true; do
dialog --backtitle "`backtitle`" \ dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
--menu "Choose a option" 0 0 0 \ --file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
a "Add/edit an synoinfo item" \
d "Delete synoinfo item(s)" \
s "Show user synoinfo" \
m "Show model/build synoinfo" \
e "Exit" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && return [ $? -ne 0 ] && return
case "`<${TMP_PATH}/resp`" in case "`<${TMP_PATH}/resp`" in
a) a)

View File

@ -6,6 +6,8 @@ modules-notneeded: &modules-notneeded
- ixgbe - ixgbe
- igb - igb
- e1000e - e1000e
- r8168
- r8169
- dca - dca
- etxhci_hcd - etxhci_hcd
- xhci_hcd - xhci_hcd
@ -29,6 +31,7 @@ cmdline: &cmdline
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
vender_format_version: 2 vender_format_version: 2
platform: "geminilake" platform: "geminilake"
dt: true
serial: serial:
prefix: prefix:
- "2030" - "2030"
@ -51,9 +54,9 @@ builds:
<<: *synoinfo <<: *synoinfo
pat: pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat" url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat"
hash: "73053911bd118b432d5a2036dc62d518eed83b78b32c1eb23696d59725a14892" hash: "fe2a4648f76adeb65c3230632503ea36bbac64ee88b459eb9bfb5f3b8c8cebb3"
ramdisk-hash: "e39890f4bef2e5e4eea956996b0dd92d081c6d9e7c393331131e65bbad1a17a9" ramdisk-hash: "f7dd1317f24ec6b9bac839e37f66b59030218c7f97c06f73f1f54ed0f892c4aa"
zimage-hash: "74d513aaa3e30d8aa4f80e202d94a68a552e9c0472f8470e133ad29080556f55" zimage-hash: "346b68f662b50f47d3ee6c2bc9de6302e4b60436142c24ee88b620c7afd1ba06"
patch: patch:
- "ramdisk-common-disable-root-pwd.patch" - "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch" - "ramdisk-common-init-script.patch"

View File

@ -6,12 +6,12 @@ modules-notneeded: &modules-notneeded
- ixgbe - ixgbe
- igb - igb
- e1000e - e1000e
- r8168
- r8169
- dca - dca
- etxhci_hcd - etxhci_hcd
- xhci_hcd - xhci_hcd
- ehci-pci
- uhci_hcd - uhci_hcd
synoinfo: &synoinfo synoinfo: &synoinfo
buzzeroffen: "0xffff" buzzeroffen: "0xffff"
rss_server: "http://example.com/null.xml" rss_server: "http://example.com/null.xml"

View File

@ -62,6 +62,15 @@ while read f; do
(cd "${RAMDISK_PATH}" && patch -p1 < "${PATCH_PATH}/${f}") >>"${LOG_FILE}" 2>&1 || dieLog (cd "${RAMDISK_PATH}" && patch -p1 < "${PATCH_PATH}/${f}") >>"${LOG_FILE}" 2>&1 || dieLog
done < <(readModelArray "${MODEL}" "builds.${BUILD}.patch") done < <(readModelArray "${MODEL}" "builds.${BUILD}.patch")
# Temporary workaround
DT="`readModelKey "${MODEL}" "dt"`"
if [ "${DT}" != "true" ]; then
NUMPORTS=$((`ls /sys/class/scsi_host | wc -w`-1))
SYNOINFO["maxdisks"]=${NUMPORTS}
INTPORTCFG="0x`printf "%x" "$((2**${NUMPORTS}-1))"`"
SYNOINFO["internalportcfg"]="${INTPORTCFG}"
fi
# Patch /etc/synoinfo.conf # Patch /etc/synoinfo.conf
echo -n "." echo -n "."
for KEY in ${!SYNOINFO[@]}; do for KEY in ${!SYNOINFO[@]}; do

View File

@ -5,3 +5,6 @@ available-for:
broadwell-4.4.180: broadwell-4.4.180:
install-script: &script "install.sh" install-script: &script "install.sh"
modules: true modules: true
geminilake-4.4.180:
install-script: *script
modules: true