Compare commits

...

64 Commits

Author SHA1 Message Date
Fabio Belavenuto
43fc67d1a4 Merge pull request #483 from fbelavenuto/update-modules-bug
Fixing a bug into update modules, now the user modules is rebuilded
2023-01-10 12:44:49 -03:00
Fabio Belavenuto
a1c6610faa Fixing a bug into update modules, now the user modules is rebuilded 2023-01-10 12:44:34 -03:00
Fabio Belavenuto
8fe236521c Merge pull request #481 from fbelavenuto/shr-rs4021xs+
Adding support to SHR into RS4021xs+ model
2023-01-09 22:10:15 -03:00
Fabio Belavenuto
b019ede88d Adding support to SHR into RS4021xs+ model 2023-01-09 22:10:00 -03:00
Fabio Belavenuto
2c1a45f356 Merge pull request #480 from fbelavenuto/kexec
Changing to execute kexec on poweroff
2023-01-09 21:15:12 -03:00
Fabio Belavenuto
8875aa160b Changing to execute kexec on poweroff 2023-01-09 21:14:52 -03:00
Fabio Belavenuto
3a13b66c7a Update README.md
Adding Rikkie's tutorial link
2023-01-06 19:55:35 -03:00
Fabio Belavenuto
309e33f012 Merge pull request #478 from fbelavenuto/474-32bit-efi-cannot-boot
Adding EFI 32bit
2023-01-05 13:17:12 -03:00
Fabio Belavenuto
6e784213c6 Adding 2023-01-05 12:56:13 -03:00
Fabio Belavenuto
6d5177bb43 Merge pull request #476 from fbelavenuto/basic-changes
Showing kernel msgs, adding some tools like ethtool
2023-01-05 10:57:59 -03:00
Fabio Belavenuto
d5b61ed71a Showing kernel msgs, adding some tools like ethtool 2023-01-05 10:57:43 -03:00
Fabio Belavenuto
a32c9a4a94 Merge pull request #471 from wjz304/patch-1
fix the problem of the description keyword in the "parm" of ".ko"
2023-01-05 08:38:46 -03:00
Ing
9ffb0db2ae fix the problem of the description keyword in the "parm" of ".ko" 2023-01-04 17:37:07 +08:00
Fabio Belavenuto
8ddc54360d Merge pull request #468 from fbelavenuto/buildroot-tty2
Changing loader kernel to log to tty2
2023-01-03 16:29:41 -03:00
Fabio Belavenuto
791b95a246 Changing loader kernel to log to tty2 2023-01-03 16:28:55 -03:00
Fabio Belavenuto
87e79ec5b2 Merge pull request #467 from fbelavenuto/buildroot-ccache
Enabling Buildroot ccache
2023-01-03 14:11:32 -03:00
Fabio Belavenuto
8fb27bb625 Enabling Buildroot ccache 2023-01-03 14:11:15 -03:00
Fabio Belavenuto
8dffd613f9 Disabling SA6400 2022-12-21 13:17:06 -03:00
Fabio Belavenuto
bb08cc6d80 Merge pull request #447 from fbelavenuto/new-bzimage-template
New kernel 5.x bzImage template
2022-12-21 13:15:30 -03:00
Fabio Belavenuto
550cc2cbbd New kernel 5.x bzImage template
Other fixes
2022-12-21 13:15:11 -03:00
Fabio Belavenuto
d100d2f667 Merge pull request #444 from fbelavenuto/kernel5
Changing cmdline, models contains the LKM disparator now
2022-12-20 11:34:01 -03:00
Fabio Belavenuto
44217fc266 Changing cmdline, models contains the LKM disparator now 2022-12-20 11:33:39 -03:00
Fabio Belavenuto
55cbc83924 wip 2022-12-14 12:41:09 -03:00
Fabio Belavenuto
413c0c85ef Merge pull request #429 from fbelavenuto/beta10
Starting beta10
2022-12-13 11:44:28 -03:00
Fabio Belavenuto
c5d5eb5658 Starting beta10 2022-12-13 11:24:57 -03:00
Fabio Belavenuto
f7e6573703 Merge pull request #424 from fbelavenuto/actions-get-modules
Fixing Github actions to get latest modules
2022-12-12 15:22:04 -03:00
Fabio Belavenuto
811a6c6dde Fixing Github actions to get latest modules 2022-12-12 15:21:50 -03:00
Fabio Belavenuto
a954e10ae4 Merge pull request #423 from fbelavenuto/beta9
Creating beta9
2022-12-12 14:41:54 -03:00
Fabio Belavenuto
f5978543aa Creating beta9 2022-12-12 14:41:44 -03:00
Fabio Belavenuto
a261f827b4 Merge pull request #422 from fbelavenuto/wip
Wip
2022-12-12 14:40:21 -03:00
Fabio Belavenuto
d7bc78bd59 Removing binaries 2022-12-12 14:40:00 -03:00
Fabio Belavenuto
a30a131c65 removing binaries 2022-12-12 14:39:44 -03:00
Fabio Belavenuto
60ea3e7ba2 Merge pull request #421 from fbelavenuto/little-fixes
Some little fixes
2022-12-12 14:36:33 -03:00
Fabio Belavenuto
87c351c111 Some little fixes 2022-12-12 14:36:03 -03:00
Fabio Belavenuto
17a35c1dc7 Merge pull request #420 from jimmyGALLAND/main
Update vmlinux-to-bzImage.sh
2022-12-12 14:33:36 -03:00
jimmyGALLAND
6e3ae602bc Update vmlinux-to-bzImage.sh
Kernel 3 bromolow forget
2022-12-12 18:24:21 +01:00
Fabio Belavenuto
2edab6d5dd Merge pull request #418 from fbelavenuto/no-space-left
Fixing "No space left"
2022-12-12 10:07:18 -03:00
Fabio Belavenuto
39522773e5 Fixing "No space left" 2022-12-12 10:07:00 -03:00
Fabio Belavenuto
8a36f91e90 Merge pull request #417 from fbelavenuto/wip
Correct serial number for DS1520+, by Orphee
2022-12-12 08:19:00 -03:00
Fabio Belavenuto
5ef0c6bdcf Correct serial number for DS1520+, by Orphee 2022-12-12 08:18:29 -03:00
Fabio Belavenuto
094ad9c715 Merge pull request #403 from fbelavenuto/linux5
Linux5
2022-12-08 11:37:54 -03:00
Fabio Belavenuto
3010935eda EPYC7002 not ready 2022-12-08 11:36:52 -03:00
Fabio Belavenuto
e74366f17c SA6400 not yet ready 2022-12-08 11:16:58 -03:00
Fabio Belavenuto
9e2644c293 Adding support to boot kernel v5.x 2022-12-08 11:16:18 -03:00
Fabio Belavenuto
66ff2e6ace wip 2022-12-08 08:39:37 -03:00
Fabio Belavenuto
04935c7a14 Fix SA6400.yml 2022-12-07 21:30:59 -03:00
Fabio Belavenuto
0ba4c0332f Merge branch 'main' into linux5 2022-12-07 15:13:28 -03:00
Fabio Belavenuto
d194e501a8 Merge pull request #398 from fbelavenuto/serial-923
Updating DS923 serial number
2022-12-07 13:37:10 -03:00
Fabio Belavenuto
e5ee612511 Updating DS923 serial number 2022-12-07 13:36:59 -03:00
Fabio Belavenuto
2c6f55070d Merge pull request #397 from fbelavenuto/recovery-dsm
Added a menu to try recovery info from installed DSM
2022-12-07 13:36:22 -03:00
Fabio Belavenuto
a03716086b Added a menu to try recovery info from installed DSM 2022-12-07 13:36:11 -03:00
Fabio Belavenuto
1abd0fa4b7 Merge pull request #396 from fbelavenuto/beta8
Starting beta8
2022-12-07 13:34:48 -03:00
Fabio Belavenuto
c3dbe8fce7 Starting beta8 2022-12-07 13:34:34 -03:00
Fabio Belavenuto
8b9e4c7cec Merge pull request #393 from fbelavenuto/bins
Updating addons/lkms/modules
2022-12-07 10:16:36 -03:00
Fabio Belavenuto
40537993ff Updating addons/lkms/modules 2022-12-07 10:15:58 -03:00
Fabio Belavenuto
e1c6bd55c9 Merge pull request #390 from fbelavenuto/adding-version-p1
Adding version to a file in p1
2022-12-06 16:02:33 -03:00
Fabio Belavenuto
23820c56c3 Adding version to a file in p1 2022-12-06 16:02:18 -03:00
Fabio Belavenuto
9d0eb20e8a wip 2022-12-06 15:56:26 -03:00
Fabio Belavenuto
dfe345fe76 Merge branch 'main' into linux5 2022-12-05 11:02:25 -03:00
Fabio Belavenuto
675324c25b Merge pull request #384 from fbelavenuto/new-menu-adv
Adding a "advanced menu"
2022-12-05 08:57:59 -03:00
Fabio Belavenuto
71dc04fc1d Adding a "advanced menu" 2022-12-05 08:57:46 -03:00
Fabio Belavenuto
328dcbbd59 Merge pull request #376 from fbelavenuto/b7
Starting beta7: Improving disk space check
2022-12-01 13:17:25 -03:00
Fabio Belavenuto
db1001f2ad Starting beta7: Improving disk space check 2022-12-01 13:17:04 -03:00
Fabio Belavenuto
26a6f25428 testing Sa6400 2022-11-30 13:50:27 -03:00
108 changed files with 693 additions and 755 deletions

