mirror of
https://github.com/fbelavenuto/arpl.git
synced 2025-12-24 14:52:05 +08:00
Compare commits
120 Commits
v1.0-beta3
...
v1.0-beta1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
188ebcc0dd | ||
|
|
269d3a3efe | ||
|
|
b52afda06b | ||
|
|
2e7e5c3757 | ||
|
|
a8b6217264 | ||
|
|
bb302f2bae | ||
|
|
6edf6cc290 | ||
|
|
31c16c7b9a | ||
|
|
a3ecb56543 | ||
|
|
e66f415ce0 | ||
|
|
fb6c441159 | ||
|
|
290cb8f888 | ||
|
|
3f4b033e33 | ||
|
|
04fd54c754 | ||
|
|
56d0da1a63 | ||
|
|
8d73e73937 | ||
|
|
532e4c27f4 | ||
|
|
d93b15bd8e | ||
|
|
36a7930252 | ||
|
|
43fc67d1a4 | ||
|
|
a1c6610faa | ||
|
|
8fe236521c | ||
|
|
b019ede88d | ||
|
|
2c1a45f356 | ||
|
|
8875aa160b | ||
|
|
3a13b66c7a | ||
|
|
309e33f012 | ||
|
|
6e784213c6 | ||
|
|
6d5177bb43 | ||
|
|
d5b61ed71a | ||
|
|
a32c9a4a94 | ||
|
|
9ffb0db2ae | ||
|
|
8ddc54360d | ||
|
|
791b95a246 | ||
|
|
87e79ec5b2 | ||
|
|
8fb27bb625 | ||
|
|
8dffd613f9 | ||
|
|
bb08cc6d80 | ||
|
|
550cc2cbbd | ||
|
|
d100d2f667 | ||
|
|
44217fc266 | ||
|
|
55cbc83924 | ||
|
|
413c0c85ef | ||
|
|
c5d5eb5658 | ||
|
|
f7e6573703 | ||
|
|
811a6c6dde | ||
|
|
a954e10ae4 | ||
|
|
f5978543aa | ||
|
|
a261f827b4 | ||
|
|
d7bc78bd59 | ||
|
|
a30a131c65 | ||
|
|
60ea3e7ba2 | ||
|
|
87c351c111 | ||
|
|
17a35c1dc7 | ||
|
|
6e3ae602bc | ||
|
|
2edab6d5dd | ||
|
|
39522773e5 | ||
|
|
8a36f91e90 | ||
|
|
5ef0c6bdcf | ||
|
|
094ad9c715 | ||
|
|
3010935eda | ||
|
|
e74366f17c | ||
|
|
9e2644c293 | ||
|
|
66ff2e6ace | ||
|
|
04935c7a14 | ||
|
|
0ba4c0332f | ||
|
|
d194e501a8 | ||
|
|
e5ee612511 | ||
|
|
2c6f55070d | ||
|
|
a03716086b | ||
|
|
1abd0fa4b7 | ||
|
|
c3dbe8fce7 | ||
|
|
8b9e4c7cec | ||
|
|
40537993ff | ||
|
|
e1c6bd55c9 | ||
|
|
23820c56c3 | ||
|
|
9d0eb20e8a | ||
|
|
dfe345fe76 | ||
|
|
675324c25b | ||
|
|
71dc04fc1d | ||
|
|
328dcbbd59 | ||
|
|
db1001f2ad | ||
|
|
029b97b981 | ||
|
|
950166fc7d | ||
|
|
5afb934769 | ||
|
|
d1deb55921 | ||
|
|
cc8c6a3812 | ||
|
|
523bbfbc50 | ||
|
|
2d76ba320f | ||
|
|
5495484c9a | ||
|
|
26a6f25428 | ||
|
|
7b67dd0456 | ||
|
|
aa0976ca4f | ||
|
|
f7c0b4fcd5 | ||
|
|
08af5fd185 | ||
|
|
7ef9a87347 | ||
|
|
b21e1e4924 | ||
|
|
56c214c2a8 | ||
|
|
d903e4237b | ||
|
|
6f238af8c1 | ||
|
|
3b490c9c86 | ||
|
|
a0120f8d5d | ||
|
|
e4622f92d7 | ||
|
|
3898e3c3d9 | ||
|
|
a8534dccf5 | ||
|
|
c00c94fdfd | ||
|
|
f6dbd4b8cd | ||
|
|
efb54e1345 | ||
|
|
d220958442 | ||
|
|
d95a88f513 | ||
|
|
36fca1cb0d | ||
|
|
d91468ba66 | ||
|
|
a136b3e3ec | ||
|
|
ea43525e6b | ||
|
|
8fe46adb66 | ||
|
|
35d66d37cf | ||
|
|
55d3cf0bde | ||
|
|
8411febf6d | ||
|
|
227e1f19a7 | ||
|
|
2fadc03782 |
29
.github/workflows/main.yml
vendored
29
.github/workflows/main.yml
vendored
@@ -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"
|
||||||
@@ -96,11 +106,20 @@ jobs:
|
|||||||
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip" arpl-dyn.vmdk
|
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip" arpl-dyn.vmdk
|
||||||
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip" arpl.vmdk arpl-flat.vmdk
|
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip" arpl.vmdk arpl-flat.vmdk
|
||||||
sha256sum update-list.yml > sha256sum
|
sha256sum update-list.yml > sha256sum
|
||||||
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | while read F; do
|
zip -9j update.zip update-list.yml
|
||||||
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
|
while read F; do
|
||||||
done
|
if [ -d "${F}" ]; then
|
||||||
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | xargs zip -9j "update.zip" sha256sum update-list.yml
|
FTGZ="`basename "${F}"`.tgz"
|
||||||
|
tar czf "${FTGZ}" -C "${F}" .
|
||||||
|
sha256sum "${FTGZ}" >> sha256sum
|
||||||
|
zip -9j update.zip "${FTGZ}"
|
||||||
|
rm "${FTGZ}"
|
||||||
|
else
|
||||||
|
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
|
||||||
|
zip -9j update.zip "${F}"
|
||||||
|
fi
|
||||||
|
done < <(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)
|
||||||
|
zip -9j update.zip sha256sum
|
||||||
# Upload artifact
|
# Upload artifact
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
|
|||||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -5,7 +5,11 @@ arpl*.vmdk
|
|||||||
*.zip
|
*.zip
|
||||||
.buildroot
|
.buildroot
|
||||||
test*.sh
|
test*.sh
|
||||||
docker/Dockerfile
|
docker/syno-compiler/Dockerfile
|
||||||
docker/cache
|
cache
|
||||||
*.bak
|
*.bak
|
||||||
*.o
|
*.o
|
||||||
|
/files/board/arpl/p3/addons
|
||||||
|
/files/board/arpl/p3/lkms
|
||||||
|
/files/board/arpl/p3/modules
|
||||||
|
/tests
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ broadwellnk 4.4.180
|
|||||||
denverton 4.4.180
|
denverton 4.4.180
|
||||||
geminilake 4.4.180
|
geminilake 4.4.180
|
||||||
v1000 4.4.180
|
v1000 4.4.180
|
||||||
|
r1000 4.4.180
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
4
TODO
4
TODO
@@ -1,6 +1,10 @@
|
|||||||
A fazer
|
A fazer
|
||||||
- Checar NVME no modelo DS920+, DS918+
|
- Checar NVME no modelo DS920+, DS918+
|
||||||
- Checar módulo tg3 no próprio loader (BCM57780 [14e4:1692]) (#31)
|
- Checar módulo tg3 no próprio loader (BCM57780 [14e4:1692]) (#31)
|
||||||
|
- "Sensitive data" (#312)
|
||||||
|
- Checar drivers para MMC/SD/eMMC
|
||||||
|
- Checar drivers para chelsio T420, T520 e T580
|
||||||
|
- Melhorar função getAllModules()
|
||||||
|
|
||||||
Concluidos:
|
Concluidos:
|
||||||
- Generalizar código dos addons
|
- Generalizar código dos addons
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ ARG PLATFORMS="@@@PLATFORMS@@@"
|
|||||||
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
|
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
|
||||||
|
|
||||||
# Copy downloaded toolkits
|
# Copy downloaded toolkits
|
||||||
ADD cache/$TOOLKIT_VER /cache
|
ADD cache /cache
|
||||||
# Extract toolkits
|
# Extract toolkits
|
||||||
RUN for V in ${PLATFORMS}; do \
|
RUN for V in ${PLATFORMS}; do \
|
||||||
echo "${V}" | while IFS=':' read PLATFORM KVER; do \
|
echo "${V}" | while IFS=':' read PLATFORM KVER; do \
|
||||||
@@ -23,7 +23,7 @@ ENV SHELL=/bin/bash \
|
|||||||
ARCH=x86_64
|
ARCH=x86_64
|
||||||
|
|
||||||
RUN apt update --yes && \
|
RUN apt update --yes && \
|
||||||
apt install --yes --no-install-recommends --no-install-suggests \
|
apt install --yes --no-install-recommends --no-install-suggests --allow-unauthenticated \
|
||||||
ca-certificates nano curl bc kmod git gettext texinfo autopoint gawk sudo \
|
ca-certificates nano curl bc kmod git gettext texinfo autopoint gawk sudo \
|
||||||
build-essential make ncurses-dev libssl-dev autogen automake pkg-config libtool xsltproc gperf && \
|
build-essential make ncurses-dev libssl-dev autogen automake pkg-config libtool xsltproc gperf && \
|
||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
9
docker/syno-compiler/PLATFORMS
Normal file
9
docker/syno-compiler/PLATFORMS
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
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
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CACHE_DIR="cache"
|
||||||
|
PLATFORM_FILE="PLATFORMS"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
function trap_cancel() {
|
function trap_cancel() {
|
||||||
echo "Press Control+C once more terminate the process (or wait 2s for it to restart)"
|
echo "Press Control+C once more terminate the process (or wait 2s for it to restart)"
|
||||||
@@ -19,32 +22,34 @@ function prepare() {
|
|||||||
URLS["denverton"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Denverton%29/denverton-${GCCLIB_VER}_x86_64-GPL.txz"
|
URLS["denverton"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Denverton%29/denverton-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||||
URLS["geminilake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29/geminilake-${GCCLIB_VER}_x86_64-GPL.txz"
|
URLS["geminilake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29/geminilake-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||||
URLS["v1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28V1000%29/v1000-${GCCLIB_VER}_x86_64-GPL.txz"
|
URLS["v1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28V1000%29/v1000-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||||
|
URLS["r1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%204.4.180%20%28r1000%29/r1000-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||||
|
URLS["epyc7002"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%20Linux%205.10.55%20%28epyc7002%29/epyc7002-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||||
|
|
||||||
# Read platforms/kerver version
|
# Read platforms/kerver version
|
||||||
echo "Reading platforms"
|
echo "Reading platforms"
|
||||||
declare -A PLATFORMS
|
declare -A PLATFORMS
|
||||||
while read PLATFORM KVER; do
|
while read PLATFORM KVER; do
|
||||||
PLATFORMS[${PLATFORM}]="${KVER}"
|
PLATFORMS[${PLATFORM}]="${KVER}"
|
||||||
done <../PLATFORMS
|
done < ${PLATFORM_FILE}
|
||||||
|
|
||||||
# Download toolkits
|
# Download toolkits
|
||||||
mkdir -p cache
|
mkdir -p ${CACHE_DIR}
|
||||||
|
|
||||||
for PLATFORM in ${!PLATFORMS[@]}; do
|
for PLATFORM in ${!PLATFORMS[@]}; do
|
||||||
KVER="${PLATFORMS[${PLATFORM}]}"
|
KVER="${PLATFORMS[${PLATFORM}]}"
|
||||||
echo -n "Checking cache/${TOOLKIT_VER}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
|
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
|
||||||
if [ ! -f "cache/${TOOLKIT_VER}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then
|
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then
|
||||||
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
||||||
echo "Downloading ${URL}"
|
echo "Downloading ${URL}"
|
||||||
curl -L "${URL}" -o "cache/${TOOLKIT_VER}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
||||||
else
|
else
|
||||||
echo "OK"
|
echo "OK"
|
||||||
fi
|
fi
|
||||||
echo -n "Checking cache/${TOOLKIT_VER}/${PLATFORM}-toolchain.txz... "
|
echo -n "Checking ${CACHE_DIR}/${PLATFORM}-toolchain.txz... "
|
||||||
if [ ! -f "cache/${TOOLKIT_VER}/${PLATFORM}-toolchain.txz" ]; then
|
if [ ! -f "${CACHE_DIR}/${PLATFORM}-toolchain.txz" ]; then
|
||||||
URL=${URLS["${PLATFORM}"]}
|
URL=${URLS["${PLATFORM}"]}
|
||||||
echo "Downloading ${URL}"
|
echo "Downloading ${URL}"
|
||||||
curl -L "${URL}" -o "cache/${TOOLKIT_VER}/${PLATFORM}-toolchain.txz"
|
curl -L "${URL}" -o "${CACHE_DIR}/${PLATFORM}-toolchain.txz"
|
||||||
else
|
else
|
||||||
echo "OK"
|
echo "OK"
|
||||||
fi
|
fi
|
||||||
@@ -62,13 +67,13 @@ function prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# 7.0
|
# 7.0
|
||||||
TOOLKIT_VER="7.0"
|
#TOOLKIT_VER="7.0"
|
||||||
TOOLCHAIN_VER="7.0-41890"
|
#TOOLCHAIN_VER="7.0-41890"
|
||||||
GCCLIB_VER="gcc750_glibc226"
|
#GCCLIB_VER="gcc750_glibc226"
|
||||||
prepare
|
#prepare
|
||||||
echo "Building ${TOOLKIT_VER}"
|
#echo "Building ${TOOLKIT_VER}"
|
||||||
docker image rm fbelavenuto/syno-compiler:${TOOLKIT_VER} >/dev/null 2>&1
|
#docker image rm fbelavenuto/syno-compiler:${TOOLKIT_VER} >/dev/null 2>&1
|
||||||
docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER}
|
#docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER}
|
||||||
|
|
||||||
# 7.1
|
# 7.1
|
||||||
TOOLKIT_VER="7.1"
|
TOOLKIT_VER="7.1"
|
||||||
@@ -9,15 +9,16 @@ function export-vars() {
|
|||||||
echo "Use: export-vars <platform>"
|
echo "Use: export-vars <platform>"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
export PLATFORM="${1}"
|
||||||
export KSRC="/opt/${1}/build"
|
export KSRC="/opt/${1}/build"
|
||||||
export CROSS_COMPILE="/opt/${1}/bin/x86_64-pc-linux-gnu-"
|
export CROSS_COMPILE="/opt/${1}/bin/x86_64-pc-linux-gnu-"
|
||||||
export CFLAGS="-I/opt/${1}/include"
|
export CFLAGS="-I/opt/${1}/include"
|
||||||
export LDFLAGS="-I/opt/${1}/lib"
|
export LDFLAGS="-I/opt/${1}/lib"
|
||||||
export LD_LIBRARY_PATH="/opt/${1}/lib"
|
export LD_LIBRARY_PATH="/opt/${1}/lib"
|
||||||
export ARCH=x86_64
|
export ARCH=x86_64
|
||||||
export PATH="/opt/${1}/bin:${PATH}"
|
|
||||||
export CC="x86_64-pc-linux-gnu-gcc"
|
export CC="x86_64-pc-linux-gnu-gcc"
|
||||||
export LD="x86_64-pc-linux-gnu-ld"
|
export LD="x86_64-pc-linux-gnu-ld"
|
||||||
|
export PATH="/opt/${1}/bin:${PATH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -46,11 +47,16 @@ 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}
|
||||||
make -C "/opt/${PLATFORM}/build" M="/tmp/input" \
|
PARMS="${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m"
|
||||||
${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules
|
if [ -f "/tmp/input/defines.${1}" ]
|
||||||
|
then
|
||||||
|
PARMS+=" `cat "/tmp/input/defines.${1}" | xargs`"
|
||||||
|
fi
|
||||||
|
make -j`nproc` -C "/opt/${PLATFORM}/build" M="/tmp/input" ${PARMS} modules
|
||||||
while read F; do
|
while read F; do
|
||||||
strip -g "${F}"
|
strip -g "${F}"
|
||||||
echo "Copying `basename ${F}`"
|
echo "Copying `basename ${F}`"
|
||||||
15
docker/syno-toolkit/Dockerfile
Normal file
15
docker/syno-toolkit/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
FROM scratch
|
||||||
|
ARG PLATFORM
|
||||||
|
ARG TOOLKIT_VER
|
||||||
|
ARG CACHE_DIR
|
||||||
|
|
||||||
|
ENV PLATFORM=${PLATFORM} TOOLKIT_VER=${TOOLKIT_VER}
|
||||||
|
ADD ${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz /
|
||||||
|
ADD ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz /
|
||||||
|
ADD ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz /
|
||||||
|
ADD rootfs /
|
||||||
|
|
||||||
|
WORKDIR /input
|
||||||
|
VOLUME /input /output
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/do.sh"]
|
||||||
61
docker/syno-toolkit/build.sh
Executable file
61
docker/syno-toolkit/build.sh
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CACHE_DIR="cache"
|
||||||
|
PLATFORM_FILE="../../PLATFORMS"
|
||||||
|
TOOLKIT_VER=7.1
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
function trap_cancel() {
|
||||||
|
echo "Press Control+C once more terminate the process (or wait 2s for it to restart)"
|
||||||
|
sleep 2 || exit 1
|
||||||
|
}
|
||||||
|
trap trap_cancel SIGINT SIGTERM
|
||||||
|
cd `dirname $0`
|
||||||
|
|
||||||
|
# Read platforms/kerver version
|
||||||
|
echo "Reading platforms"
|
||||||
|
declare -A PLATFORMS
|
||||||
|
while read PLATFORM KVER; do
|
||||||
|
PLATFORMS[${PLATFORM}]="${KVER}"
|
||||||
|
done < ${PLATFORM_FILE}
|
||||||
|
|
||||||
|
# Download toolkits
|
||||||
|
mkdir -p ${CACHE_DIR}
|
||||||
|
|
||||||
|
# Check base environment
|
||||||
|
echo -n "Checking ${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz... "
|
||||||
|
if [ ! -f "${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz" ]; then
|
||||||
|
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/base_env-${TOOLKIT_VER}.txz"
|
||||||
|
echo "Downloading ${URL}"
|
||||||
|
curl -L "${URL}" -o "${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz"
|
||||||
|
else
|
||||||
|
echo "OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check all platforms
|
||||||
|
for PLATFORM in ${!PLATFORMS[@]}; do
|
||||||
|
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
|
||||||
|
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then
|
||||||
|
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
||||||
|
echo "Downloading ${URL}"
|
||||||
|
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
||||||
|
else
|
||||||
|
echo "OK"
|
||||||
|
fi
|
||||||
|
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz... "
|
||||||
|
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz" ]; then
|
||||||
|
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz"
|
||||||
|
echo "Downloading ${URL}"
|
||||||
|
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz"
|
||||||
|
else
|
||||||
|
echo "OK"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Generate docker images
|
||||||
|
for PLATFORM in ${!PLATFORMS[@]}; do
|
||||||
|
docker buildx build . --build-arg PLATFORM=${PLATFORM} --build-arg TOOLKIT_VER=${TOOLKIT_VER} --build-arg CACHE_DIR="${CACHE_DIR}" \
|
||||||
|
--tag fbelavenuto/syno-toolkit:${PLATFORM}-${TOOLKIT_VER} --load
|
||||||
|
done
|
||||||
10
docker/syno-toolkit/rootfs/etc/profile.d/login.sh
Executable file
10
docker/syno-toolkit/rootfs/etc/profile.d/login.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
export PATH="/usr/local/x86_64-pc-linux-gnu/bin:${PATH}"
|
||||||
|
[[ "$-" != *i* ]] && return
|
||||||
|
export LS_OPTIONS='--color=auto'
|
||||||
|
export SHELL='linux'
|
||||||
|
eval "`dircolors`"
|
||||||
|
alias ls='ls -F -h --color=always -v --author --time-style=long-iso'
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias l='ls -l -a'
|
||||||
|
alias h='history 25'
|
||||||
|
alias j='jobs -l'
|
||||||
52
docker/syno-toolkit/rootfs/usr/bin/do.sh
Executable file
52
docker/syno-toolkit/rootfs/usr/bin/do.sh
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
function compile-module {
|
||||||
|
echo -e "Compiling module for \033[7m${PLATFORM}\033[0m..."
|
||||||
|
cp -R /input /tmp
|
||||||
|
make -C ${KSRC} M=/tmp/input ${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules
|
||||||
|
while read F; do
|
||||||
|
strip -g "${F}"
|
||||||
|
echo "Copying `basename ${F}`"
|
||||||
|
cp "${F}" "/output"
|
||||||
|
chown 1000.1000 "/output/`basename ${F}`"
|
||||||
|
done < <(find /tmp/input -name \*.ko)
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
function compile-lkm {
|
||||||
|
cp -R /input /tmp
|
||||||
|
make -C "/tmp/input" dev-v7
|
||||||
|
strip -g "/tmp/input/redpill.ko"
|
||||||
|
mv "/tmp/input/redpill.ko" "/output/redpill-dev.ko"
|
||||||
|
chown 1000.1000 /output/redpill-dev.ko
|
||||||
|
make -C "/tmp/input" clean
|
||||||
|
make -C "/tmp/input" prod-v7
|
||||||
|
strip -g "/tmp/input/redpill.ko"
|
||||||
|
mv "/tmp/input/redpill.ko" "/output/redpill-prod.ko"
|
||||||
|
chown 1000.1000 /output/redpill-prod.ko
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
echo "Use: <command> (<params>)"
|
||||||
|
echo "Commands: shell | compile-module | compile-lkm"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
export KSRC="/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}/build"
|
||||||
|
export LINUX_SRC="/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}/build"
|
||||||
|
export CROSS_COMPILE="/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-"
|
||||||
|
export ARCH=x86_64
|
||||||
|
export CC="x86_64-pc-linux-gnu-gcc"
|
||||||
|
export LD="x86_64-pc-linux-gnu-ld"
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
shell) shift && bash -l $@ ;;
|
||||||
|
compile-module) compile-module ;;
|
||||||
|
compile-lkm) compile-lkm ;;
|
||||||
|
*) echo "Command not recognized: $1" ;;
|
||||||
|
esac
|
||||||
Binary file not shown.
@@ -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
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ BOARD_PATH="${CONFIG_DIR}/board/arpl"
|
|||||||
|
|
||||||
echo "Creating image file"
|
echo "Creating image file"
|
||||||
# Create image zeroed
|
# Create image zeroed
|
||||||
dd if="/dev/zero" of="${IMAGE_FILE}" bs=1M count=500 conv=sync 2>/dev/null
|
dd if="/dev/zero" of="${IMAGE_FILE}" bs=1M count=1024 conv=sync 2>/dev/null
|
||||||
# Copy grub stage1 to image
|
# Copy grub stage1 to image
|
||||||
dd if="${BOARD_PATH}/grub.bin" of="${IMAGE_FILE}" conv=notrunc,sync 2>/dev/null
|
dd if="${BOARD_PATH}/grub.bin" of="${IMAGE_FILE}" conv=notrunc,sync 2>/dev/null
|
||||||
# Create partitions on image
|
# Create partitions on image
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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`
|
||||||
@@ -102,11 +102,11 @@ fi
|
|||||||
|
|
||||||
# Prepare command line
|
# Prepare command line
|
||||||
CMDLINE_LINE=""
|
CMDLINE_LINE=""
|
||||||
CMDLINE_DIRECT=""
|
|
||||||
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
|
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_LINE+="console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15"
|
CMDLINE_DIRECT="${CMDLINE_LINE}"
|
||||||
|
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}"
|
||||||
@@ -117,7 +117,6 @@ done
|
|||||||
# Escape special chars
|
# Escape special chars
|
||||||
CMDLINE_LINE=`echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g'`
|
CMDLINE_LINE=`echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g'`
|
||||||
CMDLINE_DIRECT=`echo ${CMDLINE_DIRECT} | sed 's/>/\\\\>/g'`
|
CMDLINE_DIRECT=`echo ${CMDLINE_DIRECT} | sed 's/>/\\\\>/g'`
|
||||||
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
|
|
||||||
echo -e "Cmdline:\n\033[1;36m${CMDLINE_LINE}\033[0m"
|
echo -e "Cmdline:\n\033[1;36m${CMDLINE_LINE}\033[0m"
|
||||||
|
|
||||||
# Wait for an IP
|
# Wait for an IP
|
||||||
@@ -128,7 +127,7 @@ while true; do
|
|||||||
if [ -n "${IP}" ]; then
|
if [ -n "${IP}" ]; then
|
||||||
echo -e ": \033[1;32m${IP}\033[0m"
|
echo -e ": \033[1;32m${IP}\033[0m"
|
||||||
break
|
break
|
||||||
elif [ ${COUNT} -eq 15 ]; then
|
elif [ ${COUNT} -eq 30 ]; then
|
||||||
echo -e ": \033[1;31mERROR\033[0m"
|
echo -e ": \033[1;31mERROR\033[0m"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@@ -139,6 +138,7 @@ done
|
|||||||
|
|
||||||
DIRECT="`readConfigKey "directboot" "${USER_CONFIG_FILE}"`"
|
DIRECT="`readConfigKey "directboot" "${USER_CONFIG_FILE}"`"
|
||||||
if [ "${DIRECT}" = "true" ]; then
|
if [ "${DIRECT}" = "true" ]; then
|
||||||
|
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
|
||||||
echo -e "\033[1;33mReboot to boot directly in DSM\033[0m"
|
echo -e "\033[1;33mReboot to boot directly in DSM\033[0m"
|
||||||
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
|
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
|
||||||
reboot
|
reboot
|
||||||
@@ -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
|
||||||
|
|||||||
BIN
files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz
Normal file
BIN
files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz
Normal file
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
ARPL_VERSION="1.0-beta3"
|
ARPL_VERSION="1.0-beta11a"
|
||||||
|
|
||||||
# Define paths
|
# Define paths
|
||||||
TMP_PATH="/tmp"
|
TMP_PATH="/tmp"
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}"
|
||||||
@@ -160,7 +161,7 @@ fi
|
|||||||
COUNT=0
|
COUNT=0
|
||||||
echo -n "Waiting IP."
|
echo -n "Waiting IP."
|
||||||
while true; do
|
while true; do
|
||||||
if [ ${COUNT} -eq 15 ]; then
|
if [ ${COUNT} -eq 30 ]; then
|
||||||
echo "ERROR"
|
echo "ERROR"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|||||||
Binary file not shown.
@@ -4,12 +4,12 @@
|
|||||||
. /opt/arpl/include/addons.sh
|
. /opt/arpl/include/addons.sh
|
||||||
. /opt/arpl/include/modules.sh
|
. /opt/arpl/include/modules.sh
|
||||||
|
|
||||||
# Check partition 3 space, if < 2GiB uses ramdisk
|
# Check partition 3 space, if < 2GiB is necessary clean cache folder
|
||||||
RAMCACHE=0
|
CLEARCACHE=0
|
||||||
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
|
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
|
||||||
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
|
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
|
||||||
if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194304 ]; then
|
if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194304 ]; then
|
||||||
RAMCACHE=1
|
CLEARCACHE=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get actual IP
|
# Get actual IP
|
||||||
@@ -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,207 +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"`"
|
|
||||||
|
|
||||||
if [ ${RAMCACHE} -eq 0 ]; then
|
|
||||||
OUT_PATH="${CACHE_PATH}/dl"
|
|
||||||
echo "Cache in disk"
|
|
||||||
else
|
|
||||||
OUT_PATH="${TMP_PATH}/dl"
|
|
||||||
echo "Cache in ram"
|
|
||||||
fi
|
|
||||||
mkdir -p "${OUT_PATH}"
|
|
||||||
|
|
||||||
PAT_FILE="${MODEL}-${BUILD}.pat"
|
|
||||||
PAT_PATH="${OUT_PATH}/${PAT_FILE}"
|
|
||||||
EXTRACTOR_PATH="${CACHE_PATH}/extractor"
|
|
||||||
EXTRACTOR_BIN="syno_extract_system_patch"
|
|
||||||
OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
|
|
||||||
OLDPAT_PATH="${OUT_PATH}/DS3622xs+-42218.pat"
|
|
||||||
|
|
||||||
if [ -f "${PAT_PATH}" ]; then
|
|
||||||
echo "${PAT_FILE} cached."
|
|
||||||
else
|
|
||||||
echo "Downloading ${PAT_FILE}"
|
|
||||||
STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar`
|
|
||||||
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
|
|
||||||
--msgbox "Check internet or cache disk space" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "Checking hash of ${PAT_FILE}: "
|
|
||||||
if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "Hash of pat not match, try again!" 0 0
|
|
||||||
rm -f ${PAT_PATH}
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo "OK"
|
|
||||||
|
|
||||||
rm -rf "${UNTAR_PAT_PATH}"
|
|
||||||
mkdir "${UNTAR_PAT_PATH}"
|
|
||||||
echo -n "Disassembling ${PAT_FILE}: "
|
|
||||||
|
|
||||||
header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')"
|
|
||||||
case ${header} in
|
|
||||||
105)
|
|
||||||
echo "Uncompressed tar"
|
|
||||||
isencrypted="no"
|
|
||||||
;;
|
|
||||||
213)
|
|
||||||
echo "Compressed tar"
|
|
||||||
isencrypted="no"
|
|
||||||
;;
|
|
||||||
255)
|
|
||||||
echo "Encrypted"
|
|
||||||
isencrypted="yes"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \
|
|
||||||
0 0
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "${isencrypted}" = "yes" ]; then
|
|
||||||
# Check existance of extractor
|
|
||||||
if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then
|
|
||||||
echo "Extractor cached."
|
|
||||||
else
|
|
||||||
# Extractor not exists, get it.
|
|
||||||
mkdir -p "${EXTRACTOR_PATH}"
|
|
||||||
# Check if old pat already downloaded
|
|
||||||
if [ ! -f "${OLDPAT_PATH}" ]; then
|
|
||||||
echo "Downloading old pat to extract synology .pat extractor..."
|
|
||||||
STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar`
|
|
||||||
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
|
|
||||||
--msgbox "Check internet or cache disk space" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# Extract ramdisk from PAT
|
|
||||||
rm -rf "${RAMDISK_PATH}"
|
|
||||||
mkdir -p "${RAMDISK_PATH}"
|
|
||||||
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extract all files from rd.gz
|
|
||||||
(cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true
|
|
||||||
# Copy only necessary files
|
|
||||||
for f in libcurl.so.4 libmbedcrypto.so.5 libmbedtls.so.13 libmbedx509.so.1 libmsgpackc.so.2 libsodium.so libsynocodesign-ng-virtual-junior-wins.so.7; do
|
|
||||||
cp "${RAMDISK_PATH}/usr/lib/${f}" "${EXTRACTOR_PATH}"
|
|
||||||
done
|
|
||||||
cp "${RAMDISK_PATH}/usr/syno/bin/scemd" "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}"
|
|
||||||
rm -rf "${RAMDISK_PATH}"
|
|
||||||
fi
|
|
||||||
# Uses the extractor to untar pat file
|
|
||||||
echo "Extracting..."
|
|
||||||
LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${UNTAR_PAT_PATH}" || true
|
|
||||||
else
|
|
||||||
echo "Extracting..."
|
|
||||||
tar -xf "${PAT_PATH}" -C "${UNTAR_PAT_PATH}" >"${LOG_FILE}" 2>&1
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "Checking hash of zImage: "
|
|
||||||
HASH="`sha256sum ${UNTAR_PAT_PATH}/zImage | awk '{print$1}'`"
|
|
||||||
if [ "${HASH}" != "${ZIMAGE_HASH}" ]; then
|
|
||||||
sleep 1
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "Hash of zImage not match, try again!" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo "OK"
|
|
||||||
writeConfigKey "zimage-hash" "${ZIMAGE_HASH}" "${USER_CONFIG_FILE}"
|
|
||||||
|
|
||||||
echo -n "Checking hash of ramdisk: "
|
|
||||||
HASH="`sha256sum ${UNTAR_PAT_PATH}/rd.gz | awk '{print$1}'`"
|
|
||||||
if [ "${HASH}" != "${RAMDISK_HASH}" ]; then
|
|
||||||
sleep 1
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "Hash of ramdisk not match, try again!" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo "OK"
|
|
||||||
writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}"
|
|
||||||
|
|
||||||
echo -n "Copying files: "
|
|
||||||
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}"
|
|
||||||
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}"
|
|
||||||
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}"
|
|
||||||
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}"
|
|
||||||
cp "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}"
|
|
||||||
cp "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}"
|
|
||||||
echo "OK"
|
|
||||||
}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Where the magic happens!
|
|
||||||
function make() {
|
|
||||||
clear
|
|
||||||
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
|
||||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
|
||||||
|
|
||||||
# Check if all addon exists
|
|
||||||
while IFS="=" read ADDON PARAM; do
|
|
||||||
[ -z "${ADDON}" ] && continue
|
|
||||||
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "Addon ${ADDON} not found!" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
|
||||||
|
|
||||||
[ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ] && extractDsmFiles
|
|
||||||
|
|
||||||
/opt/arpl/zimage-patch.sh
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
/opt/arpl/ramdisk-patch.sh
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
|
||||||
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 0 0
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Cleaning"
|
|
||||||
rm -rf "${UNTAR_PAT_PATH}"
|
|
||||||
|
|
||||||
echo "Ready!"
|
|
||||||
sleep 3
|
|
||||||
DIRTY=0
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Calls boot.sh to boot into DSM kernel/ramdisk
|
|
||||||
function boot() {
|
|
||||||
[ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \
|
|
||||||
--yesno "Config changed, would you like to rebuild the loader?" 0 0
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
make || return
|
|
||||||
fi
|
|
||||||
boot.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Permits user edit the user config
|
# Permits user edit the user config
|
||||||
function editUserConfig() {
|
function editUserConfig() {
|
||||||
@@ -835,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() {
|
||||||
@@ -862,6 +973,8 @@ function keymapMenu() {
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
function updateMenu() {
|
function updateMenu() {
|
||||||
|
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
||||||
|
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||||
while true; do
|
while true; do
|
||||||
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
|
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
|
||||||
a "Update arpl" \
|
a "Update arpl" \
|
||||||
@@ -913,17 +1026,24 @@ function updateMenu() {
|
|||||||
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
|
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
|
||||||
--infobox "Installing new files" 0 0
|
--infobox "Installing new files" 0 0
|
||||||
# Process update-list.yml
|
# Process update-list.yml
|
||||||
while IFS="=" read KEY VALUE; do
|
|
||||||
mv /tmp/`basename "${KEY}"` "${VALUE}"
|
|
||||||
done < <(readConfigMap "replace" "/tmp/update-list.yml")
|
|
||||||
while read F; do
|
while read F; do
|
||||||
[ -f "${F}" ] && rm -f "${F}"
|
[ -f "${F}" ] && rm -f "${F}"
|
||||||
[ -d "${F}" ] && rm -Rf "${F}"
|
[ -d "${F}" ] && rm -Rf "${F}"
|
||||||
done < <(readConfigArray "remove" "/tmp/update-list.yml")
|
done < <(readConfigArray "remove" "/tmp/update-list.yml")
|
||||||
|
while IFS="=" read KEY VALUE; do
|
||||||
|
if [ "${KEY: -1}" = "/" ]; then
|
||||||
|
rm -Rf "${VALUE}"
|
||||||
|
mkdir -p "${VALUE}"
|
||||||
|
gzip -dc "/tmp/`basename "${KEY}"`.tgz" | tar xf - -C "${VALUE}"
|
||||||
|
else
|
||||||
|
mkdir -p "`dirname "${VALUE}"`"
|
||||||
|
mv "/tmp/`basename "${KEY}"`" "${VALUE}"
|
||||||
|
fi
|
||||||
|
done < <(readConfigMap "replace" "/tmp/update-list.yml")
|
||||||
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
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -951,6 +1071,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}"
|
||||||
@@ -1020,6 +1141,13 @@ 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 if model/buildnumber is selected
|
||||||
|
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
|
||||||
|
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||||
|
while read ID DESC; do
|
||||||
|
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
|
||||||
|
done < <(getAllModules "${PLATFORM}" "${KVER}")
|
||||||
|
fi
|
||||||
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
|
||||||
@@ -1047,21 +1175,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"
|
||||||
[ ${RAMCACHE} -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
|
||||||
@@ -1071,20 +1203,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 ;;
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -9,12 +9,14 @@ synoinfo: &synoinfo
|
|||||||
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"
|
||||||
|
#support_ssd_cache: yes
|
||||||
cmdline: &cmdline
|
cmdline: &cmdline
|
||||||
syno_hdd_powerup_seq: 0
|
syno_hdd_powerup_seq: 0
|
||||||
HddHotplug: 0
|
HddHotplug: 0
|
||||||
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
|
||||||
@@ -34,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:
|
||||||
@@ -56,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:
|
||||||
@@ -78,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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
49
files/board/arpl/overlayfs/opt/arpl/model-configs/DS923+.yml
Normal file
49
files/board/arpl/overlayfs/opt/arpl/model-configs/DS923+.yml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
id: "DS923+"
|
||||||
|
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
|
||||||
|
elevator: elevator
|
||||||
|
platform: "r1000"
|
||||||
|
unique: "synology_r1000_923+"
|
||||||
|
beta: true
|
||||||
|
dom: 2
|
||||||
|
dt: true
|
||||||
|
serial:
|
||||||
|
prefix:
|
||||||
|
- "2030"
|
||||||
|
- "2040"
|
||||||
|
- "20C0"
|
||||||
|
- "2150"
|
||||||
|
middle: "TQR"
|
||||||
|
suffix: "alpha"
|
||||||
|
disks: 4
|
||||||
|
builds:
|
||||||
|
42962:
|
||||||
|
ver: "7.1.1"
|
||||||
|
kver: "4.4.180"
|
||||||
|
rd-compressed: false
|
||||||
|
cmdline:
|
||||||
|
<<: *cmdline
|
||||||
|
synoinfo:
|
||||||
|
<<: *synoinfo
|
||||||
|
pat:
|
||||||
|
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS923%2B_42962.pat"
|
||||||
|
hash: "e33b47df446ce0bd99c5613767c9dba977915e25acfb5ccb9f5650b14459458f"
|
||||||
|
ramdisk-hash: "0aa3f1b2d00f887aaf0d0e2c8b51ec97bb545bf5f99c40f33d3eaabc32a5ac03"
|
||||||
|
zimage-hash: "1e54804c84e0b4e7f71eff5b5ec8aad9c6ba8fb4fc200ad92251d7d29155a651"
|
||||||
|
md5-hash: "fdff6232dacf9bd3b189506f51577128"
|
||||||
|
patch:
|
||||||
|
- "ramdisk-common-disable-root-pwd.patch"
|
||||||
|
- "ramdisk-common-init-script.patch"
|
||||||
|
- "ramdisk-common-etc-rc.patch"
|
||||||
|
- "ramdisk-42951-post-init-script.patch"
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
1
files/board/arpl/p1/ARPL-VERSION
Normal file
1
files/board/arpl/p1/ARPL-VERSION
Normal file
@@ -0,0 +1 @@
|
|||||||
|
1.0-beta11a
|
||||||
BIN
files/board/arpl/p1/EFI/BOOT/BOOTIA32.EFI
Normal file
BIN
files/board/arpl/p1/EFI/BOOT/BOOTIA32.EFI
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
search --set=root --label "ARPL1"
|
|
||||||
set prefix=($root)'/grub'
|
|
||||||
configfile $prefix/grub.cfg
|
|
||||||
BIN
files/board/arpl/p1/grub/fonts/unicode.pf2
Normal file
BIN
files/board/arpl/p1/grub/fonts/unicode.pf2
Normal file
Binary file not shown.
@@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
if loadfont unicode ; then
|
||||||
|
set gfxmode=auto
|
||||||
|
insmod gfxterm
|
||||||
|
#set gfxpayload=800x600
|
||||||
|
terminal_output gfxterm
|
||||||
|
fi
|
||||||
|
|
||||||
|
set menu_color_normal=light-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..."
|
||||||
|
|||||||
BIN
files/board/arpl/p1/grub/i386-efi/acpi.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/acpi.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/adler32.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/adler32.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/affs.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/affs.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/afs.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/afs.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/afsplitter.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/afsplitter.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/ahci.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/ahci.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/all_video.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/all_video.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/aout.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/aout.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/appleldr.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/appleldr.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/archelp.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/archelp.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/at_keyboard.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/at_keyboard.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/ata.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/ata.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/backtrace.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/backtrace.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/bfs.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/bfs.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/bitmap.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/bitmap.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/bitmap_scale.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/bitmap_scale.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/blocklist.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/blocklist.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/boot.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/boot.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/bsd.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/bsd.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/bswap_test.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/bswap_test.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/btrfs.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/btrfs.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/bufio.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/bufio.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cat.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cat.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cbfs.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cbfs.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cbls.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cbls.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cbmemc.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cbmemc.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cbtable.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cbtable.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cbtime.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cbtime.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/chain.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/chain.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cmdline_cat_test.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cmdline_cat_test.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cmp.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cmp.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cmp_test.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cmp_test.mod
Normal file
Binary file not shown.
194
files/board/arpl/p1/grub/i386-efi/command.lst
Normal file
194
files/board/arpl/p1/grub/i386-efi/command.lst
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
*acpi: acpi
|
||||||
|
*all_functional_test: functional_test
|
||||||
|
*background_image: gfxterm_background
|
||||||
|
*cat: cat
|
||||||
|
*cpuid: cpuid
|
||||||
|
*crc: hashsum
|
||||||
|
*cryptomount: cryptodisk
|
||||||
|
*echo: echo
|
||||||
|
*extract_syslinux_entries_configfile: syslinuxcfg
|
||||||
|
*extract_syslinux_entries_source: syslinuxcfg
|
||||||
|
*file: file
|
||||||
|
*functional_test: functional_test
|
||||||
|
*gettext: gettext
|
||||||
|
*hashsum: hashsum
|
||||||
|
*hdparm: hdparm
|
||||||
|
*hello: hello
|
||||||
|
*help: help
|
||||||
|
*hexdump: hexdump
|
||||||
|
*inb: iorw
|
||||||
|
*inl: iorw
|
||||||
|
*inw: iorw
|
||||||
|
*keystatus: keystatus
|
||||||
|
*kfreebsd: bsd
|
||||||
|
*knetbsd: bsd
|
||||||
|
*kopenbsd: bsd
|
||||||
|
*list_env: loadenv
|
||||||
|
*load_env: loadenv
|
||||||
|
*loopback: loopback
|
||||||
|
*ls: ls
|
||||||
|
*lsacpi: lsacpi
|
||||||
|
*lspci: lspci
|
||||||
|
*md5sum: hashsum
|
||||||
|
*menuentry: normal
|
||||||
|
*pcidump: pcidump
|
||||||
|
*probe: probe
|
||||||
|
*rdmsr: rdmsr
|
||||||
|
*read_byte: memrw
|
||||||
|
*read_dword: memrw
|
||||||
|
*read_word: memrw
|
||||||
|
*regexp: regexp
|
||||||
|
*save_env: loadenv
|
||||||
|
*search: search
|
||||||
|
*serial: serial
|
||||||
|
*setpci: setpci
|
||||||
|
*sha1sum: hashsum
|
||||||
|
*sha256sum: hashsum
|
||||||
|
*sha512sum: hashsum
|
||||||
|
*sleep: sleep
|
||||||
|
*smbios: smbios
|
||||||
|
*submenu: normal
|
||||||
|
*syslinux_configfile: syslinuxcfg
|
||||||
|
*syslinux_source: syslinuxcfg
|
||||||
|
*terminfo: terminfo
|
||||||
|
*test_blockarg: test_blockarg
|
||||||
|
*testspeed: testspeed
|
||||||
|
*tr: tr
|
||||||
|
*trust: pgp
|
||||||
|
*verify_detached: pgp
|
||||||
|
*xnu_splash: xnu
|
||||||
|
*zfskey: zfscrypt
|
||||||
|
.: configfile
|
||||||
|
[: test
|
||||||
|
appleloader: appleldr
|
||||||
|
authenticate: normal
|
||||||
|
background_color: gfxterm_background
|
||||||
|
backtrace: backtrace
|
||||||
|
badram: mmap
|
||||||
|
blocklist: blocklist
|
||||||
|
boot: boot
|
||||||
|
break: normal
|
||||||
|
cat: minicmd
|
||||||
|
cbmemc: cbmemc
|
||||||
|
chainloader: chain
|
||||||
|
clear: normal
|
||||||
|
cmp: cmp
|
||||||
|
configfile: configfile
|
||||||
|
continue: normal
|
||||||
|
coreboot_boottime: cbtime
|
||||||
|
cutmem: mmap
|
||||||
|
date: date
|
||||||
|
distrust: pgp
|
||||||
|
dump: minicmd
|
||||||
|
eval: eval
|
||||||
|
exit: minicmd
|
||||||
|
export: normal
|
||||||
|
extract_entries_configfile: configfile
|
||||||
|
extract_entries_source: configfile
|
||||||
|
extract_legacy_entries_configfile: legacycfg
|
||||||
|
extract_legacy_entries_source: legacycfg
|
||||||
|
fakebios: loadbios
|
||||||
|
false: true
|
||||||
|
fix_video: fixvideo
|
||||||
|
fwsetup: efifwsetup
|
||||||
|
gdbstub: gdb
|
||||||
|
gdbstub_break: gdb
|
||||||
|
gdbstub_stop: gdb
|
||||||
|
gptsync: gptsync
|
||||||
|
halt: halt
|
||||||
|
help: minicmd
|
||||||
|
hexdump_random: random
|
||||||
|
initrd16: linux16
|
||||||
|
initrd: linux
|
||||||
|
keymap: keylayouts
|
||||||
|
kfreebsd_loadenv: bsd
|
||||||
|
kfreebsd_module: bsd
|
||||||
|
kfreebsd_module_elf: bsd
|
||||||
|
knetbsd_module: bsd
|
||||||
|
knetbsd_module_elf: bsd
|
||||||
|
kopenbsd_ramdisk: bsd
|
||||||
|
legacy_check_password: legacycfg
|
||||||
|
legacy_configfile: legacycfg
|
||||||
|
legacy_initrd: legacycfg
|
||||||
|
legacy_initrd_nounzip: legacycfg
|
||||||
|
legacy_kernel: legacycfg
|
||||||
|
legacy_password: legacycfg
|
||||||
|
legacy_source: legacycfg
|
||||||
|
linux16: linux16
|
||||||
|
linux: linux
|
||||||
|
list_trusted: pgp
|
||||||
|
loadbios: loadbios
|
||||||
|
loadfont: font
|
||||||
|
lscoreboot: cbls
|
||||||
|
lsefi: lsefi
|
||||||
|
lsefimmap: lsefimmap
|
||||||
|
lsefisystab: lsefisystab
|
||||||
|
lsfonts: font
|
||||||
|
lsmmap: lsmmap
|
||||||
|
lsmod: minicmd
|
||||||
|
lssal: lssal
|
||||||
|
macppcbless: macbless
|
||||||
|
mactelbless: macbless
|
||||||
|
module2: multiboot2
|
||||||
|
module: multiboot
|
||||||
|
multiboot2: multiboot2
|
||||||
|
multiboot: multiboot
|
||||||
|
nativedisk: nativedisk
|
||||||
|
net_add_addr: net
|
||||||
|
net_add_dns: net
|
||||||
|
net_add_route: net
|
||||||
|
net_bootp: net
|
||||||
|
net_del_addr: net
|
||||||
|
net_del_dns: net
|
||||||
|
net_del_route: net
|
||||||
|
net_dhcp: net
|
||||||
|
net_get_dhcp_option: net
|
||||||
|
net_ipv6_autoconf: net
|
||||||
|
net_ls_addr: net
|
||||||
|
net_ls_cards: net
|
||||||
|
net_ls_dns: net
|
||||||
|
net_ls_routes: net
|
||||||
|
net_nslookup: net
|
||||||
|
normal: normal
|
||||||
|
normal_exit: normal
|
||||||
|
outb: iorw
|
||||||
|
outl: iorw
|
||||||
|
outw: iorw
|
||||||
|
parttool: parttool
|
||||||
|
password: password
|
||||||
|
password_pbkdf2: password_pbkdf2
|
||||||
|
play: play
|
||||||
|
read: read
|
||||||
|
reboot: reboot
|
||||||
|
return: normal
|
||||||
|
rmmod: minicmd
|
||||||
|
search.file: search_fs_file
|
||||||
|
search.fs_label: search_label
|
||||||
|
search.fs_uuid: search_fs_uuid
|
||||||
|
setparams: normal
|
||||||
|
shift: normal
|
||||||
|
source: configfile
|
||||||
|
terminal_input: terminal
|
||||||
|
terminal_output: terminal
|
||||||
|
test: test
|
||||||
|
testload: testload
|
||||||
|
time: time
|
||||||
|
true: true
|
||||||
|
usb: usbtest
|
||||||
|
videoinfo: videoinfo
|
||||||
|
videotest: videotest
|
||||||
|
write_byte: memrw
|
||||||
|
write_dword: memrw
|
||||||
|
write_word: memrw
|
||||||
|
wrmsr: wrmsr
|
||||||
|
xnu_devprop_load: xnu
|
||||||
|
xnu_kernel64: xnu
|
||||||
|
xnu_kernel: xnu
|
||||||
|
xnu_kext: xnu
|
||||||
|
xnu_kextdir: xnu
|
||||||
|
xnu_mkext: xnu
|
||||||
|
xnu_ramdisk: xnu
|
||||||
|
xnu_resume: xnu
|
||||||
|
xnu_uuid: xnu_uuid
|
||||||
|
zfs-bootfs: zfsinfo
|
||||||
|
zfsinfo: zfsinfo
|
||||||
BIN
files/board/arpl/p1/grub/i386-efi/configfile.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/configfile.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/core.efi
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/core.efi
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cpio.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cpio.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cpio_be.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cpio_be.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cpuid.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cpuid.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/crc64.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/crc64.mod
Normal file
Binary file not shown.
45
files/board/arpl/p1/grub/i386-efi/crypto.lst
Normal file
45
files/board/arpl/p1/grub/i386-efi/crypto.lst
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
RIJNDAEL: gcry_rijndael
|
||||||
|
RIJNDAEL192: gcry_rijndael
|
||||||
|
RIJNDAEL256: gcry_rijndael
|
||||||
|
AES128: gcry_rijndael
|
||||||
|
AES-128: gcry_rijndael
|
||||||
|
AES-192: gcry_rijndael
|
||||||
|
AES-256: gcry_rijndael
|
||||||
|
ADLER32: adler32
|
||||||
|
CRC64: crc64
|
||||||
|
ARCFOUR: gcry_arcfour
|
||||||
|
BLOWFISH: gcry_blowfish
|
||||||
|
CAMELLIA128: gcry_camellia
|
||||||
|
CAMELLIA192: gcry_camellia
|
||||||
|
CAMELLIA256: gcry_camellia
|
||||||
|
CAST5: gcry_cast5
|
||||||
|
CRC32: gcry_crc
|
||||||
|
CRC32RFC1510: gcry_crc
|
||||||
|
CRC24RFC2440: gcry_crc
|
||||||
|
DES: gcry_des
|
||||||
|
3DES: gcry_des
|
||||||
|
DSA: gcry_dsa
|
||||||
|
IDEA: gcry_idea
|
||||||
|
MD4: gcry_md4
|
||||||
|
MD5: gcry_md5
|
||||||
|
RFC2268_40: gcry_rfc2268
|
||||||
|
AES: gcry_rijndael
|
||||||
|
AES192: gcry_rijndael
|
||||||
|
AES256: gcry_rijndael
|
||||||
|
RIPEMD160: gcry_rmd160
|
||||||
|
RSA: gcry_rsa
|
||||||
|
SEED: gcry_seed
|
||||||
|
SERPENT128: gcry_serpent
|
||||||
|
SERPENT192: gcry_serpent
|
||||||
|
SERPENT256: gcry_serpent
|
||||||
|
SHA1: gcry_sha1
|
||||||
|
SHA224: gcry_sha256
|
||||||
|
SHA256: gcry_sha256
|
||||||
|
SHA512: gcry_sha512
|
||||||
|
SHA384: gcry_sha512
|
||||||
|
TIGER192: gcry_tiger
|
||||||
|
TIGER: gcry_tiger
|
||||||
|
TIGER2: gcry_tiger
|
||||||
|
TWOFISH: gcry_twofish
|
||||||
|
TWOFISH128: gcry_twofish
|
||||||
|
WHIRLPOOL: gcry_whirlpool
|
||||||
BIN
files/board/arpl/p1/grub/i386-efi/crypto.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/crypto.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cryptodisk.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cryptodisk.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/cs5536.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/cs5536.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/ctz_test.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/ctz_test.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/date.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/date.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/datehook.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/datehook.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/datetime.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/datetime.mod
Normal file
Binary file not shown.
BIN
files/board/arpl/p1/grub/i386-efi/disk.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/disk.mod
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user