Compare commits

...

61 Commits

Author SHA1 Message Date
Fabio Belavenuto
56d0da1a63 Update VERSION 2023-01-10 19:45:41 -03:00
Fabio Belavenuto
8d73e73937 Merge pull request #486 from fbelavenuto/efi32
Changing EFI 32bit
2023-01-10 17:36:25 -03:00
Fabio Belavenuto
532e4c27f4 Changing EFI 32bit 2023-01-10 17:36:07 -03:00
Fabio Belavenuto
d93b15bd8e Merge pull request #485 from fbelavenuto/beta11
Starting beta11
2023-01-10 17:08:46 -03:00
Fabio Belavenuto
36a7930252 Starting beta11
fixing a buildroot bug
2023-01-10 17:08:31 -03:00
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
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
26a6f25428 testing Sa6400 2022-11-30 13:50:27 -03:00
102 changed files with 421 additions and 518 deletions

View File

@@ -74,6 +74,15 @@ jobs:
echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}"
tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}"
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
echo "Copying files"
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh

4
.gitignore vendored
View File

@@ -9,3 +9,7 @@ docker/syno-compiler/Dockerfile
cache
*.bak
*.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>`.
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
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)
- Checar drivers para MMC/SD/eMMC
- Checar drivers para chelsio T420, T520 e T580
-
- Melhorar função getAllModules()
Concluidos:
- Generalizar código dos addons

View File

@@ -1 +1 @@
1.0-beta7
1.0-beta10a

View File

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

View File

@@ -17,8 +17,10 @@ CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
CONFIG_SMP=y
@@ -31,8 +33,6 @@ CONFIG_NUMA=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y
CONFIG_HZ_1000=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
@@ -362,15 +362,27 @@ CONFIG_AGP_INTEL=y
CONFIG_DRM=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_TILEBLITTING=y
CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=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_ITE=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
CONFIG_LOGITECH_FF=y
CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_NTRIG=y
CONFIG_HID_PANTHERLORD=y
CONFIG_PANTHERLORD_FF=y
@@ -473,7 +485,6 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_SCHED_DEBUG is not set
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/2 /dev/stderr
::sysinit:/bin/hostname -F /etc/hostname
# Reduce kernel logs
::sysinit:/usr/bin/dmesg -n 1
# now run any rc scripts
::sysinit:/etc/init.d/rcS
# 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
::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:/sbin/swapoff -a
::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
[ -d /sys/firmware/efi ] && EFI=1 || EFI=0
# 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`"
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 "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
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
VALUE="${CMDLINE[${KEY}]}"
CMDLINE_LINE+=" ${KEY}"
@@ -154,7 +154,6 @@ if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
else
kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
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"
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-beta7"
ARPL_VERSION="1.0-beta11"
# Define paths
TMP_PATH="/tmp"

View File