View File

@@ -74,9 +74,19 @@ jobs:
echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}" echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}"
tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}" tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}"
done done
# Get latest modules
echo "Getting latest modules"
MODULES_DIR="files/board/arpl/p3/modules"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
while read PLATFORM KVER; do
FILE="${PLATFORM}-${KVER}"
curl -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/${FILE}.tgz" -o "${MODULES_DIR}/${FILE}.tgz"
done < PLATFORMS
curl -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/firmware.tgz" -o "${MODULES_DIR}/firmware.tgz"
# Copy files # Copy files
echo "Copying files" echo "Copying files"
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
echo "${VERSION}" > files/board/arpl/p1/ARPL-VERSION
cp -Ru files/* .buildroot/ cp -Ru files/* .buildroot/
cd .buildroot cd .buildroot
echo "Generating default config" echo "Generating default config"

4
.gitignore vendored
View File

@@ -9,3 +9,7 @@ docker/syno-compiler/Dockerfile
cache cache
*.bak *.bak
*.o *.o
/files/board/arpl/p3/addons
/files/board/arpl/p3/lkms
/files/board/arpl/p3/modules
/tests

View File

@@ -81,6 +81,11 @@ Select the "Boot" option and wait for the DSM to boot:
The DSM kernel does not display messages on the screen, so it is necessary to continue the process of configuring DSM through the browser by accessing the address `http://<ip>`. The DSM kernel does not display messages on the screen, so it is necessary to continue the process of configuring DSM through the browser by accessing the address `http://<ip>`.
There are several tutorials on how to configure DSM over the internet, which will not be covered here. There are several tutorials on how to configure DSM over the internet, which will not be covered here.
# Tutorials
An ARPL user (Rikkie) created a tutorial to install ARPL on a proxmox server:
https://hotstuff.asia/2023/01/03/xpenology-with-arpl-on-proxmox-the-easy-way/
# Troubles/questions/etc # Troubles/questions/etc
Please search the forums at https://xpenology.com/forum if your question/problem has been discussed and resolved. If you can't find a solution, use github issues. Please search the forums at https://xpenology.com/forum if your question/problem has been discussed and resolved. If you can't find a solution, use github issues.

2
TODO
View File

@@ -4,7 +4,7 @@ A fazer
- "Sensitive data" (#312) - "Sensitive data" (#312)
- Checar drivers para MMC/SD/eMMC - Checar drivers para MMC/SD/eMMC
- Checar drivers para chelsio T420, T520 e T580 - Checar drivers para chelsio T420, T520 e T580
- - Melhorar função getAllModules()
Concluidos: Concluidos:
- Generalizar código dos addons - Generalizar código dos addons

View File

@@ -1 +1 @@
1.0-beta6 1.0-beta10

View File

@@ -47,6 +47,7 @@ function compile-module {
echo "Platform ${1} not found." echo "Platform ${1} not found."
exit 1 exit 1
fi fi
unset VALID
echo -e "Compiling module for \033[7m${PLATFORM}-${KVER}\033[0m..." echo -e "Compiling module for \033[7m${PLATFORM}-${KVER}\033[0m..."
cp -R /input /tmp cp -R /input /tmp
export-vars ${PLATFORM} export-vars ${PLATFORM}

View File

@@ -17,8 +17,10 @@ CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_CPUACCT=y
CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_SMP=y CONFIG_SMP=y
@@ -31,8 +33,6 @@ CONFIG_NUMA=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y
# CONFIG_MTRR_SANITIZER is not set # CONFIG_MTRR_SANITIZER is not set
CONFIG_EFI=y CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y
CONFIG_HZ_1000=y CONFIG_HZ_1000=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y CONFIG_CRASH_DUMP=y
@@ -362,15 +362,27 @@ CONFIG_AGP_INTEL=y
CONFIG_DRM=y CONFIG_DRM=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y CONFIG_FIRMWARE_EDID=y
CONFIG_FB_TILEBLITTING=y CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y CONFIG_FB_VESA=y
CONFIG_FB_EFI=y CONFIG_FB_EFI=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_HIDRAW=y CONFIG_HIDRAW=y
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
CONFIG_HID_EZKEY=y
CONFIG_HID_GYRATION=y CONFIG_HID_GYRATION=y
CONFIG_HID_ITE=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
CONFIG_LOGITECH_FF=y CONFIG_LOGITECH_FF=y
CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_NTRIG=y CONFIG_HID_NTRIG=y
CONFIG_HID_PANTHERLORD=y CONFIG_HID_PANTHERLORD=y
CONFIG_PANTHERLORD_FF=y CONFIG_PANTHERLORD_FF=y
@@ -473,7 +485,6 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_CRC_CCITT=y CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_SCHED_DEBUG is not set # CONFIG_SCHED_DEBUG is not set
CONFIG_SCHEDSTATS=y CONFIG_SCHEDSTATS=y

View File

@@ -25,11 +25,14 @@ null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
::sysinit:/bin/hostname -F /etc/hostname ::sysinit:/bin/hostname -F /etc/hostname
# Reduce kernel logs
::sysinit:/usr/bin/dmesg -n 1
# now run any rc scripts # now run any rc scripts
::sysinit:/etc/init.d/rcS ::sysinit:/etc/init.d/rcS
# Login in terminals # Login in terminals
::respawn:/sbin/agetty -a root --noclear tty1 tty1::respawn:/sbin/agetty -a root --noclear tty1
tty2::askfirst:/sbin/agetty --noclear tty2
ttyS0::askfirst:/sbin/agetty -a root ttyS0 115200 linux ttyS0::askfirst:/sbin/agetty -a root ttyS0 115200 linux
::respawn:/usr/bin/ttyd login -f root ::respawn:/usr/bin/ttyd login -f root
@@ -40,3 +43,4 @@ ttyS0::askfirst:/sbin/agetty -a root ttyS0 115200 linux
::shutdown:/etc/init.d/rcK ::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a ::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r ::shutdown:/bin/umount -a -r
::shutdown:/usr/sbin/kexec -e -a

View File

@@ -78,7 +78,7 @@ done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
# Check if machine has EFI # Check if machine has EFI
[ -d /sys/firmware/efi ] && EFI=1 || EFI=0 [ -d /sys/firmware/efi ] && EFI=1 || EFI=0
# Read EFI bug value # Read EFI bug value
EFI_BUG="`readModelKey "${MODEL}" "builds.${BUILD}.efi-bug"`" [ "${MODEL}" = "DS3615" ] && EFI_BUG=1 || EFI_BUG=0
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`" LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2` BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2`
@@ -106,7 +106,7 @@ grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " [ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} " [ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
CMDLINE_DIRECT="${CMDLINE_LINE}" CMDLINE_DIRECT="${CMDLINE_LINE}"
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15" CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
for KEY in ${!CMDLINE[@]}; do for KEY in ${!CMDLINE[@]}; do
VALUE="${CMDLINE[${KEY}]}" VALUE="${CMDLINE[${KEY}]}"
CMDLINE_LINE+=" ${KEY}" CMDLINE_LINE+=" ${KEY}"
@@ -154,7 +154,6 @@ if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
else else
kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
fi fi
/sbin/swapoff -a >/dev/null 2>&1 || true
/bin/umount -a -r >/dev/null 2>&1 || true
echo -e "\033[1;37mBooting...\033[0m" echo -e "\033[1;37mBooting...\033[0m"
kexec -e -a >"${LOG_FILE}" 2>&1 || dieLog poweroff
while true; do sleep 1; done # infinity loop

View File

@@ -1,5 +1,5 @@
ARPL_VERSION="1.0-beta6" ARPL_VERSION="1.0-beta10"
# Define paths # Define paths
TMP_PATH="/tmp" TMP_PATH="/tmp"

View File

@@ -147,6 +147,14 @@ function arrayExistItem() {
return ${EXISTS} return ${EXISTS}
} }
###############################################################################
# Get values in .conf K=V file
# 1 - key
# 2 - file
function _get_conf_kv() {
grep "${1}" "${2}" | sed "s|^${1}=\"\(.*\)\"$|\1|g"
}
############################################################################### ###############################################################################
# Replace/remove/add values in .conf K=V file # Replace/remove/add values in .conf K=V file
# 1 - name # 1 - name
@@ -168,3 +176,18 @@ function _set_conf_kv() {
# Add if doesn't exist # Add if doesn't exist
echo "$1=\"$2\"" >> $3 echo "$1=\"$2\"" >> $3
} }
###############################################################################
# Find and mount the DSM root filesystem
# (based on pocopico's TCRP code)
function findAndMountDSMRoot() {
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -gt 0 ] && return 0
dsmrootdisk="$(blkid /dev/sd* | grep -i raid | awk '{print $1 " " $4}' | grep UUID | grep sd[a-z]1 | head -1 | awk -F ":" '{print $1}')"
[ -z "${dsmrootdisk}" ] && return -1
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ] && mount -t ext4 $dsmrootdisk "${DSMROOT_PATH}"
if [ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ]; then
echo "Failed to mount"
return -1
fi
return 0
}

View File

@@ -14,7 +14,7 @@ function getAllModules() {
for F in `ls ${TMP_PATH}/modules/*.ko`; do for F in `ls ${TMP_PATH}/modules/*.ko`; do
X=`basename ${F}` X=`basename ${F}`
M=${X:0:-3} M=${X:0:-3}
DESC=`modinfo ${F} | awk -F':' '/description/{ print $2}' | awk '{sub(/^[ ]+/,""); print}'` DESC=`modinfo ${F} | awk -F':' '/description:/{ print $2}' | awk '{sub(/^[ ]+/,""); print}'`
[ -z "${DESC}" ] && DESC="${X}" [ -z "${DESC}" ] && DESC="${X}"
echo "${M} \"${DESC}\"" echo "${M} \"${DESC}\""
done done

View File

@@ -37,6 +37,7 @@ fsck.ext2 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
mkdir -p ${BOOTLOADER_PATH} mkdir -p ${BOOTLOADER_PATH}
mkdir -p ${SLPART_PATH} mkdir -p ${SLPART_PATH}
mkdir -p ${CACHE_PATH} mkdir -p ${CACHE_PATH}
mkdir -p ${DSMROOT_PATH}
# Mount the partitions # Mount the partitions
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}" mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}" mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"

View File

@@ -61,74 +61,83 @@ function backtitle() {
############################################################################### ###############################################################################
# Shows available models to user choose one # Shows available models to user choose one
function modelMenu() { function modelMenu() {
RESTRICT=1 if [ -z "${1}" ]; then
FLGBETA=0 RESTRICT=1
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \ FLGBETA=0
--infobox "Reading models" 0 0 dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
while true; do --infobox "Reading models" 0 0
echo "" > "${TMP_PATH}/menu" while true; do
FLGNEX=0 echo "" > "${TMP_PATH}/menu"
while read M; do FLGNEX=0
M="`basename ${M}`" while read M; do
M="${M::-4}" M="`basename ${M}`"
PLATFORM=`readModelKey "${M}" "platform"` M="${M::-4}"
DT="`readModelKey "${M}" "dt"`" PLATFORM=`readModelKey "${M}" "platform"`
BETA="`readModelKey "${M}" "beta"`" DT="`readModelKey "${M}" "dt"`"
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue BETA="`readModelKey "${M}" "beta"`"
# Check id model is compatible with CPU [ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
COMPATIBLE=1 # Check id model is compatible with CPU
if [ ${RESTRICT} -eq 1 ]; then COMPATIBLE=1
for F in `readModelArray "${M}" "flags"`; do if [ ${RESTRICT} -eq 1 ]; then
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then for F in `readModelArray "${M}" "flags"`; do
COMPATIBLE=0 if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
FLGNEX=1 COMPATIBLE=0
break FLGNEX=1
fi break
done fi
done
fi
[ "${DT}" = "true" ] && DT="-DT" || DT=""
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ "${resp}" = "f" ]; then
RESTRICT=0
continue
fi fi
[ "${DT}" = "true" ] && DT="-DT" || DT="" if [ "${resp}" = "b" ]; then
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu" FLGBETA=1
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort) continue
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu" fi
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu" break
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \ done
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp else
[ $? -ne 0 ] && return resp="${1}"
resp=$(<${TMP_PATH}/resp) fi
[ -z "${resp}" ] && return # If user change model, clean buildnumber and S/N
if [ "${resp}" = "f" ]; then if [ "${MODEL}" != "${resp}" ]; then
RESTRICT=0 MODEL=${resp}
continue writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
fi BUILD=""
if [ "${resp}" = "b" ]; then writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
FLGBETA=1 SN=""
continue writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
fi # Delete old files
# If user change model, clean buildnumber and S/N rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
if [ "${MODEL}" != "${resp}" ]; then DIRTY=1
MODEL=${resp} fi
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
BUILD=""
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
SN=""
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
# Delete old files
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
DIRTY=1
fi
break
done
} }
############################################################################### ###############################################################################
# Shows available buildnumbers from a model to user choose one # Shows available buildnumbers from a model to user choose one
function buildMenu() { function buildMenu() {
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`" ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
dialog --clear --no-items --backtitle "`backtitle`" \ if [ -z "${1}" ]; then
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp dialog --clear --no-items --backtitle "`backtitle`" \
[ $? -ne 0 ] && return --menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
resp=$(<${TMP_PATH}/resp) [ $? -ne 0 ] && return
[ -z "${resp}" ] && return resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
else
if ! arrayExistItem "${1}" ${ITEMS}; then return; fi
resp="${1}"
fi
if [ "${BUILD}" != "${resp}" ]; then if [ "${BUILD}" != "${resp}" ]; then
dialog --backtitle "`backtitle`" --title "Build Number" \ dialog --backtitle "`backtitle`" --title "Build Number" \
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0 --infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
@@ -529,6 +538,298 @@ function synoinfoMenu() {
done 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 -f "${OLDPAT_PATH}"
rm -rf "${RAMDISK_PATH}"
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
return 1
fi
[ ${CLEARCACHE} -eq 1 ] && rm -f "${OLDPAT_PATH}"
# 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 "t \"Try to recovery a DSM installed system\"" >> "${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" ;;
t) tryRecoveryDSM ;;
e) break ;;
esac
done
}
###############################################################################
# Try to recovery a DSM already installed
function tryRecoveryDSM() {
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
--infobox "Trying to recovery a DSM installed system" 0 0
if findAndMountDSMRoot; then
MODEL=""
BUILD=""
if [ -f "${DSMROOT_PATH}/.syno/patch/VERSION" ]; then
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep unique`
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep base`
if [ -n "${unique}" ] ; then
while read F; do
M="`basename ${F}`"
M="${M::-4}"
UNIQUE=`readModelKey "${M}" "unique"`
[ "${unique}" = "${UNIQUE}" ] || continue
# Found
modelMenu "${M}"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
if [ -n "${MODEL}" ]; then
buildMenu ${base}
if [ -n "${BUILD}" ]; then
cp "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
cp "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
MSG="Found a installation:\nModel: ${MODEL}\nBuildnumber: ${BUILD}"
SN=`_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf"`
if [ -n "${SN}" ]; then
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
MSG+="\nSerial: ${SN}"
fi
dialog --backtitle "`backtitle`" --title "Try recovery DSM" \
--aspect 18 --msgbox "${MSG}" 0 0
fi
fi
fi
fi
else
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
--msgbox "Unfortunately I couldn't mount the DSM partition!" 0 0
fi
}
############################################################################### ###############################################################################
# Permit user select the modules to include # Permit user select the modules to include
function selectModules() { function selectModules() {
@@ -608,206 +909,6 @@ function selectModules() {
done 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"`"
OUT_PATH="${CACHE_PATH}/dl"
if [ ${CLEARCACHE} -eq 1 ]; then
echo "Cleaning cache"
rm -rf "${OUT_PATH}"
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
rm "${OLDPAT_PATH}"
# 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 # Permits user edit the user config
function editUserConfig() { function editUserConfig() {
@@ -834,6 +935,17 @@ function editUserConfig() {
DIRTY=1 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 # Shows available keymaps to user choose one
function keymapMenu() { function keymapMenu() {
@@ -922,7 +1034,7 @@ function updateMenu() {
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0 --yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
reboot arpl-reboot.sh config
exit exit
;; ;;
@@ -950,6 +1062,7 @@ function updateMenu() {
unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1 unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1
dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \
--infobox "Installing new addons" 0 0 --infobox "Installing new addons" 0 0
rm -Rf "${ADDONS_PATH}/"*
for PKG in `ls /tmp/addons/*.addon`; do for PKG in `ls /tmp/addons/*.addon`; do
ADDON=`basename ${PKG} | sed 's|.addon||'` ADDON=`basename ${PKG} | sed 's|.addon||'`
rm -rf "${ADDONS_PATH}/${ADDON}" rm -rf "${ADDONS_PATH}/${ADDON}"
@@ -1019,6 +1132,11 @@ function updateMenu() {
rm "${MODULES_PATH}/${P}.tgz" rm "${MODULES_PATH}/${P}.tgz"
mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz" mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz"
done done
# Rebuild modules
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done < <(getAllModules "${PLATFORM}" "${KVER}")
DIRTY=1 DIRTY=1
dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \
--msgbox "Modules updated with success!" 0 0 --msgbox "Modules updated with success!" 0 0
@@ -1046,21 +1164,25 @@ while true; do
echo "a \"Addons\"" >> "${TMP_PATH}/menu" echo "a \"Addons\"" >> "${TMP_PATH}/menu"
echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu" echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu"
echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu" echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu"
echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu" fi
echo "o \"Modules\"" >> "${TMP_PATH}/menu" fi
echo "v \"Advanced menu\"" >> "${TMP_PATH}/menu"
if [ -n "${MODEL}" ]; then
if [ -n "${BUILD}" ]; then
echo "d \"Build the loader\"" >> "${TMP_PATH}/menu" echo "d \"Build the loader\"" >> "${TMP_PATH}/menu"
fi fi
fi fi
if loaderIsConfigured; then if loaderIsConfigured; then
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"">> "${TMP_PATH}/menu"
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu" echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
fi fi
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu" echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
[ ${CLEARCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ] && echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu" if [ ${CLEARCACHE} -eq 1 -a -d "${CACHE_PATH}/dl" ]; then
echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
fi
echo "p \"Update menu\"" >> "${TMP_PATH}/menu" echo "p \"Update menu\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${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" \ --menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
2>${TMP_PATH}/resp 2>${TMP_PATH}/resp
[ $? -ne 0 ] && break [ $? -ne 0 ] && break
@@ -1070,20 +1192,10 @@ while true; do
s) serialMenu; NEXT="a" ;; s) serialMenu; NEXT="a" ;;
a) addonMenu; NEXT="x" ;; a) addonMenu; NEXT="x" ;;
x) cmdlineMenu; NEXT="i" ;; x) cmdlineMenu; NEXT="i" ;;
i) synoinfoMenu; NEXT="l" ;; i) synoinfoMenu; NEXT="v" ;;
l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev' v) advancedMenu; NEXT="d" ;;
writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}" d) make; NEXT="b" ;;
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"
;;
b) boot ;; b) boot ;;
u) editUserConfig; NEXT="u" ;;
k) keymapMenu ;; k) keymapMenu ;;
c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \ c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \
--prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;; --prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;;

View File

@@ -13,14 +13,15 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "geminilake" platform: "geminilake"
unique: "synology_geminilake_1520+" unique: "synology_geminilake_1520+"
beta: true beta: true
dom: 2 dom: 2
serial: serial:
prefix: prefix:
- "0000" - "2060"
middle: "XXX" middle: "RYR"
suffix: "alpha" suffix: "alpha"
disks: 6 disks: 6
dt: true dt: true
@@ -29,7 +30,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -50,7 +50,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -71,7 +70,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -16,6 +16,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000" platform: "v1000"
unique: "synology_v1000_1621+" unique: "synology_v1000_1621+"
dom: 2 dom: 2
@@ -31,7 +32,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +52,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -73,7 +72,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -16,6 +16,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000" platform: "v1000"
unique: "synology_v1000_2422+" unique: "synology_v1000_2422+"
dom: 2 dom: 2
@@ -32,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +52,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -73,7 +72,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -15,6 +15,7 @@ cmdline: &cmdline
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "bromolow" platform: "bromolow"
unique: "synology_bromolow_3615xs" unique: "synology_bromolow_3615xs"
serial: serial:
@@ -32,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "3.10.108" kver: "3.10.108"
rd-compressed: false rd-compressed: false
efi-bug: yes
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -54,7 +54,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "3.10.108" kver: "3.10.108"
rd-compressed: false rd-compressed: false
efi-bug: yes
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -76,7 +75,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "3.10.108" kver: "3.10.108"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -15,6 +15,7 @@ cmdline: &cmdline
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "broadwell" platform: "broadwell"
unique: "synology_broadwell_3617xs" unique: "synology_broadwell_3617xs"
dom: 1 dom: 1
@@ -32,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -54,7 +54,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -76,7 +75,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -16,6 +16,7 @@ cmdline: &cmdline
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "broadwellnk" platform: "broadwellnk"
unique: "synology_broadwellnk_3622xs+" unique: "synology_broadwellnk_3622xs+"
dom: 1 dom: 1
@@ -33,7 +34,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -55,7 +55,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -77,7 +76,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -16,6 +16,7 @@ cmdline: &cmdline
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "apollolake" platform: "apollolake"
unique: "synology_apollolake_918+" unique: "synology_apollolake_918+"
dom: 2 dom: 2
@@ -35,7 +36,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -57,7 +57,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -79,7 +78,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -13,6 +13,7 @@ cmdline: &cmdline
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
vender_format_version: 2 vender_format_version: 2
elevator: elevator
platform: "geminilake" platform: "geminilake"
unique: "synology_geminilake_920+" unique: "synology_geminilake_920+"
dom: 2 dom: 2
@@ -31,7 +32,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +52,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -73,7 +72,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -12,6 +12,7 @@ cmdline: &cmdline
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
vender_format_version: 2 vender_format_version: 2
elevator: elevator
platform: "r1000" platform: "r1000"
unique: "synology_r1000_923+" unique: "synology_r1000_923+"
beta: true beta: true
@@ -23,7 +24,7 @@ serial:
- "2040" - "2040"
- "20C0" - "20C0"
- "2150" - "2150"
middle: "SBR" middle: "TQR"
suffix: "alpha" suffix: "alpha"
disks: 4 disks: 4
builds: builds:
@@ -31,7 +32,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -15,6 +15,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "geminilake" platform: "geminilake"
unique: "synology_geminilake_dva1622" unique: "synology_geminilake_dva1622"
dom: 2 dom: 2
@@ -33,7 +34,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -54,7 +54,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -16,6 +16,7 @@ cmdline: &cmdline
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "denverton" platform: "denverton"
unique: "synology_denverton_dva3219" unique: "synology_denverton_dva3219"
beta: true beta: true
@@ -34,7 +35,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -56,7 +56,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -78,7 +77,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -14,6 +14,7 @@ cmdline: &cmdline
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "denverton" platform: "denverton"
unique: "synology_denverton_dva3221" unique: "synology_denverton_dva3221"
dom: 2 dom: 2
@@ -33,7 +34,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -55,7 +55,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -77,7 +76,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -13,6 +13,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000" platform: "v1000"
unique: "synology_v1000_fs2500" unique: "synology_v1000_fs2500"
beta: true beta: true
@@ -29,7 +30,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -50,7 +50,6 @@ builds:
ver: "7.1" ver: "7.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -71,7 +70,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -5,6 +5,8 @@ synoinfo: &synoinfo
support_bde_internal_10g: "no" support_bde_internal_10g: "no"
esataportcfg: "0x0" esataportcfg: "0x0"
support_led_brightness_adjustment: "no" support_led_brightness_adjustment: "no"
support_syno_hybrid_raid: "yes"
supportraidgroup: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
@@ -14,6 +16,7 @@ cmdline: &cmdline
syno_hdd_detect: 0 syno_hdd_detect: 0
syno_port_thaw: 1 syno_port_thaw: 1
vender_format_version: 2 vender_format_version: 2
elevator: elevator
platform: "broadwellnk" platform: "broadwellnk"
unique: "synology_broadwellnk_rs4021xs+" unique: "synology_broadwellnk_rs4021xs+"
beta: true beta: true
@@ -30,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +54,6 @@ builds:
ver: "7.1" ver: "7.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -74,7 +75,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -0,0 +1,46 @@
id: "SA6400"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
cmdline: &cmdline
SMBusHddDynamicPower: 1
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
vender_format_version: 2
scsi_mod.use_blk_mq: 1
platform: "epyc7002"
unique: "synology_epyc7002_sa6400"
beta: true
dom: 2
serial:
prefix:
- "0000"
middle: "XXX"
suffix: "alpha"
disks: 16
dt: true
builds:
42962:
ver: "7.1.1"
kver: "5.10.55"
rd-compressed: false
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_SA6400_42962.pat"
hash: "83fc408380ebb1381224261de6220b873d7b62a99e715557509ae9553f618a71"
ramdisk-hash: "d4efe45fc4dd71758fe365f7eb39d24982d1440b00986259cab9a03577982f68"
zimage-hash: "d5b8af848fc585695e35bd1c4f4c953fd8e54435b2799face4f8f350bac6df93"
md5-hash: "fdbbea86e280a8f754339a064f9ad2df"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"

View File

@@ -13,6 +13,12 @@ echo -n "Patching Ramdisk"
# Remove old rd.gz patched # Remove old rd.gz patched
rm -f "${MOD_RDGZ_FILE}" rm -f "${MOD_RDGZ_FILE}"
# Check disk space left
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'`
[ ${SPACELEFT} -le 268435456 ] && rm -rf "${CACHE_PATH}/dl"
# Unzipping ramdisk # Unzipping ramdisk
echo -n "." echo -n "."
rm -rf "${RAMDISK_PATH}" # Force clean rm -rf "${RAMDISK_PATH}" # Force clean
@@ -25,6 +31,7 @@ mkdir -p "${RAMDISK_PATH}"
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`" MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`" BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`" LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
if [ ${BUILD} -ne ${buildnumber} ]; then if [ ${BUILD} -ne ${buildnumber} ]; then
echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m" echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m"
@@ -72,6 +79,8 @@ echo -n "."
for KEY in ${!SYNOINFO[@]}; do for KEY in ${!SYNOINFO[@]}; do
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog _set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
done done
# Add serial number to synoinfo.conf, to help to recovery a installed DSM
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
# Patch /sbin/init.post # Patch /sbin/init.post
echo -n "." echo -n "."
@@ -80,9 +89,11 @@ sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e
rm "${TMP_PATH}/rp.txt" rm "${TMP_PATH}/rp.txt"
touch "${TMP_PATH}/rp.txt" touch "${TMP_PATH}/rp.txt"
for KEY in ${!SYNOINFO[@]}; do for KEY in ${!SYNOINFO[@]}; do
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
done done
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post" sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
rm "${TMP_PATH}/rp.txt" rm "${TMP_PATH}/rp.txt"

View File

@@ -1,21 +1,11 @@
#!/bin/sh #!/bin/sh
# Based on code and ideas from @jumkey
. /opt/arpl/include/functions.sh . /opt/arpl/include/functions.sh
#zImage_head 16494 MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
#payload( BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
# vmlinux.bin x KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
# padding 0xf00000-x
# vmlinux.bin size 4
#) 0xf00004
#zImage_tail(
# unknown 72
# run_size 4
# unknown 30
# vmlinux.bin size 4
# unknown 114460
#) 114570
#crc32 4
# Adapted from: scripts/Makefile.lib # Adapted from: scripts/Makefile.lib
# Usage: size_append FILE [FILE2] [FILEn]... # Usage: size_append FILE [FILE2] [FILEn]...
@@ -51,12 +41,40 @@ size_le () {
SCRIPT_DIR=`dirname $0` SCRIPT_DIR=`dirname $0`
VMLINUX_MOD=${1} VMLINUX_MOD=${1}
ZIMAGE_MOD=${2} ZIMAGE_MOD=${2}
gzip -cd "${SCRIPT_DIR}/zImage_template.gz" > "${ZIMAGE_MOD}" KVER_MAJOR=${KVER:0:1}
if [ $KVER_MAJOR -eq 4 ] || [ $KVER_MAJOR -eq 3 ]; then
# Kernel version 4.x or 3.x (bromolow)
#zImage_head 16494
#payload(
# vmlinux.bin x
# padding 0xf00000-x
# vmlinux.bin size 4
#) 0xf00004
#zImage_tail(
# unknown 72
# run_size 4
# unknown 30
# vmlinux.bin size 4
# unknown 114460
#) 114570
#crc32 4
gzip -cd "${SCRIPT_DIR}/bzImage-template-v4.gz" > "${ZIMAGE_MOD}"
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"` RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
size_le $RUN_SIZE | dd of=$ZIMAGE_MOD bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog else
# Kernel version 5.x
gzip -cd "${SCRIPT_DIR}/bzImage-template-v5.gz" > "${ZIMAGE_MOD}"
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=14561 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34463421 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34479132 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
# RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
# size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=34626904 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
fi

View File

@@ -18,6 +18,7 @@ export EDITOR="/bin/nano"
export BOOTLOADER_PATH="/mnt/p1" export BOOTLOADER_PATH="/mnt/p1"
export SLPART_PATH="/mnt/p2" # Synologic partition export SLPART_PATH="/mnt/p2" # Synologic partition
export CACHE_PATH="/mnt/p3" export CACHE_PATH="/mnt/p3"
export DSMROOT_PATH="/mnt/dsmroot"
export PATH="${PATH}:/opt/arpl" export PATH="${PATH}:/opt/arpl"
if [ ! -f ${HOME}/.initialized ]; then if [ ! -f ${HOME}/.initialized ]; then

View File

@@ -0,0 +1 @@
1.0-beta10

Binary file not shown.

Binary file not shown.

View File

@@ -1,15 +1,50 @@
insmod search
insmod echo insmod echo
insmod terminal insmod terminal
insmod test insmod test
insmod font
terminal_input console insmod loadenv
terminal_output console insmod serial
insmod usb_keyboard
insmod linux
insmod gzio
insmod fat
insmod ext2
set default="boot" set default="boot"
set timeout="5" set timeout="5"
set timeout_style="menu" set timeout_style="menu"
insmod loadenv function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if loadfont unicode ; then
set gfxmode=auto
load_video
insmod gfxterm
#set gfxpayload=800x600
fi
terminal_output gfxterm
#set menu_color_normal=cyan/blue
#set menu_color_highlight=white/blue
if serial --unit=0 --speed=115200; then
terminal_input --append serial_com0
terminal_output --append serial_com0
fi
if [ -s $prefix/grubenv ]; then if [ -s $prefix/grubenv ]; then
load_env load_env
fi fi
@@ -22,51 +57,37 @@ if [ "${next_entry}" ]; then
save_env next_entry save_env next_entry
fi fi
insmod usb_keyboard
insmod part_msdos
insmod ext2
insmod fat
insmod linux
insmod gzio
set gfxmode=auto
if [ "${grub_platform}" = "efi" ]; then
insmod efi_gop
insmod efi_uga
else
insmod vbe
insmod vga
fi
insmod serial
if serial --unit=0 --speed=115200; then if serial --unit=0 --speed=115200; then
terminal_input --append serial_com0 terminal_input --append serial_com0
terminal_output --append serial_com0 terminal_output --append serial_com0
fi fi
insmod search set TERM=tty2
search --set=root --label "ARPL3" search --set=root --label "ARPL3"
if [ -s /zImage-dsm -a -s /initrd-dsm ]; then if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
if [ "${default}" = "direct" ]; then if [ "${default}" = "direct" ]; then
set timeout="1" set timeout="1"
menuentry 'Boot DSM kernel directly' --id direct { menuentry 'Boot DSM kernel directly' --id direct {
load_video
echo "Loading DSM kernel..." echo "Loading DSM kernel..."
linux /zImage-dsm console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15 ${dsm_cmdline} linux /zImage-dsm console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 ${dsm_cmdline}
echo "Loading DSM initramfs..." echo "Loading DSM initramfs..."
initrd /initrd-dsm initrd /initrd-dsm
echo "Booting..." echo "Booting..."
} }
fi fi
menuentry 'Boot DSM' --id boot { menuentry 'Boot DSM' --id boot {
load_video
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-arpl console=ttyS0,115200n8 quiet net.ifnames=0 biosdevname=0 linux /bzImage-arpl console=${TERM} net.ifnames=0
echo "Loading initramfs..." echo "Loading initramfs..."
initrd /initrd-arpl initrd /initrd-arpl
echo "Booting..." echo "Booting..."
} }
menuentry 'Force re-install DSM' --id junior { menuentry 'Force re-install DSM' --id junior {
load_video
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-arpl console=ttyS0,115200n8 quiet net.ifnames=0 biosdevname=0 force_junior linux /bzImage-arpl console=${TERM} net.ifnames=0 force_junior
echo "Loading initramfs..." echo "Loading initramfs..."
initrd /initrd-arpl initrd /initrd-arpl
echo "Booting..." echo "Booting..."
@@ -76,8 +97,9 @@ else
fi fi
menuentry 'Configure loader' --id config { menuentry 'Configure loader' --id config {
load_video
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-arpl console=ttyS0,115200n8 quiet net.ifnames=0 biosdevname=0 IWANTTOCHANGETHECONFIG linux /bzImage-arpl console=${TERM} net.ifnames=0 IWANTTOCHANGETHECONFIG
echo "Loading initramfs..." echo "Loading initramfs..."
initrd /initrd-arpl initrd /initrd-arpl
echo "Booting..." echo "Booting..."

View File

@@ -1,28 +0,0 @@
version: 1
name: 9p
description: "Driver for virtio 9p"
available-for:
bromolow-3.10.108:
install-script: &script "install.sh"
copy: "bromolow-3.10.108"
apollolake-4.4.180:
install-script: *script
copy: "apollolake-4.4.180"
broadwell-4.4.180:
install-script: *script
copy: "broadwell-4.4.180"
broadwellnk-4.4.180:
install-script: *script
copy: "broadwellnk-4.4.180"
denverton-4.4.180:
install-script: *script
copy: "denverton-4.4.180"
geminilake-4.4.180:
install-script: *script
copy: "geminilake-4.4.180"
v1000-4.4.180:
install-script: *script
copy: "v1000-4.4.180"
r1000-4.4.180:
install-script: *script
copy: "r1000-4.4.180"

View File

@@ -1,15 +0,0 @@
version: 1
name: acpid
description: "Flexible and extensible daemon for delivering ACPI events"
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,15 +0,0 @@
version: 1
name: dbgutils
description: "Binaries to facilitate debug in the junior mode"
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,17 +0,0 @@
version: 1
name: dtbpatch
system: true
description: "Patch model.dtb"
compile-script: compile.sh
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,17 +0,0 @@
version: 1
name: eudev
system: true
description: "eudev project + kmod modified"
compile-script: compile.sh
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,11 +0,0 @@
version: 1
name: i915-10th
description: "mzcls687's Intel iGPU Drivers (10th Gen)"
obs: https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3
available-for:
apollolake-4.4.180:
install-script: "install.sh"
copy: "apollolake-4.4.180"
geminilake-4.4.180:
install-script: "install.sh"
copy: "geminilake-4.4.180"

View File

@@ -1,7 +0,0 @@
version: 1
name: i915-8th
description: "Cryental's Intel iGPU Drivers (8-9th Gen)"
available-for:
apollolake-4.4.180:
install-script: "install.sh"
copy: "apollolake-4.4.180"

View File

@@ -1,15 +0,0 @@
version: 1
name: lsiutil
description: "A tool for working with some LSI RAID controllers"
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,16 +0,0 @@
version: 1
name: maxdisks
system: true
description: "Adjust maxdisks and internalportcfg automatically"
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,15 +0,0 @@
version: 1
name: misc
description: "Miscellaneous functions"
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,16 +0,0 @@
version: 1
name: powersched
description: "Utility to configure RTC according to DSM power schedule"
compile-script: compile.sh
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,15 +0,0 @@
version: 1
name: reducelog
description: "Addon to reduce DSM log"
all:
install-script: "install.sh"
copy: "all"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

@@ -1,14 +0,0 @@
version: 1
name: remove-pma
description: "Create a cron entry to remove *.pma files from Surveillance Station (#215 issue)"
all:
install-script: "install.sh"
available-for:
bromolow-3.10.108:
apollolake-4.4.180:
broadwell-4.4.180:
broadwellnk-4.4.180:
denverton-4.4.180:
geminilake-4.4.180:
v1000-4.4.180:
r1000-4.4.180:

View File

View File

Some files were not shown because too many files have changed in this diff Show More