diff --git a/VERSION b/VERSION index eadcfe27..e60bb9e8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0-beta5 +1.0-beta7 diff --git a/docker/syno-compiler/Dockerfile.template b/docker/syno-compiler/Dockerfile.template index ba1558e4..e056516e 100644 --- a/docker/syno-compiler/Dockerfile.template +++ b/docker/syno-compiler/Dockerfile.template @@ -3,7 +3,7 @@ ARG PLATFORMS="@@@PLATFORMS@@@" ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@" # Copy downloaded toolkits -ADD cache/$TOOLKIT_VER /cache +ADD cache /cache # Extract toolkits RUN for V in ${PLATFORMS}; do \ echo "${V}" | while IFS=':' read PLATFORM KVER; do \ diff --git a/docker/syno-compiler/build.sh b/docker/syno-compiler/build.sh index e4c8cf78..dd53d3b8 100755 --- a/docker/syno-compiler/build.sh +++ b/docker/syno-compiler/build.sh @@ -23,6 +23,7 @@ function prepare() { URLS["geminilake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29/geminilake-${GCCLIB_VER}_x86_64-GPL.txz" URLS["v1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28V1000%29/v1000-${GCCLIB_VER}_x86_64-GPL.txz" URLS["r1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%204.4.180%20%28r1000%29/r1000-${GCCLIB_VER}_x86_64-GPL.txz" + URLS["epyc7002"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%20Linux%205.10.55%20%28epyc7002%29/epyc7002-${GCCLIB_VER}_x86_64-GPL.txz" # Read platforms/kerver version echo "Reading platforms" diff --git a/docker/syno-compiler/files/opt/do.sh b/docker/syno-compiler/files/opt/do.sh index 92d02ef5..3e7fc2e6 100755 --- a/docker/syno-compiler/files/opt/do.sh +++ b/docker/syno-compiler/files/opt/do.sh @@ -9,15 +9,16 @@ function export-vars() { echo "Use: export-vars " exit 1 fi + export PLATFORM="${1}" export KSRC="/opt/${1}/build" export CROSS_COMPILE="/opt/${1}/bin/x86_64-pc-linux-gnu-" export CFLAGS="-I/opt/${1}/include" export LDFLAGS="-I/opt/${1}/lib" export LD_LIBRARY_PATH="/opt/${1}/lib" export ARCH=x86_64 - export PATH="/opt/${1}/bin:${PATH}" export CC="x86_64-pc-linux-gnu-gcc" export LD="x86_64-pc-linux-gnu-ld" + export PATH="/opt/${1}/bin:${PATH}" } ############################################################################### diff --git a/docker/syno-toolkit/rootfs/etc/profile.d/login.sh b/docker/syno-toolkit/rootfs/etc/profile.d/login.sh old mode 100644 new mode 100755 index 69629346..aa0a4360 --- a/docker/syno-toolkit/rootfs/etc/profile.d/login.sh +++ b/docker/syno-toolkit/rootfs/etc/profile.d/login.sh @@ -1,3 +1,4 @@ +export PATH="/usr/local/x86_64-pc-linux-gnu/bin:${PATH}" [[ "$-" != *i* ]] && return export LS_OPTIONS='--color=auto' export SHELL='linux' @@ -7,4 +8,3 @@ alias ll='ls -l' alias l='ls -l -a' alias h='history 25' alias j='jobs -l' -export PATH="/opt/${PLATFORM}/bin:${PATH}" \ No newline at end of file diff --git a/docker/syno-toolkit/rootfs/usr/bin/do.sh b/docker/syno-toolkit/rootfs/usr/bin/do.sh index 522f19ef..af9b31ee 100755 --- a/docker/syno-toolkit/rootfs/usr/bin/do.sh +++ b/docker/syno-toolkit/rootfs/usr/bin/do.sh @@ -29,30 +29,6 @@ function compile-lkm { chown 1000.1000 /output/redpill-prod.ko } -############################################################################### -# function compile-drivers { -# while read platform kver; do -# SRC_PATH="/opt/${platform}" -# echo "Compiling for ${platform}-${kver}" -# cd /opt/linux-${kver}/drivers -# while read dir; do -# if [ -f "${dir}/Makefile" ]; then -# echo "Driver `basename ${dir}`" -# grep "CONFIG_.*/.*" "${dir}/Makefile" | sed 's/.*\(CONFIG_[^)]*\).*/\1=n/g' > /tmp/env -# grep "CONFIG_.*\.o.*" "${dir}/Makefile" | sed 's/.*\(CONFIG_[^)]*\).*/\1=m/g' >> /tmp/env -# make -C "${SRC_PATH}" M=$(readlink -f "${dir}") clean -# cat /tmp/env | xargs -d '\n' make -C "${SRC_PATH}" M=$(readlink -f "${dir}") modules $@ -# fi -# done < <(find -type d) -# DST_PATH="/output/compiled-mods/${platform}-${kver}" -# mkdir -p "${DST_PATH}" -# while read f; do -# strip -g "${f}" -# mv "${f}" "${DST_PATH}" -# done < <(find -name \*.ko) -# done /dev/null +dd if="/dev/zero" of="${IMAGE_FILE}" bs=1M count=1024 conv=sync 2>/dev/null # Copy grub stage1 to image dd if="${BOARD_PATH}/grub.bin" of="${IMAGE_FILE}" conv=notrunc,sync 2>/dev/null # Create partitions on image diff --git a/files/board/arpl/overlayfs/opt/arpl/include/consts.sh b/files/board/arpl/overlayfs/opt/arpl/include/consts.sh index afe1c6a3..09677e80 100644 --- a/files/board/arpl/overlayfs/opt/arpl/include/consts.sh +++ b/files/board/arpl/overlayfs/opt/arpl/include/consts.sh @@ -1,5 +1,5 @@ -ARPL_VERSION="1.0-beta5" +ARPL_VERSION="1.0-beta7" # Define paths TMP_PATH="/tmp" diff --git a/files/board/arpl/overlayfs/opt/arpl/menu.sh b/files/board/arpl/overlayfs/opt/arpl/menu.sh index 3fb87060..b5ce43bf 100755 --- a/files/board/arpl/overlayfs/opt/arpl/menu.sh +++ b/files/board/arpl/overlayfs/opt/arpl/menu.sh @@ -4,12 +4,12 @@ . /opt/arpl/include/addons.sh . /opt/arpl/include/modules.sh -# Check partition 3 space, if < 2GiB uses ramdisk -RAMCACHE=0 +# Check partition 3 space, if < 2GiB is necessary clean cache folder +CLEARCACHE=0 LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`" LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'` if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194304 ]; then - RAMCACHE=1 + CLEARCACHE=1 fi # Get actual IP @@ -529,6 +529,253 @@ function synoinfoMenu() { done } +############################################################################### +# Extract linux and ramdisk files from the DSM .pat +function extractDsmFiles() { + PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`" + PAT_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.hash"`" + RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`" + ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`" + + # If we have little disk space, clean cache folder + if [ ${CLEARCACHE} -eq 1 ]; then + echo "Cleaning cache" + rm -rf "${CACHE_PATH}/dl" + fi + mkdir -p "${CACHE_PATH}/dl" + + SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` # Check disk space left + + PAT_FILE="${MODEL}-${BUILD}.pat" + PAT_PATH="${CACHE_PATH}/dl/${PAT_FILE}" + EXTRACTOR_PATH="${CACHE_PATH}/extractor" + EXTRACTOR_BIN="syno_extract_system_patch" + OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat" + + if [ -f "${PAT_PATH}" ]; then + echo "${PAT_FILE} cached." + else + echo "Downloading ${PAT_FILE}" + # Discover remote file size + FILESIZE=`curl --insecure -sLI "${PAT_URL}" | grep -i Content-Length | awk '{print$2}'` + if [ 0${FILESIZE} -ge ${SPACELEFT} ]; then + # No disk space to download, change it to RAMDISK + PAT_PATH="${TMP_PATH}/${PAT_FILE}" + fi + STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar` + if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then + rm "${PAT_PATH}" + dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \ + --msgbox "Check internet or cache disk space" 0 0 + return 1 + fi + fi + + echo -n "Checking hash of ${PAT_FILE}: " + if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "Hash of pat not match, try again!" 0 0 + rm -f ${PAT_PATH} + return 1 + fi + echo "OK" + + rm -rf "${UNTAR_PAT_PATH}" + mkdir "${UNTAR_PAT_PATH}" + echo -n "Disassembling ${PAT_FILE}: " + + header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')" + case ${header} in + 105) + echo "Uncompressed tar" + isencrypted="no" + ;; + 213) + echo "Compressed tar" + isencrypted="no" + ;; + 255) + echo "Encrypted" + isencrypted="yes" + ;; + *) + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \ + 0 0 + return 1 + ;; + esac + + SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` # Check disk space left + + if [ "${isencrypted}" = "yes" ]; then + # Check existance of extractor + if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then + echo "Extractor cached." + else + # Extractor not exists, get it. + mkdir -p "${EXTRACTOR_PATH}" + # Check if old pat already downloaded + OLDPAT_PATH="${CACHE_PATH}/dl/DS3622xs+-42218.pat" + if [ ! -f "${OLDPAT_PATH}" ]; then + echo "Downloading old pat to extract synology .pat extractor..." + # Discover remote file size + FILESIZE=`curl --insecure -sLI "${OLDPAT_URL}" | grep -i Content-Length | awk '{print$2}'` + if [ 0${FILESIZE} -ge ${SPACELEFT} ]; then + # No disk space to download, change it to RAMDISK + OLDPAT_PATH="${TMP_PATH}/DS3622xs+-42218.pat" + fi + STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar` + if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then + rm "${OLDPAT_PATH}" + dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \ + --msgbox "Check internet or cache disk space" 0 0 + return 1 + fi + fi + # Extract DSM ramdisk file from PAT + rm -rf "${RAMDISK_PATH}" + mkdir -p "${RAMDISK_PATH}" + tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1 + if [ $? -ne 0 ]; then + rm "${OLDPAT_PATH}" + rm -rf "${RAMDISK_PATH}" + dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0 + return 1 + fi + rm -f "${TMP_PATH}/DS3622xs+-42218.pat" + # Extract all files from rd.gz + (cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true + # Copy only necessary files + for f in libcurl.so.4 libmbedcrypto.so.5 libmbedtls.so.13 libmbedx509.so.1 libmsgpackc.so.2 libsodium.so libsynocodesign-ng-virtual-junior-wins.so.7; do + cp "${RAMDISK_PATH}/usr/lib/${f}" "${EXTRACTOR_PATH}" + done + cp "${RAMDISK_PATH}/usr/syno/bin/scemd" "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" + rm -rf "${RAMDISK_PATH}" + fi + # Uses the extractor to untar pat file + echo "Extracting..." + LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${UNTAR_PAT_PATH}" || true + else + echo "Extracting..." + tar -xf "${PAT_PATH}" -C "${UNTAR_PAT_PATH}" >"${LOG_FILE}" 2>&1 + if [ $? -ne 0 ]; then + dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0 + fi + fi + + echo -n "Checking hash of zImage: " + HASH="`sha256sum ${UNTAR_PAT_PATH}/zImage | awk '{print$1}'`" + if [ "${HASH}" != "${ZIMAGE_HASH}" ]; then + sleep 1 + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "Hash of zImage not match, try again!" 0 0 + return 1 + fi + echo "OK" + writeConfigKey "zimage-hash" "${ZIMAGE_HASH}" "${USER_CONFIG_FILE}" + + echo -n "Checking hash of ramdisk: " + HASH="`sha256sum ${UNTAR_PAT_PATH}/rd.gz | awk '{print$1}'`" + if [ "${HASH}" != "${RAMDISK_HASH}" ]; then + sleep 1 + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "Hash of ramdisk not match, try again!" 0 0 + return 1 + fi + echo "OK" + writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}" + + echo -n "Copying files: " + cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}" + cp "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}" + cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}" + cp "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}" + cp "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}" + cp "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}" + rm -rf "${UNTAR_PAT_PATH}" + echo "OK" +} + +############################################################################### +# Where the magic happens! +function make() { + clear + PLATFORM="`readModelKey "${MODEL}" "platform"`" + KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`" + + # Check if all addon exists + while IFS="=" read ADDON PARAM; do + [ -z "${ADDON}" ] && continue + if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "Addon ${ADDON} not found!" 0 0 + return 1 + fi + done < <(readConfigMap "addons" "${USER_CONFIG_FILE}") + + [ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ] && extractDsmFiles + + /opt/arpl/zimage-patch.sh + if [ $? -ne 0 ]; then + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 0 0 + return 1 + fi + + /opt/arpl/ramdisk-patch.sh + if [ $? -ne 0 ]; then + dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ + --msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 0 0 + return 1 + fi + + echo "Cleaning" + rm -rf "${UNTAR_PAT_PATH}" + + echo "Ready!" + sleep 3 + DIRTY=0 + return 0 +} + +############################################################################### +# Advanced menu +function advancedMenu() { + NEXT="l" + while true; do + rm "${TMP_PATH}/menu" + if [ -n "${BUILD}" ]; then + echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu" + echo "o \"Modules\"" >> "${TMP_PATH}/menu" + fi + if loaderIsConfigured; then + echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"" >> "${TMP_PATH}/menu" + fi + echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu" + echo "e \"Exit\"" >> "${TMP_PATH}/menu" + + dialog --default-item ${NEXT} --backtitle "`backtitle`" --title "Advanced" \ + --colors --menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \ + 2>${TMP_PATH}/resp + [ $? -ne 0 ] && break + case `<"${TMP_PATH}/resp"` in + l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev' + writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}" + DIRTY=1 + NEXT="o" + ;; + o) selectModules; NEXT="r" ;; + r) [ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false' + writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}" + NEXT="u" + ;; + u) editUserConfig; NEXT="e" ;; + e) break ;; + esac + done +} + ############################################################################### # Permit user select the modules to include function selectModules() { @@ -608,207 +855,6 @@ function selectModules() { done } -############################################################################### -# Extract linux and ramdisk files from the DSM .pat -function extractDsmFiles() { - PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`" - PAT_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.hash"`" - RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`" - ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`" - - if [ ${RAMCACHE} -eq 0 ]; then - OUT_PATH="${CACHE_PATH}/dl" - echo "Cache in disk" - else - OUT_PATH="${TMP_PATH}/dl" - echo "Cache in ram" - fi - mkdir -p "${OUT_PATH}" - - PAT_FILE="${MODEL}-${BUILD}.pat" - PAT_PATH="${OUT_PATH}/${PAT_FILE}" - EXTRACTOR_PATH="${CACHE_PATH}/extractor" - EXTRACTOR_BIN="syno_extract_system_patch" - OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat" - OLDPAT_PATH="${OUT_PATH}/DS3622xs+-42218.pat" - - if [ -f "${PAT_PATH}" ]; then - echo "${PAT_FILE} cached." - else - echo "Downloading ${PAT_FILE}" - STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar` - if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then - dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \ - --msgbox "Check internet or cache disk space" 0 0 - return 1 - fi - fi - - echo -n "Checking hash of ${PAT_FILE}: " - if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "Hash of pat not match, try again!" 0 0 - rm -f ${PAT_PATH} - return 1 - fi - echo "OK" - - rm -rf "${UNTAR_PAT_PATH}" - mkdir "${UNTAR_PAT_PATH}" - echo -n "Disassembling ${PAT_FILE}: " - - header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')" - case ${header} in - 105) - echo "Uncompressed tar" - isencrypted="no" - ;; - 213) - echo "Compressed tar" - isencrypted="no" - ;; - 255) - echo "Encrypted" - isencrypted="yes" - ;; - *) - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \ - 0 0 - return 1 - ;; - esac - - if [ "${isencrypted}" = "yes" ]; then - # Check existance of extractor - if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then - echo "Extractor cached." - else - # Extractor not exists, get it. - mkdir -p "${EXTRACTOR_PATH}" - # Check if old pat already downloaded - if [ ! -f "${OLDPAT_PATH}" ]; then - echo "Downloading old pat to extract synology .pat extractor..." - STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar` - if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then - dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \ - --msgbox "Check internet or cache disk space" 0 0 - return 1 - fi - fi - # Extract ramdisk from PAT - rm -rf "${RAMDISK_PATH}" - mkdir -p "${RAMDISK_PATH}" - tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1 - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0 - fi - - # Extract all files from rd.gz - (cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true - # Copy only necessary files - for f in libcurl.so.4 libmbedcrypto.so.5 libmbedtls.so.13 libmbedx509.so.1 libmsgpackc.so.2 libsodium.so libsynocodesign-ng-virtual-junior-wins.so.7; do - cp "${RAMDISK_PATH}/usr/lib/${f}" "${EXTRACTOR_PATH}" - done - cp "${RAMDISK_PATH}/usr/syno/bin/scemd" "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" - rm -rf "${RAMDISK_PATH}" - fi - # Uses the extractor to untar pat file - echo "Extracting..." - LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${UNTAR_PAT_PATH}" || true - else - echo "Extracting..." - tar -xf "${PAT_PATH}" -C "${UNTAR_PAT_PATH}" >"${LOG_FILE}" 2>&1 - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0 - fi - fi - - echo -n "Checking hash of zImage: " - HASH="`sha256sum ${UNTAR_PAT_PATH}/zImage | awk '{print$1}'`" - if [ "${HASH}" != "${ZIMAGE_HASH}" ]; then - sleep 1 - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "Hash of zImage not match, try again!" 0 0 - return 1 - fi - echo "OK" - writeConfigKey "zimage-hash" "${ZIMAGE_HASH}" "${USER_CONFIG_FILE}" - - echo -n "Checking hash of ramdisk: " - HASH="`sha256sum ${UNTAR_PAT_PATH}/rd.gz | awk '{print$1}'`" - if [ "${HASH}" != "${RAMDISK_HASH}" ]; then - sleep 1 - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "Hash of ramdisk not match, try again!" 0 0 - return 1 - fi - echo "OK" - writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}" - - echo -n "Copying files: " - cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}" - cp "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}" - cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}" - cp "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}" - cp "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}" - cp "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}" - echo "OK" -} - -############################################################################### -# Where the magic happens! -function make() { - clear - PLATFORM="`readModelKey "${MODEL}" "platform"`" - KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`" - - # Check if all addon exists - while IFS="=" read ADDON PARAM; do - [ -z "${ADDON}" ] && continue - if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "Addon ${ADDON} not found!" 0 0 - return 1 - fi - done < <(readConfigMap "addons" "${USER_CONFIG_FILE}") - - [ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ] && extractDsmFiles - - /opt/arpl/zimage-patch.sh - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 0 0 - return 1 - fi - - /opt/arpl/ramdisk-patch.sh - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \ - --msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 0 0 - return 1 - fi - - echo "Cleaning" - rm -rf "${UNTAR_PAT_PATH}" - - echo "Ready!" - sleep 3 - DIRTY=0 - return 0 -} - -############################################################################### -# Calls boot.sh to boot into DSM kernel/ramdisk -function boot() { - [ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \ - --yesno "Config changed, would you like to rebuild the loader?" 0 0 - if [ $? -eq 0 ]; then - make || return - fi - boot.sh -} - ############################################################################### # Permits user edit the user config function editUserConfig() { @@ -835,6 +881,17 @@ function editUserConfig() { DIRTY=1 } +############################################################################### +# Calls boot.sh to boot into DSM kernel/ramdisk +function boot() { + [ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \ + --yesno "Config changed, would you like to rebuild the loader?" 0 0 + if [ $? -eq 0 ]; then + make || return + fi + boot.sh +} + ############################################################################### # Shows available keymaps to user choose one function keymapMenu() { @@ -951,6 +1008,7 @@ function updateMenu() { unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1 dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \ --infobox "Installing new addons" 0 0 + rm -Rf "${ADDONS_PATH}/"* for PKG in `ls /tmp/addons/*.addon`; do ADDON=`basename ${PKG} | sed 's|.addon||'` rm -rf "${ADDONS_PATH}/${ADDON}" @@ -1047,21 +1105,21 @@ while true; do echo "a \"Addons\"" >> "${TMP_PATH}/menu" echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu" echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu" - echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu" - echo "o \"Modules\"" >> "${TMP_PATH}/menu" echo "d \"Build the loader\"" >> "${TMP_PATH}/menu" fi fi + echo "v \"Advanced menu\"" >> "${TMP_PATH}/menu" if loaderIsConfigured; then - echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"">> "${TMP_PATH}/menu" echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu" fi - echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu" echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu" - [ ${RAMCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ] && echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu" + if [ ${CLEARCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ]; then + echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu" + fi echo "p \"Update menu\"" >> "${TMP_PATH}/menu" echo "e \"Exit\"" >> "${TMP_PATH}/menu" - dialog --clear --default-item ${NEXT} --backtitle "`backtitle`" --colors \ + + dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \ --menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \ 2>${TMP_PATH}/resp [ $? -ne 0 ] && break @@ -1071,20 +1129,10 @@ while true; do s) serialMenu; NEXT="a" ;; a) addonMenu; NEXT="x" ;; x) cmdlineMenu; NEXT="i" ;; - i) synoinfoMenu; NEXT="l" ;; - l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev' - writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}" - DIRTY=1 - NEXT="o" - ;; - o) selectModules; NEXT="d" ;; - d) make; NEXT="r" ;; - r) [ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false' - writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}" - NEXT="b" - ;; + i) synoinfoMenu; NEXT="d" ;; + d) make; NEXT="v" ;; + v) advancedMenu; NEXT="b" ;; b) boot ;; - u) editUserConfig; NEXT="u" ;; k) keymapMenu ;; c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \ --prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;; diff --git a/files/board/arpl/p3/addons/9p/apollolake-4.4.180.tgz b/files/board/arpl/p3/addons/9p/apollolake-4.4.180.tgz index b63c0d48..d923b49e 100644 Binary files a/files/board/arpl/p3/addons/9p/apollolake-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/apollolake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/9p/broadwell-4.4.180.tgz b/files/board/arpl/p3/addons/9p/broadwell-4.4.180.tgz index 5441c2bb..08593d8a 100644 Binary files a/files/board/arpl/p3/addons/9p/broadwell-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/broadwell-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/9p/broadwellnk-4.4.180.tgz b/files/board/arpl/p3/addons/9p/broadwellnk-4.4.180.tgz index 5abb0a98..965bce66 100644 Binary files a/files/board/arpl/p3/addons/9p/broadwellnk-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/broadwellnk-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/9p/bromolow-3.10.108.tgz b/files/board/arpl/p3/addons/9p/bromolow-3.10.108.tgz index df4fc200..ccc6c438 100644 Binary files a/files/board/arpl/p3/addons/9p/bromolow-3.10.108.tgz and b/files/board/arpl/p3/addons/9p/bromolow-3.10.108.tgz differ diff --git a/files/board/arpl/p3/addons/9p/denverton-4.4.180.tgz b/files/board/arpl/p3/addons/9p/denverton-4.4.180.tgz index 33624996..173a1593 100644 Binary files a/files/board/arpl/p3/addons/9p/denverton-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/denverton-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/9p/geminilake-4.4.180.tgz b/files/board/arpl/p3/addons/9p/geminilake-4.4.180.tgz index bb0ac5c7..28915e54 100644 Binary files a/files/board/arpl/p3/addons/9p/geminilake-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/geminilake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/9p/r1000-4.4.180.tgz b/files/board/arpl/p3/addons/9p/r1000-4.4.180.tgz index 1959707e..a8380795 100644 Binary files a/files/board/arpl/p3/addons/9p/r1000-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/r1000-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/9p/v1000-4.4.180.tgz b/files/board/arpl/p3/addons/9p/v1000-4.4.180.tgz index 6aef0323..9da57d44 100644 Binary files a/files/board/arpl/p3/addons/9p/v1000-4.4.180.tgz and b/files/board/arpl/p3/addons/9p/v1000-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/acpid/all.tgz b/files/board/arpl/p3/addons/acpid/all.tgz index 876d6fbc..5dcd20fd 100644 Binary files a/files/board/arpl/p3/addons/acpid/all.tgz and b/files/board/arpl/p3/addons/acpid/all.tgz differ diff --git a/files/board/arpl/p3/addons/dbgutils/all.tgz b/files/board/arpl/p3/addons/dbgutils/all.tgz index 027f0cd3..0a9df9a5 100644 Binary files a/files/board/arpl/p3/addons/dbgutils/all.tgz and b/files/board/arpl/p3/addons/dbgutils/all.tgz differ diff --git a/files/board/arpl/p3/addons/dtbpatch/all.tgz b/files/board/arpl/p3/addons/dtbpatch/all.tgz index 950d20b2..d00e9451 100644 Binary files a/files/board/arpl/p3/addons/dtbpatch/all.tgz and b/files/board/arpl/p3/addons/dtbpatch/all.tgz differ diff --git a/files/board/arpl/p3/addons/eudev/all.tgz b/files/board/arpl/p3/addons/eudev/all.tgz index 09f7707a..74c1eff2 100644 Binary files a/files/board/arpl/p3/addons/eudev/all.tgz and b/files/board/arpl/p3/addons/eudev/all.tgz differ diff --git a/files/board/arpl/p3/addons/i915-10th/apollolake-4.4.180.tgz b/files/board/arpl/p3/addons/i915-10th/apollolake-4.4.180.tgz index be130bee..74f2ee11 100644 Binary files a/files/board/arpl/p3/addons/i915-10th/apollolake-4.4.180.tgz and b/files/board/arpl/p3/addons/i915-10th/apollolake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/i915-10th/geminilake-4.4.180.tgz b/files/board/arpl/p3/addons/i915-10th/geminilake-4.4.180.tgz index 30b9620e..b3b59317 100644 Binary files a/files/board/arpl/p3/addons/i915-10th/geminilake-4.4.180.tgz and b/files/board/arpl/p3/addons/i915-10th/geminilake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/i915-8th/apollolake-4.4.180.tgz b/files/board/arpl/p3/addons/i915-8th/apollolake-4.4.180.tgz index 6c434f13..464ad3a1 100644 Binary files a/files/board/arpl/p3/addons/i915-8th/apollolake-4.4.180.tgz and b/files/board/arpl/p3/addons/i915-8th/apollolake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/addons/lsiutil/all.tgz b/files/board/arpl/p3/addons/lsiutil/all.tgz index c3568e46..bc2b34fe 100644 Binary files a/files/board/arpl/p3/addons/lsiutil/all.tgz and b/files/board/arpl/p3/addons/lsiutil/all.tgz differ diff --git a/files/board/arpl/p3/addons/maxdisks/all.tgz b/files/board/arpl/p3/addons/maxdisks/all.tgz index 25e23599..007f888d 100644 Binary files a/files/board/arpl/p3/addons/maxdisks/all.tgz and b/files/board/arpl/p3/addons/maxdisks/all.tgz differ diff --git a/files/board/arpl/p3/addons/misc/all.tgz b/files/board/arpl/p3/addons/misc/all.tgz index 82ce43b3..0cb4b4b6 100644 Binary files a/files/board/arpl/p3/addons/misc/all.tgz and b/files/board/arpl/p3/addons/misc/all.tgz differ diff --git a/files/board/arpl/p3/addons/powersched/all.tgz b/files/board/arpl/p3/addons/powersched/all.tgz index f89bdc6c..0e481e74 100644 Binary files a/files/board/arpl/p3/addons/powersched/all.tgz and b/files/board/arpl/p3/addons/powersched/all.tgz differ diff --git a/files/board/arpl/p3/addons/reducelog/all.tgz b/files/board/arpl/p3/addons/reducelog/all.tgz index 563721d5..f22565c0 100644 Binary files a/files/board/arpl/p3/addons/reducelog/all.tgz and b/files/board/arpl/p3/addons/reducelog/all.tgz differ diff --git a/files/board/arpl/p3/addons/remove-pma/all.tgz b/files/board/arpl/p3/addons/remove-pma/all.tgz index 07e2acac..e3dc3083 100644 Binary files a/files/board/arpl/p3/addons/remove-pma/all.tgz and b/files/board/arpl/p3/addons/remove-pma/all.tgz differ diff --git a/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-dev.ko.gz index 4518f0fa..944b86d8 100644 Binary files a/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-prod.ko.gz index 690076ad..d22bd52c 100644 Binary files a/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-apollolake-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-dev.ko.gz index d178241a..e74b8e10 100644 Binary files a/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-prod.ko.gz index 015475e6..e8ce57f5 100644 Binary files a/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-broadwell-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-dev.ko.gz index b72be8cc..ac176cbe 100644 Binary files a/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-prod.ko.gz index 97e2a1ef..37328168 100644 Binary files a/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-broadwellnk-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-dev.ko.gz b/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-dev.ko.gz index 30024ecd..4e2f48f1 100644 Binary files a/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-prod.ko.gz b/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-prod.ko.gz index 048a44f1..3213301d 100644 Binary files a/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-bromolow-3.10.108-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-denverton-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-denverton-4.4.180-dev.ko.gz index d6b66fea..1dfde497 100644 Binary files a/files/board/arpl/p3/lkms/rp-denverton-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-denverton-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-denverton-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-denverton-4.4.180-prod.ko.gz index 68960ad7..bfb165eb 100644 Binary files a/files/board/arpl/p3/lkms/rp-denverton-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-denverton-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-dev.ko.gz index 3bdf9781..9a64e5dd 100644 Binary files a/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-prod.ko.gz index 35ba8516..b74370ee 100644 Binary files a/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-geminilake-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-r1000-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-r1000-4.4.180-dev.ko.gz index f1a8c501..56549464 100644 Binary files a/files/board/arpl/p3/lkms/rp-r1000-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-r1000-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-r1000-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-r1000-4.4.180-prod.ko.gz index 6724f7a5..38ffede0 100644 Binary files a/files/board/arpl/p3/lkms/rp-r1000-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-r1000-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-v1000-4.4.180-dev.ko.gz b/files/board/arpl/p3/lkms/rp-v1000-4.4.180-dev.ko.gz index 7c7fe142..8b6bce37 100644 Binary files a/files/board/arpl/p3/lkms/rp-v1000-4.4.180-dev.ko.gz and b/files/board/arpl/p3/lkms/rp-v1000-4.4.180-dev.ko.gz differ diff --git a/files/board/arpl/p3/lkms/rp-v1000-4.4.180-prod.ko.gz b/files/board/arpl/p3/lkms/rp-v1000-4.4.180-prod.ko.gz index 70b3bc63..00e23254 100644 Binary files a/files/board/arpl/p3/lkms/rp-v1000-4.4.180-prod.ko.gz and b/files/board/arpl/p3/lkms/rp-v1000-4.4.180-prod.ko.gz differ diff --git a/files/board/arpl/p3/modules/apollolake-4.4.180.tgz b/files/board/arpl/p3/modules/apollolake-4.4.180.tgz index 2e8c6e85..0bb69bbe 100644 Binary files a/files/board/arpl/p3/modules/apollolake-4.4.180.tgz and b/files/board/arpl/p3/modules/apollolake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/modules/broadwell-4.4.180.tgz b/files/board/arpl/p3/modules/broadwell-4.4.180.tgz index eaac5a5e..d7519c80 100644 Binary files a/files/board/arpl/p3/modules/broadwell-4.4.180.tgz and b/files/board/arpl/p3/modules/broadwell-4.4.180.tgz differ diff --git a/files/board/arpl/p3/modules/broadwellnk-4.4.180.tgz b/files/board/arpl/p3/modules/broadwellnk-4.4.180.tgz index dcd72fb7..c887b7e0 100644 Binary files a/files/board/arpl/p3/modules/broadwellnk-4.4.180.tgz and b/files/board/arpl/p3/modules/broadwellnk-4.4.180.tgz differ diff --git a/files/board/arpl/p3/modules/bromolow-3.10.108.tgz b/files/board/arpl/p3/modules/bromolow-3.10.108.tgz index 3d7f8dfa..46713a35 100644 Binary files a/files/board/arpl/p3/modules/bromolow-3.10.108.tgz and b/files/board/arpl/p3/modules/bromolow-3.10.108.tgz differ diff --git a/files/board/arpl/p3/modules/denverton-4.4.180.tgz b/files/board/arpl/p3/modules/denverton-4.4.180.tgz index a2c4ae41..f4daf2dc 100644 Binary files a/files/board/arpl/p3/modules/denverton-4.4.180.tgz and b/files/board/arpl/p3/modules/denverton-4.4.180.tgz differ diff --git a/files/board/arpl/p3/modules/geminilake-4.4.180.tgz b/files/board/arpl/p3/modules/geminilake-4.4.180.tgz index 09e3d004..3ff51516 100644 Binary files a/files/board/arpl/p3/modules/geminilake-4.4.180.tgz and b/files/board/arpl/p3/modules/geminilake-4.4.180.tgz differ diff --git a/files/board/arpl/p3/modules/r1000-4.4.180.tgz b/files/board/arpl/p3/modules/r1000-4.4.180.tgz index a8e009c6..28472036 100644 Binary files a/files/board/arpl/p3/modules/r1000-4.4.180.tgz and b/files/board/arpl/p3/modules/r1000-4.4.180.tgz differ diff --git a/files/board/arpl/p3/modules/v1000-4.4.180.tgz b/files/board/arpl/p3/modules/v1000-4.4.180.tgz index bdb11356..b26c5923 100644 Binary files a/files/board/arpl/p3/modules/v1000-4.4.180.tgz and b/files/board/arpl/p3/modules/v1000-4.4.180.tgz differ diff --git a/new_bn.sh b/new_bn.sh index 55db260f..29eaa507 100755 --- a/new_bn.sh +++ b/new_bn.sh @@ -7,6 +7,7 @@ set -e declare -A KVERS KVERS["DS918+"]="4.4.180" KVERS["DS920+"]="4.4.180" +KVERS["DS923+"]="4.4.180" KVERS["DS1520+"]="4.4.180" KVERS["DS1621+"]="4.4.180" KVERS["DS2422+"]="4.4.180" @@ -22,7 +23,7 @@ RELEASE="7.1.1" BUILDNUMBER="42962" EXTRA="" -for MODEL in DS918+ DS920+ DS1520+ DS1621+ DS2422+ DS3615xs DS3617xs DS3622xs+ DVA1622 DVA3221 DVA3219 FS2500 RS4021xs+; do +for MODEL in DS918+ DS920+ DS923+ DS1520+ DS1621+ DS2422+ DS3615xs DS3617xs DS3622xs+ DVA1622 DVA3221 DVA3219 FS2500 RS4021xs+; do MODEL_CODED=`echo ${MODEL} | sed 's/+/%2B/g'` URL="https://global.download.synology.com/download/DSM/release/${RELEASE}/${BUILDNUMBER}${EXTRA}/DSM_${MODEL_CODED}_${BUILDNUMBER}.pat" #URL="https://archive.synology.com/download/Os/DSM/${RELEASE}-${BUILDNUMBER}/DSM_${MODEL_CODED}_${BUILDNUMBER}.pat" diff --git a/rss.json b/rss.json index e4d70ea3..bbef0bb4 100644 --- a/rss.json +++ b/rss.json @@ -61,6 +61,11 @@ "mLink": "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS920%2B_42962.pat", "mCheckSum": "ba9fbd499791d19859dd9a53372b016a" }, + { + "mUnique": "synology_r1000_923+", + "mLink": "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS923%2B_42962.pat", + "mCheckSum": "fdff6232dacf9bd3b189506f51577128" + }, { "mUnique": "synology_geminilake_dva1622", "mLink": "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DVA1622_42962.pat", diff --git a/rss.xml b/rss.xml index f6da22b1..536fc57f 100644 --- a/rss.xml +++ b/rss.xml @@ -57,6 +57,11 @@ https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS920%2B_42962.pat ba9fbd499791d19859dd9a53372b016a + + synology_r1000_923+ + https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS923%2B_42962.pat + fdff6232dacf9bd3b189506f51577128 + synology_geminilake_dva1622 https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DVA1622_42962.pat