@@ -147,6 +147,14 @@ function arrayExistItem() {
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
# 1 - name
@@ -168,3 +176,18 @@ function _set_conf_kv() {
# Add if doesn't exist
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
X=`basename ${F}`
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}"
echo "${M} \"${DESC}\""
done

View File

@@ -37,6 +37,7 @@ fsck.ext2 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
mkdir -p ${BOOTLOADER_PATH}
mkdir -p ${SLPART_PATH}
mkdir -p ${CACHE_PATH}
mkdir -p ${DSMROOT_PATH}
# Mount the partitions
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_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
function modelMenu() {
RESTRICT=1
FLGBETA=0
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
--infobox "Reading models" 0 0
while true; do
echo "" > "${TMP_PATH}/menu"
FLGNEX=0
while read M; do
M="`basename ${M}`"
M="${M::-4}"
PLATFORM=`readModelKey "${M}" "platform"`
DT="`readModelKey "${M}" "dt"`"
BETA="`readModelKey "${M}" "beta"`"
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
# Check id model is compatible with CPU
COMPATIBLE=1
if [ ${RESTRICT} -eq 1 ]; then
for F in `readModelArray "${M}" "flags"`; do
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
COMPATIBLE=0
FLGNEX=1
break
fi
done
if [ -z "${1}" ]; then
RESTRICT=1
FLGBETA=0
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
--infobox "Reading models" 0 0
while true; do
echo "" > "${TMP_PATH}/menu"
FLGNEX=0
while read M; do
M="`basename ${M}`"
M="${M::-4}"
PLATFORM=`readModelKey "${M}" "platform"`
DT="`readModelKey "${M}" "dt"`"
BETA="`readModelKey "${M}" "beta"`"
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
# Check id model is compatible with CPU
COMPATIBLE=1
if [ ${RESTRICT} -eq 1 ]; then
for F in `readModelArray "${M}" "flags"`; do
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
COMPATIBLE=0
FLGNEX=1
break
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
[ "${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
if [ "${resp}" = "b" ]; then
FLGBETA=1
continue
fi
# If user change model, clean buildnumber and S/N
if [ "${MODEL}" != "${resp}" ]; then
MODEL=${resp}
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
if [ "${resp}" = "b" ]; then
FLGBETA=1
continue
fi
break
done
else
resp="${1}"
fi
# If user change model, clean buildnumber and S/N
if [ "${MODEL}" != "${resp}" ]; then
MODEL=${resp}
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
}
###############################################################################
# Shows available buildnumbers from a model to user choose one
function buildMenu() {
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
dialog --clear --no-items --backtitle "`backtitle`" \
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ -z "${1}" ]; then
dialog --clear --no-items --backtitle "`backtitle`" \
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
else
if ! arrayExistItem "${1}" ${ITEMS}; then return; fi
resp="${1}"
fi
if [ "${BUILD}" != "${resp}" ]; then
dialog --backtitle "`backtitle`" --title "Build Number" \
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
@@ -638,12 +647,12 @@ function extractDsmFiles() {
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 -f "${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"
[ ${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
@@ -753,6 +762,7 @@ function advancedMenu() {
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" \
@@ -771,11 +781,55 @@ function advancedMenu() {
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
function selectModules() {
@@ -980,7 +1034,7 @@ function updateMenu() {
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
[ $? -ne 0 ] && continue
reboot
arpl-reboot.sh config
exit
;;
@@ -1078,6 +1132,11 @@ function updateMenu() {
rm "${MODULES_PATH}/${P}.tgz"
mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz"
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
dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \
--msgbox "Modules updated with success!" 0 0
@@ -1117,11 +1176,11 @@ while true; do
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
fi
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
if [ ${CLEARCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ]; then
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 "e \"Exit\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \
--menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -5,6 +5,8 @@ synoinfo: &synoinfo
support_bde_internal_10g: "no"
esataportcfg: "0x0"
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_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
@@ -14,6 +16,7 @@ cmdline: &cmdline
syno_hdd_detect: 0
syno_port_thaw: 1
vender_format_version: 2
elevator: elevator
platform: "broadwellnk"
unique: "synology_broadwellnk_rs4021xs+"
beta: true
@@ -30,7 +33,6 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -52,7 +54,6 @@ builds:
ver: "7.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -74,7 +75,6 @@ builds:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
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
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
echo -n "."
rm -rf "${RAMDISK_PATH}" # Force clean
@@ -25,6 +31,7 @@ mkdir -p "${RAMDISK_PATH}"
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
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"
@@ -72,6 +79,8 @@ echo -n "."
for KEY in ${!SYNOINFO[@]}; do
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
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
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"
touch "${TMP_PATH}/rp.txt"
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"
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"
rm "${TMP_PATH}/rp.txt"

View File

@@ -1,21 +1,11 @@
#!/bin/sh
# Based on code and ideas from @jumkey
. /opt/arpl/include/functions.sh
#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
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
# Adapted from: scripts/Makefile.lib
# Usage: size_append FILE [FILE2] [FILEn]...
@@ -51,12 +41,40 @@ size_le () {
SCRIPT_DIR=`dirname $0`
VMLINUX_MOD=${1}
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
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 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=15745244 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=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
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 $(($((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 SLPART_PATH="/mnt/p2" # Synologic partition
export CACHE_PATH="/mnt/p3"
export DSMROOT_PATH="/mnt/dsmroot"
export PATH="${PATH}:/opt/arpl"
if [ ! -f ${HOME}/.initialized ]; then

View File

@@ -1 +1 @@
1.0-beta7
1.0-beta11

Binary file not shown.

Binary file not shown.

View File

@@ -1,15 +1,50 @@
insmod search
insmod echo
insmod terminal
insmod test
terminal_input console
terminal_output console
insmod font
insmod loadenv
insmod serial
insmod usb_keyboard
insmod linux
insmod gzio
insmod fat
insmod ext2
set default="boot"
set timeout="5"
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
load_env
fi
@@ -22,51 +57,37 @@ if [ "${next_entry}" ]; then
save_env next_entry
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
terminal_input --append serial_com0
terminal_output --append serial_com0
fi
insmod search
set TERM=tty2
search --set=root --label "ARPL3"
if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
if [ "${default}" = "direct" ]; then
set timeout="1"
menuentry 'Boot DSM kernel directly' --id direct {
load_video
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..."
initrd /initrd-dsm
echo "Booting..."
}
fi
menuentry 'Boot DSM' --id boot {
load_video
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..."
initrd /initrd-arpl
echo "Booting..."
}
menuentry 'Force re-install DSM' --id junior {
load_video
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..."
initrd /initrd-arpl
echo "Booting..."
@@ -76,8 +97,9 @@ else
fi
menuentry 'Configure loader' --id config {
load_video
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..."
initrd /initrd-arpl
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,16 +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:
epyc7002-5.10.55:

View File

@@ -1,16 +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:
epyc7002-5.10.55:

View File

@@ -1,18 +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:
epyc7002-5.10.55:

View File

@@ -1,18 +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:
epyc7002-5.10.55:

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,16 +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:
epyc7002-5.10.55:

View File

@@ -1,17 +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:
epyc7002-5.10.55:

View File

@@ -1,16 +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:
epyc7002-5.10.55:

View File

@@ -1,17 +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:
epyc7002-5.10.55:

View File

View File

View File

@@ -1,4 +1,6 @@
BR2_x86_64=y
BR2_CCACHE=y
BR2_CCACHE_DIR=".buildroot-ccache"
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TARGET_GENERIC_HOSTNAME="arpl"
@@ -21,6 +23,8 @@ BR2_PACKAGE_BZIP2=y
BR2_PACKAGE_XZ=y
BR2_PACKAGE_KEXEC=y
BR2_PACKAGE_KEXEC_ZLIB=y
BR2_PACKAGE_LSOF=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_BINUTILS_TARGET=y
BR2_PACKAGE_CPIO=y
@@ -39,6 +43,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
BR2_PACKAGE_ACPID=y
BR2_PACKAGE_DMIDECODE=y
BR2_PACKAGE_DT_UTILS=y
BR2_PACKAGE_KBD=y
BR2_PACKAGE_LSHW=y
BR2_PACKAGE_LSSCSI=y
@@ -53,6 +59,7 @@ BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_PCRE2=y
BR2_PACKAGE_DHCPCD=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_OPENSSH=y
# BR2_PACKAGE_OPENSSH_CLIENT is not set
BR2_PACKAGE_SAMBA4=y
@@ -72,4 +79,3 @@ BR2_TARGET_ROOTFS_CPIO_XZ=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_E2FSPROGS=y
BR2_PACKAGE_R8125=y

BIN
kpatch/kpatch Executable file

Binary file not shown.

View File

@@ -60,6 +60,7 @@ void errorMsg(char *fmt, ...) {
va_start(args, fmt);
vfprintf(stderr, fmt, args);
va_end(args);
fprintf(stderr, "\n");
exit(1);
}
@@ -307,15 +308,39 @@ int main(int argc, char *argv[]) {
Elf_Scn *section;
GElf_Shdr sectionHeader;
char *sectionName;
char *fileIn = NULL, *fileOut = NULL;
int onlyBoot = 0, onlyRD = 0, onlyCMOS = 0, c;
if (argc != 3) {
errorMsg("Use: kpatch <vmlinux> <output>\n");
if (argc < 3) {
errorMsg("Use: kpatch (option) <vmlinux> <output>\nOptions:\n -b Only bootparams\n -r Only ramdisk\n -c Only CMOS");
}
c = 1;
while (c < argc) {
if (strcmp(argv[c], "-b") == 0) {
onlyBoot = 1;
} else if (strcmp(argv[c], "-r") == 0) {
onlyRD = 1;
} else if (strcmp(argv[c], "-c") == 0) {
onlyCMOS = 1;
} else if (fileIn == NULL) {
fileIn = argv[c];
} else {
fileOut = argv[c];
break;
}
++c;
}
if (NULL == fileIn) {
errorMsg("Please give a input filename");
}
if (NULL == fileOut) {
errorMsg("Please give a output filename");
}
if (elf_version(EV_CURRENT) == EV_NONE)
elfErrno();
if ((fd = open(argv[1], O_RDONLY)) == -1)
if ((fd = open(fileIn, O_RDONLY)) == -1)
errorNum();
if ((elfHandle = elf_begin(fd, ELF_C_READ, NULL)) == NULL)
@@ -367,10 +392,22 @@ int main(int argc, char *argv[]) {
printf("Found .init.text offset @ %lX\n", initTextOffs);
printf("Found .rodata address @ %lX\n", rodataAddr);
printf("Found .rodata offset @ %lX\n", rodataOffs);
patchBootParams();
patchRamdiskCheck();
patchCmosWrite();
if ((fd = open(argv[2], O_WRONLY | O_CREAT, 0644)) == -1) {
if (onlyBoot == 0 && onlyCMOS == 0 && onlyRD == 0) {
patchBootParams();
patchRamdiskCheck();
patchCmosWrite();
} else {
if (onlyBoot == 1) {
patchBootParams();
}
if (onlyRD == 1) {
patchRamdiskCheck();
}
if (onlyCMOS == 1) {
patchCmosWrite();
}
}
if ((fd = open(fileOut, O_WRONLY | O_CREAT, 0644)) == -1) {
errorNum();
}
if (fileSize != write(fd, fileData, fileSize)) {

View File

@@ -56,7 +56,6 @@ for MODEL in DS918+ DS920+ DS923+ DS1520+ DS1621+ DS2422+ DS3615xs DS3617xs DS36
ver: "${RELEASE}"
kver: "${KVERS[${MODEL}]}"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:

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