mirror of
https://github.com/RROrg/rr.git
synced 2026-01-14 23:39:33 +08:00
Compare commits
5 Commits
04ea5d6ce2
...
0c77bada57
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c77bada57 | ||
|
|
03f2cea7f9 | ||
|
|
cb56fa695d | ||
|
|
95235c314e | ||
|
|
b2f7dac7ba |
216
.github/workflows/issues.yml
vendored
216
.github/workflows/issues.yml
vendored
@ -148,39 +148,9 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# 累了, 毁灭吧!
|
# 累了, 毁灭吧!
|
||||||
|
|
||||||
# yq need sudo !!!
|
. scripts/func.sh "${{ secrets.RRORG }}"
|
||||||
function deleteConfigKey() {
|
|
||||||
sudo yq eval "del(.${1})" --inplace "${2}" 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeConfigKey() {
|
|
||||||
local value="${2}"
|
|
||||||
[ "${value}" = "{}" ] && sudo yq eval ".${1} = {}" --inplace "${3}" 2>/dev/null || sudo yq eval ".${1} = \"${value}\"" --inplace "${3}" 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function readConfigKey() {
|
|
||||||
local result
|
|
||||||
result=$(sudo yq eval ".${1} | explode(.)" "${2}" 2>/dev/null)
|
|
||||||
[ "${result}" = "null" ] && echo "" || echo "${result}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mergeConfigModules() {
|
|
||||||
# Error: bad file '-': cannot index array with '8139cp' (strconv.ParseInt: parsing "8139cp": invalid syntax)
|
|
||||||
# When the first key is a pure number, yq will not process it as a string by default. The current solution is to insert a placeholder key.
|
|
||||||
local MS ML XF
|
|
||||||
MS="RRORG\n${1// /\\n}"
|
|
||||||
ML="$(echo -en "${MS}" | awk '{print "modules."$1":"}')"
|
|
||||||
XF=$(mktemp 2>/dev/null)
|
|
||||||
XF=${XF:-/tmp/tmp.XXXXXXXXXX}
|
|
||||||
echo -en "${ML}" | sudo yq -p p -o y >"${XF}"
|
|
||||||
deleteConfigKey "modules.\"RRORG\"" "${XF}"
|
|
||||||
sudo yq eval-all --inplace '. as $item ireduce ({}; . * $item)' --inplace "${2}" "${XF}" 2>/dev/null
|
|
||||||
rm -f "${XF}"
|
|
||||||
}
|
|
||||||
|
|
||||||
REPO="${{ github.server_url }}/${{ github.repository }}"
|
REPO="${{ github.server_url }}/${{ github.repository }}"
|
||||||
MODEL="${{ env.model }}"
|
|
||||||
VERSION="${{ env.version }}"
|
|
||||||
PRERELEASE="true"
|
PRERELEASE="true"
|
||||||
|
|
||||||
TAG=""
|
TAG=""
|
||||||
@ -197,105 +167,9 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unzip rr-${TAG}.img.zip -d "rr"
|
unzip rr-${TAG}.img.zip -d rr rr.img
|
||||||
|
|
||||||
export TERM=xterm
|
echo "TAG=${TAG}" >> $GITHUB_ENV
|
||||||
|
|
||||||
sudo ./localbuild.sh create rr/ws rr/rr.img
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "create failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# sudo cp -rf files/initrd/opt/rr/* rr/ws/initrd/opt/rr/
|
|
||||||
# sudo sed -i "s/set -e/set -ex/" rr/ws/initrd/opt/rr/init.sh
|
|
||||||
# sudo sed -i '/^alias/i\set -x' rr/ws/initrd/opt/rr/menu.sh
|
|
||||||
|
|
||||||
[ -n "${{ env.language }}" ] && echo "${{ env.language }}.UTF-8" | sudo tee rr/ws/mnt/p1/.locale
|
|
||||||
|
|
||||||
sudo ./localbuild.sh init
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "init failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${{ env.kernel }}" ]; then
|
|
||||||
echo "set kernel"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
writeConfigKey "kernel" "${{ env.kernel }}" "${USER_CONFIG_FILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo ./localbuild.sh config "${MODEL}" "${VERSION}"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "config failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${{ env.sn }}" ]; then
|
|
||||||
echo "set sn: ${{ env.sn }}"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
writeConfigKey "sn" "${{ env.sn }}" "${USER_CONFIG_FILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${{ env.macs }}" ]; then
|
|
||||||
echo "set macs: ${{ env.macs }}"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
MACS=($(echo "${{ env.macs }}" | sed 's/[:-]//g' | sed 's/.*/\U&/' | sed 's/[;,]/ /g'))
|
|
||||||
writeConfigKey "mac1" "${MACS[0]}" "${USER_CONFIG_FILE}"
|
|
||||||
writeConfigKey "mac2" "${MACS[1]}" "${USER_CONFIG_FILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${{ env.tips }}" ]; then
|
|
||||||
echo "set tips: ${{ env.tips }}"
|
|
||||||
echo -e "${{ env.tips }}" | sudo tee rr/ws/mnt/p3/AddTips
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${{ env.addons }}" ]; then
|
|
||||||
echo "set addons: ${{ env.addons }}"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
writeConfigKey "addons" "{}" "${USER_CONFIG_FILE}"
|
|
||||||
IFS=',' read -ra ADDON_ARR <<< "${{ env.addons }}"
|
|
||||||
for A in "${ADDON_ARR[@]}"; do
|
|
||||||
if echo "${A}" | grep -qE '^[^:]+:[^:]+$'; then
|
|
||||||
KEY="$(echo "${A}" | cut -d':' -f1 | xargs)"
|
|
||||||
VAL="$(echo "${A}" | cut -d':' -f2 | xargs)"
|
|
||||||
else
|
|
||||||
KEY="${A}"
|
|
||||||
VAL=""
|
|
||||||
fi
|
|
||||||
writeConfigKey "addons.\"${KEY}\"" "${VAL}" "${USER_CONFIG_FILE}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! "custom" = "${{ env.kernel }}" ] && [ -n "${{ env.modules }}" ]; then
|
|
||||||
echo "set modules: ${{ env.modules }}"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
|
||||||
mergeConfigModules "$(echo "${{ env.modules }}" | sed 's/,/\n/g')" "${USER_CONFIG_FILE}"
|
|
||||||
# for M in $(echo "${{ env.modules }}" | sed 's/,/ /g'); do
|
|
||||||
# writeConfigKey "modules.\"${M}\"" "" "${USER_CONFIG_FILE}"
|
|
||||||
# done
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo ./localbuild.sh build
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "build failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "true" = "${{ env.template }}" ]; then
|
|
||||||
echo "set template: ${{ env.template }}"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
writeConfigKey "sn" "" "${USER_CONFIG_FILE}"
|
|
||||||
writeConfigKey "mac1" "" "${USER_CONFIG_FILE}"
|
|
||||||
writeConfigKey "mac2" "" "${USER_CONFIG_FILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo ./localbuild.sh pack rr/rr.img
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "pack failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "${{ env.size }}" in
|
case "${{ env.size }}" in
|
||||||
2GB)
|
2GB)
|
||||||
@ -303,34 +177,73 @@ jobs:
|
|||||||
;;
|
;;
|
||||||
4GB)
|
4GB)
|
||||||
echo "4GB"
|
echo "4GB"
|
||||||
sudo ./localbuild.sh resize rr/rr.img +2048M
|
resizeImg rr/rr.img +2048M
|
||||||
;;
|
;;
|
||||||
8GB)
|
8GB)
|
||||||
echo "8GB"
|
echo "8GB"
|
||||||
sudo ./localbuild.sh resize rr/rr.img +6144M
|
resizeImg rr/rr.img +6144M
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "unknown size"
|
echo "unknown size"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
LOOPX=$(sudo losetup -f)
|
||||||
|
sudo losetup -P "${LOOPX}" rr/rr.img
|
||||||
|
|
||||||
|
echo "Building..."
|
||||||
|
{
|
||||||
|
[ -n "${{ env.language }}" ] && echo "echo \"${{ env.language }}.UTF-8\" >/mnt/p1/.locale"
|
||||||
|
[ -n "${{ env.tips }}" ] && echo "echo -e \"${{ env.tips }}\" >/mnt/p3/AddTips"
|
||||||
|
[ -n "${{ env.kernel }}" ] && echo "menu.sh writeConfigKey \"kernel\" \"${{ env.kernel }}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
echo "menu.sh modelMenu \"${{ env.model }}\""
|
||||||
|
echo "menu.sh productversMenu \"${{ env.version }}\""
|
||||||
|
[ -n "${{ env.addons }}" ] && {
|
||||||
|
echo "menu.sh writeConfigKey \"addons\" \"{}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
IFS=',' read -ra ADDON_ARR <<< "${{ env.addons }}"
|
||||||
|
for A in "${ADDON_ARR[@]}"; do
|
||||||
|
if echo "${A}" | grep -qE '^[^:]+:[^:]+$'; then
|
||||||
|
KEY="$(echo "${A}" | cut -d':' -f1 | xargs)"
|
||||||
|
VAL="$(echo "${A}" | cut -d':' -f2 | xargs)"
|
||||||
|
else
|
||||||
|
KEY="${A}"
|
||||||
|
VAL=""
|
||||||
|
fi
|
||||||
|
echo "menu.sh writeConfigKey \"addons.\\\"${KEY}\\\"\" \"${VAL}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
done
|
||||||
|
}
|
||||||
|
[ ! "custom" = "${{ env.kernel }}" ] && [ -n "${{ env.modules }}" ] && {
|
||||||
|
echo "menu.sh writeConfigKey \"modules\" \"{}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
echo "menu.sh mergeConfigModules \"$(echo "${{ env.modules }}" | sed 's/,/\\n/g')\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
}
|
||||||
|
echo "menu.sh make"
|
||||||
|
echo "menu.sh cleanCache"
|
||||||
|
[ -n "${{ env.sn }}" ] && echo "menu.sh writeConfigKey \"sn\" \"${{ env.sn }}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
[ -n "${{ env.macs }}" ] && {
|
||||||
|
MACS=($(echo "${{ env.macs }}" | sed 's/[:-]//g' | sed 's/.*/\U&/' | sed 's/[;,]/ /g'))
|
||||||
|
[ -n "${MACS[0]}" ] && echo "menu.sh writeConfigKey \"mac1\" \"${MACS[0]}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
[ -n "${MACS[1]}" ] && echo "menu.sh writeConfigKey \"mac2\" \"${MACS[1]}\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
}
|
||||||
|
[ "true" = "${{ env.template }}" ] && {
|
||||||
|
echo "menu.sh writeConfigKey \"sn\" \"\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
echo "menu.sh writeConfigKey \"mac1\" \"\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
echo "menu.sh writeConfigKey \"mac2\" \"\" \"\${USER_CONFIG_FILE}\""
|
||||||
|
}
|
||||||
|
} > build.sh
|
||||||
|
chmod +x build.sh
|
||||||
|
|
||||||
|
docker pull wjz304/rr:${TAG}
|
||||||
|
docker run --rm --privileged -p 7681:7681 -p 7304:7304 -p 7080:7080 -p 7022:22 -v ${PWD}/build.sh:/opt/rr/build.sh wjz304/rr:${TAG} bash build.sh
|
||||||
|
|
||||||
|
sudo losetup --detach "${LOOPX}"
|
||||||
|
|
||||||
ls rr -al
|
ls rr -al
|
||||||
|
|
||||||
RR_VERSION_FILE="rr/ws/mnt/p1/RR_VERSION"
|
|
||||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
|
||||||
{
|
{
|
||||||
echo "RR: "
|
echo "RR: "
|
||||||
echo " VERSION: $(cat "${RR_VERSION_FILE}" 2>/dev/null | head -1)"
|
echo " VERSION: ${TAG}"
|
||||||
echo " CUSTOM: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
|
echo " CUSTOM: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
|
||||||
echo
|
echo
|
||||||
echo "DSM:"
|
|
||||||
echo " MODEL: $(readConfigKey "model" "${USER_CONFIG_FILE}")"
|
|
||||||
echo " VERSION: $(readConfigKey "productver" "${USER_CONFIG_FILE}")"
|
|
||||||
echo " KERNEL: $(readConfigKey "kernel" "${USER_CONFIG_FILE}")"
|
|
||||||
echo " PATURL: $(readConfigKey "paturl" "${USER_CONFIG_FILE}")"
|
|
||||||
echo " PATSUM: $(readConfigKey "patsum" "${USER_CONFIG_FILE}")"
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
echo "After the image is written to the disk, it will boot directly into DSM without the need to compile again."
|
echo "After the image is written to the disk, it will boot directly into DSM without the need to compile again."
|
||||||
echo "Of course, you can also modify the settings yourself."
|
echo "Of course, you can also modify the settings yourself."
|
||||||
} >README.txt
|
} >README.txt
|
||||||
@ -338,52 +251,47 @@ jobs:
|
|||||||
case "${{ env.format }}" in
|
case "${{ env.format }}" in
|
||||||
ova)
|
ova)
|
||||||
echo "OVA"
|
echo "OVA"
|
||||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
|
||||||
convertova "rr/rr.img" "rr/rr.ova"
|
convertova "rr/rr.img" "rr/rr.ova"
|
||||||
(cd rr && sha256sum rr.ova >../sha256sum)
|
(cd rr && sha256sum rr.ova >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova sha256sum README.txt
|
||||||
;;
|
;;
|
||||||
vmx)
|
vmx)
|
||||||
echo "VMX"
|
echo "VMX"
|
||||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
|
||||||
convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory
|
convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory
|
||||||
(cd rr.vmx && sha256sum * >../sha256sum)
|
(cd rr.vmx && sha256sum * >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx sha256sum README.txt
|
||||||
;;
|
;;
|
||||||
vmdk)
|
vmdk)
|
||||||
echo "VMDK"
|
echo "VMDK"
|
||||||
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk
|
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk
|
||||||
(cd rr && sha256sum rr.vmdk >../sha256sum)
|
(cd rr && sha256sum rr.vmdk >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk sha256sum README.txt
|
||||||
;;
|
;;
|
||||||
flat)
|
flat)
|
||||||
echo "FLAT"
|
echo "FLAT"
|
||||||
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk
|
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk
|
||||||
(cd rr && sha256sum rr*.vmdk >../sha256sum)
|
(cd rr && sha256sum rr*.vmdk >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk sha256sum README.txt
|
||||||
;;
|
;;
|
||||||
vhd)
|
vhd)
|
||||||
echo "VHD"
|
echo "VHD"
|
||||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
|
||||||
qemu-img convert rr/rr.img -O vpc rr/rr.vhd
|
qemu-img convert rr/rr.img -O vpc rr/rr.vhd
|
||||||
createvmc "rr/rr.vhd" "rr/rr.vmc"
|
createvmc "rr/rr.vhd" "rr/rr.vmc"
|
||||||
(cd rr && sha256sum rr.vhd >../sha256sum)
|
(cd rr && sha256sum rr.vhd >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd sha256sum README.txt
|
||||||
;;
|
;;
|
||||||
vhdx)
|
vhdx)
|
||||||
echo "VHDX"
|
echo "VHDX"
|
||||||
qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx
|
qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx
|
||||||
(cd rr && sha256sum rr.vhdx >../sha256sum)
|
(cd rr && sha256sum rr.vhdx >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx sha256sum README.txt
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "IMG"
|
echo "IMG"
|
||||||
(cd rr && sha256sum rr.img >../sha256sum)
|
(cd rr && sha256sum rr.img >../sha256sum)
|
||||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img ${USER_CONFIG_FILE} sha256sum README.txt
|
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img sha256sum README.txt
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo "TAG=${TAG}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Upload to Artifacts
|
- name: Upload to Artifacts
|
||||||
if: env.iscustom == 'true' && success()
|
if: env.iscustom == 'true' && success()
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|||||||
@ -779,6 +779,26 @@
|
|||||||
"zh_TW": "作者: GXNAS. 強制將 UPS 供電時的待機模式修改為關機. 參數: -f - 關機前觸發關機任務; -e - 待機模式前發關機任務(不修改為關機)."
|
"zh_TW": "作者: GXNAS. 強制將 UPS 供電時的待機模式修改為關機. 參數: -f - 關機前觸發關機任務; -e - 待機模式前發關機任務(不修改為關機)."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"virtiofs": {
|
||||||
|
"system": false,
|
||||||
|
"description": {
|
||||||
|
"en_US": "Auto mount virtio9p and virtiofs file systems (effective after rebooting the system after creating the storage space for the first time since it is mounted to the first storage space by default).",
|
||||||
|
"ar_SA": "تلقائيا تركيب أنظمة ملفات virtio9p و virtiofs (تدخل حيز التنفيذ بعد إعادة تشغيل النظام بعد إنشاء مساحة التخزين لأول مرة حيث يتم تركيبها في مساحة التخزين الأولى بشكل افتراضي).",
|
||||||
|
"de_DE": "Installiert virtio9p und virtiofs automatisch (da sie standardmäßig im ersten Speicherplatz gemountet werden, werden sie wirksam, nachdem das System zum ersten Mal installiert und der Speicherplatz erstellt und neu gestartet wurde).",
|
||||||
|
"es_ES": "Installs virtio9p and virtiofs automatically (effective after rebooting the system after creating the storage space for the first time since it is mounted to the first storage space by default).",
|
||||||
|
"fr_FR": "Monte automatiquement les systèmes de fichiers virtio9p et virtiofs (efficace après le redémarrage du système après la création de l'espace de stockage pour la première fois car il est monté sur le premier espace de stockage par défaut).",
|
||||||
|
"ja_JP": "virtio9pおよびvirtiofsファイルシステムを自動的にマウントします(デフォルトで最初のストレージスペースにマウントされるため、システムを再起動して最初にストレージスペースを作成した後に有効になります)。",
|
||||||
|
"ko_KR": "virtio9p 및 virtiofs 파일 시스템을 자동으로 마운트합니다(기본적으로 첫 번째 스토리지 공간에 마운트되므로 시스템을 재부팅한 후 처음으로 스토리지 공간을 만든 후에 적용됨).",
|
||||||
|
"ru_RU": "Автоматически монтирует файловые системы virtio9p и virtiofs (вступает в силу после перезагрузки системы после создания хранилища в первый раз, так как по умолчанию оно монтируется в первое хранилище).",
|
||||||
|
"th_TH": "ติดตั้งระบบไฟล์ virtio9p และ virtiofs โดยอัตโนมัติ (มีผลหลังจากรีบูตระบบหลังจากสร้างพื้นที่จัดเก็บข้อมูลเป็นครั้งแรกเนื่องจากจะถูกเมานต์ไปยังพื้นที่จัดเก็บข้อมูลแรกโดยค่าเริ่มต้น)",
|
||||||
|
"tr_TR": "virtio9p ve virtiofs dosya sistemlerini otomatik olarak bağlar (varsayılan olarak ilk depolama alanına bağlandığından, depolama alanı ilk kez oluşturulduktan sonra sistemi yeniden başlattıktan sonra geçerlidir).",
|
||||||
|
"uk_UA": "Автоматично монтує файлові системи virtio9p та virtiofs (вступає в силу після перезавантаження системи після створення сховища у перший раз, оскільки за замовчуванням воно монтується у перший сховище).",
|
||||||
|
"vi_VN": "Tự động gắn hệ thống tệp virtio9p và virtiofs (có hiệu lực sau khi khởi động lại hệ thống sau khi tạo không gian lưu trữ lần đầu tiên vì nó được gắn vào không gian lưu trữ đầu tiên theo mặc định).",
|
||||||
|
"zh_CN": "自动挂载 virtio9p 和 virtiofs 文件系统(由于默认挂载到第一个存储空间,所以首次安装系统创建存储空间后重启生效).",
|
||||||
|
"zh_HK": "自動掛載 virtio9p 和 virtiofs 文件系統(由於默認掛載到第一個存儲空間,所以首次安裝系統創建存儲空間後重启生效).",
|
||||||
|
"zh_TW": "自動掛載 virtio9p 和 virtiofs 檔案系統(由於預設掛載到第一個儲存空間,所以首次安裝系統建立儲存空間後重新啟動生效)."
|
||||||
|
}
|
||||||
|
},
|
||||||
"vmtools": {
|
"vmtools": {
|
||||||
"system": false,
|
"system": false,
|
||||||
"description": {
|
"description": {
|
||||||
|
|||||||
BIN
docs/addons.xlsx
BIN
docs/addons.xlsx
Binary file not shown.
BIN
docs/models.xlsx
BIN
docs/models.xlsx
Binary file not shown.
Binary file not shown.
735
docs/pats.json
735
docs/pats.json
@ -251,444 +251,25 @@
|
|||||||
"sum": "00000000000000000000000000000000"
|
"sum": "00000000000000000000000000000000"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DS220+": {
|
"DS220+": {},
|
||||||
"7.2.2-72806-0": {
|
"DS224+": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS220%2B_72806.pat",
|
"DS2419+": {},
|
||||||
"sum": "00000000000000000000000000000000"
|
"DS2419+II": {},
|
||||||
},
|
"DS2422+": {},
|
||||||
"7.0.1-42218-0": {
|
"DS3622xs+": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS220%2B_42218.pat",
|
"DS420+": {},
|
||||||
"sum": "00000000000000000000000000000000"
|
"DS423+": {},
|
||||||
},
|
"DS620slim": {},
|
||||||
"7.2.1-69057-1": {
|
"DS720+": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS220%2B_69057.pat",
|
"DS723+": {},
|
||||||
"sum": "00000000000000000000000000000000"
|
"DS920+": {},
|
||||||
},
|
"DS923+": {},
|
||||||
"7.2.0-64570-1": {
|
"DVA1622": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS220%2B_64570.pat",
|
"DVA3219": {},
|
||||||
"sum": "00000000000000000000000000000000"
|
"DVA3221": {},
|
||||||
},
|
"FS2500": {},
|
||||||
"7.1.1-42962-1": {
|
"FS3400": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS220%2B_42962.pat",
|
"FS3410": {},
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS220%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS224+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS224%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS224%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS2419+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS2419%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS2419%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS2419%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS2419%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS2419%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS2419%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS2419+II": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS2419%2BII_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS2419%2BII_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS2419%2BII_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS2419%2BII_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS2419%2BII_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS2419%2BII_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS2422+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS2422%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS2422%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS2422%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS2422%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS2422%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS2422%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS3622xs+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS3622xs%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS3622xs%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS3622xs%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS3622xs%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS3622xs%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS420+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS420%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS420%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS420%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS420%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS420%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS420%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS423+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS423%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS423%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS423%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_DS423%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS620slim": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS620slim_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS620slim_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057/DSM_DS620slim_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS620slim_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS620slim_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS620slim_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS720+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS720%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS720%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS720%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS720%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS720%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS720%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS723+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS723%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS723%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS723%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_DS723%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS920+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS920%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS920%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS920%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS920%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS920%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DS923+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS923%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS923%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS923%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_DS923%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DVA1622": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DVA1622_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DVA1622_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DVA1622_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DVA1622_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DVA3219": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DVA3219_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DVA3219_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DVA3219_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DVA3219_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DVA3219_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DVA3219_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DVA3221": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DVA3221_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DVA3221_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DVA3221_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DVA3221_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DVA3221_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DVA3221_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"FS2500": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS2500_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_FS2500_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS2500_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS2500_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_FS2500_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_FS2500_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"FS3400": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3400_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_FS3400_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_FS3400_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS3400_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS3400_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_FS3400_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"FS3410": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3410_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_FS3410_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS3410_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS3410_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"FS3600": {
|
"FS3600": {
|
||||||
"7.2.2-72806-0": {
|
"7.2.2-72806-0": {
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3600_72806.pat",
|
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3600_72806.pat",
|
||||||
@ -1071,14 +652,6 @@
|
|||||||
"7.2.0-64570-1": {
|
"7.2.0-64570-1": {
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS820%2B_64570.pat",
|
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS820%2B_64570.pat",
|
||||||
"sum": "00000000000000000000000000000000"
|
"sum": "00000000000000000000000000000000"
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS820%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS820%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"RS820RP+": {
|
"RS820RP+": {
|
||||||
@ -1159,78 +732,11 @@
|
|||||||
"7.2.0-64570-1": {
|
"7.2.0-64570-1": {
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3200D_64570.pat",
|
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3200D_64570.pat",
|
||||||
"sum": "00000000000000000000000000000000"
|
"sum": "00000000000000000000000000000000"
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_SA3200D_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_SA3200D_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SA3400": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3400_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_SA3400_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_SA3400_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3400_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_SA3400_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_SA3400_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SA3400D": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3400D_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_SA3400D_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3400D_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_SA3400D_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SA3410": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3410_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057/DSM_SA3410_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3410_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_SA3410_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"SA3400": {},
|
||||||
|
"SA3400D": {},
|
||||||
|
"SA3410": {},
|
||||||
"SA3600": {
|
"SA3600": {
|
||||||
"7.2.2-72806-0": {
|
"7.2.2-72806-0": {
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3600_72806.pat",
|
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3600_72806.pat",
|
||||||
@ -1543,196 +1049,13 @@
|
|||||||
"7.2.0-64570-1": {
|
"7.2.0-64570-1": {
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS2017_64570.pat",
|
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS2017_64570.pat",
|
||||||
"sum": "00000000000000000000000000000000"
|
"sum": "00000000000000000000000000000000"
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS2017_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_FS2017_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"RS18017xs+": {
|
"RS18017xs+": {},
|
||||||
"7.2.2-72806-0": {
|
"RS2418+": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS18017xs%2B_72806.pat",
|
"RS2418RP+": {},
|
||||||
"sum": "00000000000000000000000000000000"
|
"RS2818RP+": {},
|
||||||
},
|
"RS3617RPxs": {},
|
||||||
"7.0.1-42218-0": {
|
"RS3617xs+": {},
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS18017xs%2B_42218.pat",
|
"RS4017xs+": {}
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS18017xs%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS18017xs%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS18017xs%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS18017xs%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RS2418+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2418%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS2418%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS2418%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS2418%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS2418%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS2418%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RS2418RP+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2418RP%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS2418RP%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS2418RP%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS2418RP%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS2418RP%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS2418RP%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RS2818RP+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2818RP%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS2818RP%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS2818RP%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS2818RP%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS2818RP%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS2818RP%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RS3617RPxs": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS3617RPxs_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS3617RPxs_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS3617RPxs_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS3617RPxs_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS3617RPxs_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS3617RPxs_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RS3617xs+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS3617xs%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS3617xs%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS3617xs%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS3617xs%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS3617xs%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS3617xs%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RS4017xs+": {
|
|
||||||
"7.2.2-72806-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS4017xs%2B_72806.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.0.1-42218-0": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS4017xs%2B_42218.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.1-69057-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS4017xs%2B_69057.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.2.0-64570-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS4017xs%2B_64570.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.1-42962-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS4017xs%2B_42962.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
},
|
|
||||||
"7.1.0-42661-1": {
|
|
||||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS4017xs%2B_42661.pat",
|
|
||||||
"sum": "00000000000000000000000000000000"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
BIN
docs/pats.xlsx
BIN
docs/pats.xlsx
Binary file not shown.
@ -363,7 +363,7 @@ if [ "${DIRECT}" = "true" ] || [ "${MEV:-physical}" = "parallels" ]; then
|
|||||||
_bootwait || exit 0
|
_bootwait || exit 0
|
||||||
|
|
||||||
printf "\033[1;33m%s\033[0m\n" "$(TEXT "Reboot to boot directly in DSM")"
|
printf "\033[1;33m%s\033[0m\n" "$(TEXT "Reboot to boot directly in DSM")"
|
||||||
reboot
|
[ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ] && reboot
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
rm -f "${USER_RSYSENVFILE}" 2>/dev/null || true
|
rm -f "${USER_RSYSENVFILE}" 2>/dev/null || true
|
||||||
@ -390,9 +390,9 @@ else
|
|||||||
printf "."
|
printf "."
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||||
[ ! -f /var/run/dhcpcd/pid ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
[ ! -f /var/run/dhcpcd/pid ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
||||||
|
fi
|
||||||
printf "$(TEXT "Waiting IP.\n")"
|
printf "$(TEXT "Waiting IP.\n")"
|
||||||
for N in ${ETHX}; do
|
for N in ${ETHX}; do
|
||||||
COUNT=0
|
COUNT=0
|
||||||
@ -464,22 +464,24 @@ else
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Disconnect wireless
|
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||||
lsmod | grep -q iwlwifi && for F in /sys/class/net/wlan*; do
|
# Disconnect wireless
|
||||||
[ ! -e "${F}" ] && continue
|
lsmod | grep -q iwlwifi && for F in /sys/class/net/wlan*; do
|
||||||
connectwlanif "$(basename "${F}")" 0 2>/dev/null
|
[ ! -e "${F}" ] && continue
|
||||||
done
|
connectwlanif "$(basename "${F}")" 0 2>/dev/null
|
||||||
# Unload all network drivers
|
done
|
||||||
# for F in $(realpath /sys/class/net/*/device/driver); do [ ! -e "${F}" ] && continue; rmmod -f "$(basename ${F})" 2>/dev/null || true; done
|
# Unload all network drivers
|
||||||
|
# for F in $(realpath /sys/class/net/*/device/driver); do [ ! -e "${F}" ] && continue; rmmod -f "$(basename ${F})" 2>/dev/null || true; done
|
||||||
|
|
||||||
# Unload all graphics drivers
|
# Unload all graphics drivers
|
||||||
# for D in $(lsmod | grep -E '^(nouveau|amdgpu|radeon|i915)' | awk '{print $1}'); do rmmod -f "${D}" 2>/dev/null || true; done
|
# for D in $(lsmod | grep -E '^(nouveau|amdgpu|radeon|i915)' | awk '{print $1}'); do rmmod -f "${D}" 2>/dev/null || true; done
|
||||||
# for I in $(find /sys/devices -name uevent -exec bash -c 'cat {} 2>/dev/null | grep -Eq "PCI_CLASS=0?30[0|1|2]00" && dirname {}' \;); do
|
# for I in $(find /sys/devices -name uevent -exec bash -c 'cat {} 2>/dev/null | grep -Eq "PCI_CLASS=0?30[0|1|2]00" && dirname {}' \;); do
|
||||||
# [ -e ${I}/reset ] && cat "${I}/vendor" >/dev/null | grep -iq 0x10de && echo 1 >${I}/reset || true # Proc open nvidia driver when booting
|
# [ -e ${I}/reset ] && cat "${I}/vendor" >/dev/null | grep -iq 0x10de && echo 1 >${I}/reset || true # Proc open nvidia driver when booting
|
||||||
# done
|
# done
|
||||||
|
|
||||||
# Reboot
|
# Reboot
|
||||||
KERNELWAY="$(readConfigKey "kernelway" "${USER_CONFIG_FILE}")"
|
KERNELWAY="$(readConfigKey "kernelway" "${USER_CONFIG_FILE}")"
|
||||||
[ "${KERNELWAY}" = "kexec" ] && kexec -e || poweroff
|
[ "${KERNELWAY}" = "kexec" ] && kexec -e || poweroff
|
||||||
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
0
files/initrd/opt/rr/extract-vmlinux
Normal file → Executable file
0
files/initrd/opt/rr/extract-vmlinux
Normal file → Executable file
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
|
|
||||||
RR_VERSION="25.9.4"
|
RR_VERSION="25.9.5"
|
||||||
RR_RELEASE=""
|
RR_RELEASE=""
|
||||||
RR_TITLE="RR v${RR_VERSION}"
|
RR_TITLE="RR v${RR_VERSION}"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@
|
|||||||
25.9.4
|
25.9.5
|
||||||
|
|||||||
251
localbuild.sh
251
localbuild.sh
@ -1,251 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright (C) 2022 Ing <https://github.com/wjz304>
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the MIT License.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$(id -u)" -ne 0 ]; then
|
|
||||||
echo "This script must be run as root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
function help() {
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $0 <command> [args]
|
|
||||||
Commands:
|
|
||||||
create [workspace] [rr.img] - Create the workspace
|
|
||||||
init - Initialize the environment
|
|
||||||
config [model] [version] - Config the DSM system
|
|
||||||
build - Build the DSM system
|
|
||||||
pack [rr.img] - Pack to rr.img
|
|
||||||
help - Show this help
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function create() {
|
|
||||||
local WORKSPACE RRIMGPATH LOOPX INITRD_FILE INITRD_FORMAT
|
|
||||||
WORKSPACE="$(realpath "${1:-workspace}")"
|
|
||||||
RRIMGPATH="$(realpath "${2:-rr.img}")"
|
|
||||||
|
|
||||||
if [ ! -f "${RRIMGPATH}" ]; then
|
|
||||||
echo "File not found: ${RRIMGPATH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y locales busybox dialog gettext sed gawk jq curl
|
|
||||||
sudo apt install -y python-is-python3 python3-pip libelf-dev qemu-utils dosfstools cpio xz-utils lz4 lzma bzip2 gzip zstd
|
|
||||||
# sudo snap install yq
|
|
||||||
if ! type yq >/dev/null 2>&1 || ! yq --version 2>/dev/null | grep -q "v4."; then
|
|
||||||
sudo curl -kL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/bin/yq && sudo chmod a+x /usr/bin/yq
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Backup the original python3 executable.
|
|
||||||
sudo mv -f "$(realpath "$(which python3)")/EXTERNALLY-MANAGED" "$(realpath "$(which python3)")/EXTERNALLY-MANAGED.bak" 2>/dev/null || true
|
|
||||||
sudo pip3 install -U click requests requests-toolbelt qrcode[pil] beautifulsoup4
|
|
||||||
|
|
||||||
sudo locale-gen ar_SA.UTF-8 de_DE.UTF-8 en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 ru_RU.UTF-8 th_TH.UTF-8 tr_TR.UTF-8 uk_UA.UTF-8 vi_VN.UTF-8 zh_CN.UTF-8 zh_HK.UTF-8 zh_TW.UTF-8
|
|
||||||
|
|
||||||
LOOPX=$(sudo losetup -f)
|
|
||||||
sudo losetup -P "${LOOPX}" "${RRIMGPATH}"
|
|
||||||
|
|
||||||
# Check partitions and ignore errors
|
|
||||||
fsck.vfat -aw "${LOOPX}p1" >/dev/null 2>&1 || true
|
|
||||||
fsck.ext2 -p "${LOOPX}p2" >/dev/null 2>&1 || true
|
|
||||||
fsck.ext4 -p "${LOOPX}p3" >/dev/null 2>&1 || true
|
|
||||||
|
|
||||||
echo "Mounting image file"
|
|
||||||
for i in {1..3}; do
|
|
||||||
rm -rf "/tmp/mnt/p${i}"
|
|
||||||
mkdir -p "/tmp/mnt/p${i}"
|
|
||||||
sudo mount "${LOOPX}p${i}" "/tmp/mnt/p${i}" || {
|
|
||||||
echo "Can't mount ${LOOPX}p${i}."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Create WORKSPACE"
|
|
||||||
rm -rf "${WORKSPACE}"
|
|
||||||
mkdir -p "${WORKSPACE}/mnt" "${WORKSPACE}/tmp" "${WORKSPACE}/initrd"
|
|
||||||
cp -rpf /tmp/mnt/p{1,2,3} "${WORKSPACE}/mnt/"
|
|
||||||
|
|
||||||
INITRD_FILE="${WORKSPACE}/mnt/p3/initrd-rr"
|
|
||||||
INITRD_FORMAT=$(file -b --mime-type "${INITRD_FILE}")
|
|
||||||
|
|
||||||
case "${INITRD_FORMAT}" in
|
|
||||||
*'x-cpio'*) (cd "${WORKSPACE}/initrd" && sudo cpio -idm <"${INITRD_FILE}") >/dev/null 2>&1 ;;
|
|
||||||
*'x-xz'*) (cd "${WORKSPACE}/initrd" && xz -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
|
||||||
*'x-lz4'*) (cd "${WORKSPACE}/initrd" && lz4 -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
|
||||||
*'x-lzma'*) (cd "${WORKSPACE}/initrd" && lzma -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
|
||||||
*'x-bzip2'*) (cd "${WORKSPACE}/initrd" && bzip2 -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
|
||||||
*'gzip'*) (cd "${WORKSPACE}/initrd" && gzip -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
|
||||||
*'zstd'*) (cd "${WORKSPACE}/initrd" && zstd -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
sudo sync
|
|
||||||
for i in {1..3}; do
|
|
||||||
sudo umount "/tmp/mnt/p${i}"
|
|
||||||
rm -rf "/tmp/mnt/p${i}"
|
|
||||||
done
|
|
||||||
sudo losetup --detach "${LOOPX}"
|
|
||||||
|
|
||||||
if [ ! -f "${WORKSPACE}/initrd/opt/rr/init.sh" ] || [ ! -f "${WORKSPACE}/initrd/opt/rr/menu.sh" ]; then
|
|
||||||
echo "initrd decompression failed."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
|
||||||
cat <<EOF >"$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
|
||||||
export LOADER_DISK="LOCALBUILD"
|
|
||||||
export CHROOT_PATH="${WORKSPACE}"
|
|
||||||
EOF
|
|
||||||
echo "OK."
|
|
||||||
}
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
|
||||||
echo "Please run init first"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
|
||||||
pushd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
|
||||||
echo "init"
|
|
||||||
./init.sh
|
|
||||||
local RET=$?
|
|
||||||
popd || exit 1
|
|
||||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
|
||||||
exit ${RET}
|
|
||||||
}
|
|
||||||
|
|
||||||
function config() {
|
|
||||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
|
||||||
echo "Please run init first"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
|
||||||
local RET=1
|
|
||||||
pushd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
|
||||||
while true; do
|
|
||||||
if [ -z "${1}" ]; then
|
|
||||||
echo "menu"
|
|
||||||
./menu.sh || break
|
|
||||||
RET=0
|
|
||||||
else
|
|
||||||
echo "model"
|
|
||||||
./menu.sh modelMenu "${1:-SA6400}" || break
|
|
||||||
echo "version"
|
|
||||||
./menu.sh productversMenu "${2:-7.2}" || break
|
|
||||||
RET=0
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
done
|
|
||||||
popd || exit 1
|
|
||||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
|
||||||
exit ${RET}
|
|
||||||
}
|
|
||||||
|
|
||||||
function build() {
|
|
||||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
|
||||||
echo "Please run init first"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
|
||||||
local RET=1
|
|
||||||
pushd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
|
||||||
while true; do
|
|
||||||
echo "build"
|
|
||||||
./menu.sh make -1 || break
|
|
||||||
echo "clean"
|
|
||||||
./menu.sh cleanCache -1 || break
|
|
||||||
RET=0
|
|
||||||
break
|
|
||||||
done
|
|
||||||
popd || exit 1
|
|
||||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
|
||||||
exit ${RET}
|
|
||||||
}
|
|
||||||
|
|
||||||
function pack() {
|
|
||||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
|
||||||
echo "Please run init first"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
|
||||||
|
|
||||||
local RRIMGPATH LOOPX
|
|
||||||
RRIMGPATH="$(realpath "${1:-rr.img}")"
|
|
||||||
rm -f "${RRIMGPATH}"
|
|
||||||
gzip -dc "${CHROOT_PATH}/initrd/opt/rr/grub.img.gz" >"${RRIMGPATH}"
|
|
||||||
fdisk -l "${RRIMGPATH}"
|
|
||||||
|
|
||||||
LOOPX=$(sudo losetup -f)
|
|
||||||
sudo losetup -P "${LOOPX}" "${RRIMGPATH}"
|
|
||||||
|
|
||||||
# Check partitions and ignore errors
|
|
||||||
fsck.vfat -aw "${LOOPX}p1" >/dev/null 2>&1 || true
|
|
||||||
fsck.ext2 -p "${LOOPX}p2" >/dev/null 2>&1 || true
|
|
||||||
fsck.ext4 -p "${LOOPX}p3" >/dev/null 2>&1 || true
|
|
||||||
|
|
||||||
echo "Mounting image file"
|
|
||||||
for i in {1..3}; do
|
|
||||||
rm -rf "/tmp/mnt/p${i}"
|
|
||||||
mkdir -p "/tmp/mnt/p${i}"
|
|
||||||
sudo mount "${LOOPX}p${i}" "/tmp/mnt/p${i}" || {
|
|
||||||
echo "Can't mount ${LOOPX}p${i}."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Pack image file"
|
|
||||||
for i in {1..3}; do
|
|
||||||
[ ${i} -eq 1 ] && sudo cp -af "${CHROOT_PATH}/mnt/p${i}/"{.locale,.timezone} "/tmp/mnt/p${i}/" 2>/dev/null
|
|
||||||
sudo cp -rf "${CHROOT_PATH}/mnt/p${i}/"* "/tmp/mnt/p${i}" || {
|
|
||||||
echo "Can't cp ${LOOPX}p${i}."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
|
|
||||||
sudo sync
|
|
||||||
for i in {1..3}; do
|
|
||||||
sudo umount "/tmp/mnt/p${i}"
|
|
||||||
rm -rf "/tmp/mnt/p${i}"
|
|
||||||
done
|
|
||||||
sudo losetup --detach "${LOOPX}"
|
|
||||||
echo "OK."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
function resize() {
|
|
||||||
local INPUT_FILE="${1}"
|
|
||||||
local CHANGE_SIZE="${2}"
|
|
||||||
local OUTPUT_FILE="${3:-${INPUT_FILE}}"
|
|
||||||
|
|
||||||
[ -z "${INPUT_FILE}" ] || [ ! -f "${INPUT_FILE}" ] && exit 1
|
|
||||||
[ -z "${CHANGE_SIZE}" ] && exit 1
|
|
||||||
|
|
||||||
INPUT_FILE="$(realpath "${INPUT_FILE}")"
|
|
||||||
OUTPUT_FILE="$(realpath "${OUTPUT_FILE}")"
|
|
||||||
|
|
||||||
local SIZE=$(($(du -sm "${INPUT_FILE}" 2>/dev/null | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g')))
|
|
||||||
[ "${SIZE:-0}" -lt 0 ] && exit 1
|
|
||||||
|
|
||||||
if [ ! "${INPUT_FILE}" = "${OUTPUT_FILE}" ]; then
|
|
||||||
sudo cp -f "${INPUT_FILE}" "${OUTPUT_FILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo truncate -s ${SIZE}M "${OUTPUT_FILE}"
|
|
||||||
echo -e "d\n\nn\n\n\n\n\nn\nw" | sudo fdisk "${OUTPUT_FILE}" >/dev/null 2>&1
|
|
||||||
local LOOPX LOOPXPY
|
|
||||||
LOOPX=$(sudo losetup -f)
|
|
||||||
sudo losetup -P "${LOOPX}" "${OUTPUT_FILE}"
|
|
||||||
LOOPXPY="$(find "${LOOPX}p"* -maxdepth 0 2>/dev/null | sort -n | tail -1)"
|
|
||||||
sudo e2fsck -fp "${LOOPXPY:-${LOOPX}p3}"
|
|
||||||
sudo resize2fs "${LOOPXPY:-${LOOPX}p3}"
|
|
||||||
sudo losetup -d "${LOOPX}"
|
|
||||||
}
|
|
||||||
|
|
||||||
"$@"
|
|
||||||
@ -250,7 +250,6 @@ function unpackInitrd() {
|
|||||||
local OUTPUT_PATH="${2}"
|
local OUTPUT_PATH="${2}"
|
||||||
|
|
||||||
[ -z "${INITRD_FILE}" ] || [ ! -f "${INITRD_FILE}" ] && exit 1
|
[ -z "${INITRD_FILE}" ] || [ ! -f "${INITRD_FILE}" ] && exit 1
|
||||||
[ -z "${OUTPUT_PATH}" ] || [ ! -d "${OUTPUT_PATH}" ] && exit 1
|
|
||||||
|
|
||||||
INITRD_FILE="$(realpath "${INITRD_FILE}")"
|
INITRD_FILE="$(realpath "${INITRD_FILE}")"
|
||||||
OUTPUT_PATH="$(realpath "${OUTPUT_PATH}")"
|
OUTPUT_PATH="$(realpath "${OUTPUT_PATH}")"
|
||||||
|
|||||||
117
sourcebuild.sh
117
sourcebuild.sh
@ -1,117 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright (C) 2022 Ing <https://github.com/wjz304>
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the MIT License.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
# sudo apt update
|
|
||||||
# sudo apt install -y locales busybox dialog gettext sed gawk jq curl
|
|
||||||
# sudo apt install -y python-is-python3 python3-pip libelf-dev qemu-utils dosfstools cpio xz-utils lz4 lzma bzip2 gzip zstd
|
|
||||||
# # sudo snap install yq
|
|
||||||
# if ! type yq >/dev/null 2>&1 || ! yq --version 2>/dev/null | grep -q "v4."; then
|
|
||||||
# sudo curl -kL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/bin/yq && sudo chmod a+x /usr/bin/yq
|
|
||||||
# fi
|
|
||||||
#
|
|
||||||
# # Backup the original python3 executable.
|
|
||||||
# sudo mv -f "$(realpath $(which python3))/EXTERNALLY-MANAGED" "$(realpath $(which python3))/EXTERNALLY-MANAGED.bak" 2>/dev/null || true
|
|
||||||
# sudo pip3 install -U click requests requests-toolbelt qrcode[pil] beautifulsoup4
|
|
||||||
#
|
|
||||||
# sudo locale-gen ar_SA.UTF-8 de_DE.UTF-8 en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 ru_RU.UTF-8 th_TH.UTF-8 tr_TR.UTF-8 uk_UA.UTF-8 vi_VN.UTF-8 zh_CN.UTF-8 zh_HK.UTF-8 zh_TW.UTF-8
|
|
||||||
#
|
|
||||||
# export TOKEN="${1}"
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$(id -u)" -ne 0 ]; then
|
|
||||||
echo "This script must be run as root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
. scripts/func.sh "${TOKEN}"
|
|
||||||
|
|
||||||
echo "Get extractor"
|
|
||||||
getCKs "files/mnt/p3/cks" "true"
|
|
||||||
getLKMs "files/mnt/p3/lkms" "true"
|
|
||||||
getAddons "files/mnt/p3/addons" "true"
|
|
||||||
getModules "files/mnt/p3/modules" "true"
|
|
||||||
getBuildroot "files/mnt/p3" "true"
|
|
||||||
getExtractor "files/mnt/p3/extractor"
|
|
||||||
|
|
||||||
echo "Repack initrd"
|
|
||||||
convertpo2mo "files/initrd/opt/rr/lang"
|
|
||||||
repackInitrd "files/mnt/p3/initrd-rr" "files/initrd"
|
|
||||||
|
|
||||||
if [ -n "${1}" ]; then
|
|
||||||
LOADER_DISK="LOCALBUILD"
|
|
||||||
CHROOT_PATH="$(realpath files)"
|
|
||||||
export LOADER_DISK="LOCALBUILD"
|
|
||||||
export CHROOT_PATH="${CHROOT_PATH}"
|
|
||||||
(
|
|
||||||
cd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
|
||||||
./init.sh
|
|
||||||
./menu.sh modelMenu "${1}"
|
|
||||||
./menu.sh productversMenu "${2:-7.2}"
|
|
||||||
./menu.sh make -1
|
|
||||||
./menu.sh cleanCache -1
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
IMAGE_FILE="rr.img"
|
|
||||||
gzip -dc "files/initrd/opt/rr/grub.img.gz" >"${IMAGE_FILE}"
|
|
||||||
fdisk -l "${IMAGE_FILE}"
|
|
||||||
|
|
||||||
LOOPX=$(sudo losetup -f)
|
|
||||||
sudo losetup -P "${LOOPX}" "${IMAGE_FILE}"
|
|
||||||
|
|
||||||
# Check partitions and ignore errors
|
|
||||||
fsck.vfat -aw "${LOOPX}p1" >/dev/null 2>&1 || true
|
|
||||||
fsck.ext2 -p "${LOOPX}p2" >/dev/null 2>&1 || true
|
|
||||||
fsck.ext4 -p "${LOOPX}p3" >/dev/null 2>&1 || true
|
|
||||||
|
|
||||||
for i in {1..3}; do
|
|
||||||
[ ! -d "files/mnt/p${i}" ] && continue
|
|
||||||
|
|
||||||
rm -rf "/tmp/mnt/p${i}"
|
|
||||||
mkdir -p "/tmp/mnt/p${i}"
|
|
||||||
|
|
||||||
echo "Mounting ${LOOPX}p${i}"
|
|
||||||
sudo mount "${LOOPX}p${i}" "/tmp/mnt/p${i}" || {
|
|
||||||
echo "Can't mount ${LOOPX}p${i}."
|
|
||||||
break
|
|
||||||
}
|
|
||||||
echo "Copying files to ${LOOPX}p${i}"
|
|
||||||
[ ${i} -eq 1 ] && sudo cp -af "files/mnt/p${i}/"{.locale,.timezone} "/tmp/mnt/p${i}/" 2>/dev/null || true
|
|
||||||
sudo cp -rf "files/mnt/p${i}/"* "/tmp/mnt/p${i}" || true
|
|
||||||
|
|
||||||
sudo sync
|
|
||||||
|
|
||||||
echo "Unmounting ${LOOPX}p${i}"
|
|
||||||
sudo umount "/tmp/mnt/p${i}" || {
|
|
||||||
echo "Can't umount ${LOOPX}p${i}."
|
|
||||||
break
|
|
||||||
}
|
|
||||||
rm -rf "/tmp/mnt/p${i}"
|
|
||||||
done
|
|
||||||
|
|
||||||
sudo losetup --detach "${LOOPX}"
|
|
||||||
|
|
||||||
resizeImg "${IMAGE_FILE}" "+2560M"
|
|
||||||
|
|
||||||
# convertova "${IMAGE_FILE}" "${IMAGE_FILE/.img/.ova}"
|
|
||||||
|
|
||||||
# update.zip
|
|
||||||
sha256sum update-list.yml update-check.sh >sha256sum
|
|
||||||
zip -9j "update.zip" update-list.yml update-check.sh
|
|
||||||
while read -r F; do
|
|
||||||
if [ -d "${F}" ]; then
|
|
||||||
FTGZ="$(basename "${F}").tgz"
|
|
||||||
tar -zcf "${FTGZ}" -C "${F}" .
|
|
||||||
sha256sum "${FTGZ}" >>sha256sum
|
|
||||||
zip -9j "update.zip" "${FTGZ}"
|
|
||||||
rm -f "${FTGZ}"
|
|
||||||
else
|
|
||||||
(cd "$(dirname "${F}")" && sha256sum "$(basename "${F}")") >>sha256sum
|
|
||||||
zip -9j "update.zip" "${F}"
|
|
||||||
fi
|
|
||||||
done <<<"$(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)"
|
|
||||||
zip -9j "update.zip" sha256sum
|
|
||||||
Loading…
x
Reference in New Issue
Block a user