mirror of
https://github.com/fbelavenuto/arpl.git
synced 2025-12-24 14:52:05 +08:00
Compare commits
155 Commits
v1.0-beta4
...
v1.1-beta2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a4d04d5653 | ||
|
|
c42ce3120f | ||
|
|
9dd15f25e0 | ||
|
|
93c0303aba | ||
|
|
b2c215fb9a | ||
|
|
4fc5161239 | ||
|
|
1b7304ef44 | ||
|
|
230cbc986b | ||
|
|
746d0361b4 | ||
|
|
7acfb99fca | ||
|
|
3c84a9fa29 | ||
|
|
1012d4563a | ||
|
|
920b9994b1 | ||
|
|
b91aec94a7 | ||
|
|
97356dff47 | ||
|
|
6fe5a26531 | ||
|
|
f99a7fe44b | ||
|
|
7584ad59f2 | ||
|
|
79eaeb2c40 | ||
|
|
8908747db7 | ||
|
|
d5d752b93c | ||
|
|
b5010aff8c | ||
|
|
57daf6e645 | ||
|
|
06d85768bf | ||
|
|
f2667baa64 | ||
|
|
4e33c6fe69 | ||
|
|
5c4abf005d | ||
|
|
7d9a6bd91b | ||
|
|
8df97f2cf7 | ||
|
|
1cc8488d44 | ||
|
|
630cd019db | ||
|
|
68ceba090d | ||
|
|
10a3390eda | ||
|
|
14dee10280 | ||
|
|
e0d6f5487e | ||
|
|
e3c79978fb | ||
|
|
af04acef77 | ||
|
|
abc533f6e5 | ||
|
|
bd34a24665 | ||
|
|
6a49f24473 | ||
|
|
994c0e21f1 | ||
|
|
9ce8f6deb7 | ||
|
|
d61c3a9f3a | ||
|
|
d8ad963a02 | ||
|
|
d71c4215a1 | ||
|
|
c5e81b59b4 | ||
|
|
d4c2e8dbca | ||
|
|
178374e498 | ||
|
|
85778bbf58 | ||
|
|
ed8f511766 | ||
|
|
7b02fc8d25 | ||
|
|
034b40dad9 | ||
|
|
ad6d6f69cb | ||
|
|
ef8fc415ac | ||
|
|
0ef66dc098 | ||
|
|
936dccb19d | ||
|
|
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 |
97
.github/workflows/main.yml
vendored
97
.github/workflows/main.yml
vendored
@@ -14,24 +14,64 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Check cache
|
||||
# Check dl cache
|
||||
- name: Cache downloads
|
||||
id: dl-cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/dl
|
||||
key: ${{ runner.os }}-dl
|
||||
|
||||
# Check buildroot cache
|
||||
- name: Cache buildroot
|
||||
id: cache
|
||||
id: br-cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: .buildroot
|
||||
key: ${{ runner.os }}-${{ hashFiles('files/configs/arpl_defconfig') }}
|
||||
|
||||
# Install dependencies
|
||||
# Install dependencies
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libelf-dev qemu-utils
|
||||
sudo cp -f files/board/arpl/overlayfs/usr/bin/yq /usr/bin/yq
|
||||
|
||||
# Prepare buildroot for first make (for cache)
|
||||
- name: Prepare buildroot
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
# Get latests LKM, addons and modules
|
||||
- name: Get latests LKM, addons and Modules
|
||||
run: |
|
||||
# Get latest LKMs
|
||||
echo "Getting latest LKMs"
|
||||
TAG=`curl -s https://api.github.com/repos/fbelavenuto/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
||||
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o /tmp/rp-lkms.zip`
|
||||
echo "Status=${STATUS}"
|
||||
[ ${STATUS} -ne 200 ] && exit 1
|
||||
|
||||
# Get latest addons and install its
|
||||
echo "Getting latest Addons"
|
||||
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
||||
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl-addons/releases/download/${TAG}/addons.zip" -o /tmp/addons.zip`
|
||||
echo "Status=${STATUS}"
|
||||
[ ${STATUS} -ne 200 ] && exit 1
|
||||
|
||||
# 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}"
|
||||
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/${FILE}.tgz" -o "${MODULES_DIR}/${FILE}.tgz"`
|
||||
echo "Status=${STATUS}"
|
||||
[ ${STATUS} -ne 200 ] && exit 1
|
||||
done < PLATFORMS
|
||||
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/firmware.tgz" -o "${MODULES_DIR}/firmware.tgz"`
|
||||
echo "Status=${STATUS}"
|
||||
[ ${STATUS} -ne 200 ] && exit 1
|
||||
echo OK
|
||||
|
||||
# Clone buildroot repository (if not cached)
|
||||
- name: Clone buildroot
|
||||
if: steps.br-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --single-branch -b 2022.02 https://github.com/buildroot/buildroot.git .buildroot
|
||||
# Copy files
|
||||
@@ -40,10 +80,23 @@ jobs:
|
||||
cd .buildroot
|
||||
echo "Generating default config"
|
||||
make BR2_EXTERNAL=../external arpl_defconfig
|
||||
|
||||
# Download sources if not cached
|
||||
- name: Download buildroot packages source
|
||||
if: steps.dl-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd .buildroot
|
||||
make BR2_EXTERNAL=../external source
|
||||
|
||||
# Prepare buildroot for first make
|
||||
- name: Prepare buildroot
|
||||
if: steps.br-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
echo "First make"
|
||||
cd .buildroot
|
||||
make BR2_EXTERNAL=../external
|
||||
|
||||
# Build incremental from cache
|
||||
# Build incremental from caches
|
||||
- name: Build image
|
||||
id: build
|
||||
run: |
|
||||
@@ -54,16 +107,10 @@ jobs:
|
||||
rm -rf .buildroot/board/arpl/overlayfs
|
||||
rm -rf .buildroot/board/arpl/p1
|
||||
rm -rf .buildroot/board/arpl/p3
|
||||
# Get latest LKMs
|
||||
echo "Getting latest LKMs"
|
||||
TAG=`curl -s https://api.github.com/repos/fbelavenuto/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
||||
curl -L "https://github.com/fbelavenuto/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o /tmp/rp-lkms.zip
|
||||
# Unzip LKMs
|
||||
rm -rf files/board/arpl/p3/lkms/*
|
||||
unzip /tmp/rp-lkms.zip -d files/board/arpl/p3/lkms
|
||||
# Get latest addons and install its
|
||||
echo "Getting latest Addons"
|
||||
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
||||
curl -L "https://github.com/fbelavenuto/arpl-addons/releases/download/${TAG}/addons.zip" -o /tmp/addons.zip
|
||||
# Install Addons
|
||||
mkdir -p /tmp/addons
|
||||
unzip /tmp/addons.zip -d /tmp/addons
|
||||
DEST_PATH="files/board/arpl/p3/addons"
|
||||
@@ -77,6 +124,7 @@ jobs:
|
||||
# Copy files
|
||||
echo "Copying files"
|
||||
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/
|
||||
cd .buildroot
|
||||
echo "Generating default config"
|
||||
@@ -96,11 +144,20 @@ jobs:
|
||||
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
|
||||
sha256sum update-list.yml > sha256sum
|
||||
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | while read F; do
|
||||
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
|
||||
done
|
||||
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | xargs zip -9j "update.zip" sha256sum update-list.yml
|
||||
|
||||
zip -9j update.zip update-list.yml
|
||||
while read F; do
|
||||
if [ -d "${F}" ]; then
|
||||
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
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v3
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -9,3 +9,7 @@ docker/syno-compiler/Dockerfile
|
||||
cache
|
||||
*.bak
|
||||
*.o
|
||||
/files/board/arpl/p3/addons
|
||||
/files/board/arpl/p3/lkms
|
||||
/files/board/arpl/p3/modules
|
||||
/tests
|
||||
|
||||
@@ -81,6 +81,11 @@ Select the "Boot" option and wait for the DSM to boot:
|
||||
The DSM kernel does not display messages on the screen, so it is necessary to continue the process of configuring DSM through the browser by accessing the address `http://<ip>`.
|
||||
There are several tutorials on how to configure DSM over the internet, which will not be covered here.
|
||||
|
||||
# Tutorials
|
||||
|
||||
An ARPL user (Rikkie) created a tutorial to install ARPL on a proxmox server:
|
||||
https://hotstuff.asia/2023/01/03/xpenology-with-arpl-on-proxmox-the-easy-way/
|
||||
|
||||
# Troubles/questions/etc
|
||||
|
||||
Please search the forums at https://xpenology.com/forum if your question/problem has been discussed and resolved. If you can't find a solution, use github issues.
|
||||
|
||||
2
TODO
2
TODO
@@ -4,7 +4,7 @@ A fazer
|
||||
- "Sensitive data" (#312)
|
||||
- Checar drivers para MMC/SD/eMMC
|
||||
- Checar drivers para chelsio T420, T520 e T580
|
||||
-
|
||||
- Melhorar função getAllModules()
|
||||
|
||||
Concluidos:
|
||||
- Generalizar código dos addons
|
||||
|
||||
@@ -3,7 +3,7 @@ ARG PLATFORMS="@@@PLATFORMS@@@"
|
||||
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
|
||||
|
||||
# Copy downloaded toolkits
|
||||
ADD cache/$TOOLKIT_VER /cache
|
||||
ADD cache /cache
|
||||
# Extract toolkits
|
||||
RUN for V in ${PLATFORMS}; do \
|
||||
echo "${V}" | while IFS=':' read PLATFORM KVER; do \
|
||||
@@ -14,6 +14,13 @@ RUN for V in ${PLATFORMS}; do \
|
||||
"usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}" && \
|
||||
echo "Extracting ${PLATFORM}-toolchain.txz" && \
|
||||
tar -xaf "/cache/${PLATFORM}-toolchain.txz" -C "/opt/${PLATFORM}" --strip-components=1; \
|
||||
KVER_MAJOR="`echo ${KVER} | rev | cut -d. -f2- | rev`"; \
|
||||
if [ ! -d "/opt/linux-${KVER_MAJOR}.x" -a -f "/cache/linux-${KVER_MAJOR}.x.txz" ]; then \
|
||||
echo "Extracting linux-${KVER_MAJOR}.x.txz" && \
|
||||
tar -xaf "/cache/linux-${KVER_MAJOR}.x.txz" -C "/opt"; \
|
||||
rm -rf /opt/${PLATFORM}/source && \
|
||||
ln -s /opt/linux-${KVER_MAJOR}.x /opt/${PLATFORM}/source; \
|
||||
fi; \
|
||||
done; \
|
||||
done
|
||||
|
||||
@@ -28,14 +35,15 @@ RUN apt update --yes && \
|
||||
build-essential make ncurses-dev libssl-dev autogen automake pkg-config libtool xsltproc gperf && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
useradd --home-dir /input --no-create-home --shell /bin/bash --uid 1000 arpl && \
|
||||
echo "arpl ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/arpl
|
||||
useradd --create-home --shell /bin/bash --uid 1000 --user-group arpl && \
|
||||
echo "arpl ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/arpl && \
|
||||
mkdir /output && chown 1000:1000 /output
|
||||
|
||||
COPY --from=stage /opt /opt
|
||||
COPY --from=stage --chown=1000:1000 /opt /opt
|
||||
COPY files/ /
|
||||
|
||||
USER arpl
|
||||
WORKDIR /input
|
||||
VOLUME /input /output
|
||||
USER arpl
|
||||
|
||||
ENTRYPOINT ["/opt/do.sh"]
|
||||
|
||||
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,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
CACHE_DIR="cache"
|
||||
PLATFORM_FILE="../../PLATFORMS"
|
||||
PLATFORM_FILE="PLATFORMS"
|
||||
|
||||
###############################################################################
|
||||
function trap_cancel() {
|
||||
@@ -23,6 +23,15 @@ function prepare() {
|
||||
URLS["geminilake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29/geminilake-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||
URLS["v1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28V1000%29/v1000-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||
URLS["r1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%204.4.180%20%28r1000%29/r1000-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||
URLS["epyc7002"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%20Linux%205.10.55%20%28epyc7002%29/epyc7002-${GCCLIB_VER}_x86_64-GPL.txz"
|
||||
#
|
||||
URLS["apollolake-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/apollolake/linux-4.4.x.txz"
|
||||
URLS["broadwell-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/broadwell/linux-4.4.x.txz"
|
||||
URLS["broadwellnk-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/broadwellnk/linux-4.4.x.txz"
|
||||
URLS["bromolow-3.10.108"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/bromolow/linux-3.10.x.txz"
|
||||
URLS["denverton-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/denverton/linux-4.4.x.txz"
|
||||
URLS["geminilake-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/geminilake/linux-4.4.x.txz"
|
||||
URLS["v1000-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/v1000/linux-4.4.x.txz"
|
||||
|
||||
# Read platforms/kerver version
|
||||
echo "Reading platforms"
|
||||
@@ -39,7 +48,7 @@ function prepare() {
|
||||
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}"
|
||||
echo -e "No\nDownloading ${URL}"
|
||||
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
|
||||
else
|
||||
echo "OK"
|
||||
@@ -47,13 +56,25 @@ function prepare() {
|
||||
echo -n "Checking ${CACHE_DIR}/${PLATFORM}-toolchain.txz... "
|
||||
if [ ! -f "${CACHE_DIR}/${PLATFORM}-toolchain.txz" ]; then
|
||||
URL=${URLS["${PLATFORM}"]}
|
||||
echo "Downloading ${URL}"
|
||||
echo -e "No\nDownloading ${URL}"
|
||||
curl -L "${URL}" -o "${CACHE_DIR}/${PLATFORM}-toolchain.txz"
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
done
|
||||
|
||||
for KERNEL in 3.10.x 4.4.x 5.10.x; do
|
||||
URL=${URLS["${KERNEL}"]}
|
||||
[ -z "${URL}" ] && continue
|
||||
echo -n "Checking ${CACHE_DIR}/linux-${KERNEL}.txz... "
|
||||
if [ ! -f "${CACHE_DIR}/linux-${KERNEL}.txz" ]; then
|
||||
echo -e "No\nDownloading ${URL}"
|
||||
curl -L "${URL}" -o "${CACHE_DIR}/linux-${KERNEL}.txz"
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
done
|
||||
|
||||
# Generate Dockerfile
|
||||
echo "Generating Dockerfile"
|
||||
cp Dockerfile.template Dockerfile
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -eo pipefail
|
||||
|
||||
###############################################################################
|
||||
function export-vars() {
|
||||
@@ -9,20 +9,25 @@ function export-vars() {
|
||||
echo "Use: export-vars <platform>"
|
||||
exit 1
|
||||
fi
|
||||
export PLATFORM="${1}"
|
||||
export KSRC="/opt/${1}/build"
|
||||
export CROSS_COMPILE="/opt/${1}/bin/x86_64-pc-linux-gnu-"
|
||||
export CFLAGS="-I/opt/${1}/include"
|
||||
export LDFLAGS="-I/opt/${1}/lib"
|
||||
export LD_LIBRARY_PATH="/opt/${1}/lib"
|
||||
export ARCH=x86_64
|
||||
export PATH="/opt/${1}/bin:${PATH}"
|
||||
export CC="x86_64-pc-linux-gnu-gcc"
|
||||
export LD="x86_64-pc-linux-gnu-ld"
|
||||
echo "export PATH=\"/opt/${1}/bin:${PATH}\"" | \
|
||||
sudo tee /etc/profile.d/path.sh >/dev/null
|
||||
sudo chmod +x /etc/profile.d/path.sh
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
function shell() {
|
||||
cp /opt/${2}/build/System.map /input
|
||||
cp -fv /opt/${2}/build/.config /opt/${2}/source/
|
||||
cp -fv /opt/${2}/build/System.map /opt/${2}/source/
|
||||
cp -fv /opt/${2}/build/Module.symvers /opt/${2}/source/
|
||||
export-vars $2
|
||||
shift 2
|
||||
bash -l $@
|
||||
@@ -46,11 +51,15 @@ function compile-module {
|
||||
echo "Platform ${1} not found."
|
||||
exit 1
|
||||
fi
|
||||
unset VALID
|
||||
echo -e "Compiling module for \033[7m${PLATFORM}-${KVER}\033[0m..."
|
||||
cp -R /input /tmp
|
||||
export-vars ${PLATFORM}
|
||||
make -C "/opt/${PLATFORM}/build" M="/tmp/input" \
|
||||
${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules
|
||||
PARMS="${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m"
|
||||
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
|
||||
strip -g "${F}"
|
||||
echo "Copying `basename ${F}`"
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
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"]
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/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
|
||||
@@ -1,10 +0,0 @@
|
||||
[[ "$-" != *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'
|
||||
export PATH="/opt/${PLATFORM}/bin:${PATH}"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/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
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# function compile-drivers {
|
||||
# while read platform kver; do
|
||||
# SRC_PATH="/opt/${platform}"
|
||||
# echo "Compiling for ${platform}-${kver}"
|
||||
# cd /opt/linux-${kver}/drivers
|
||||
# while read dir; do
|
||||
# if [ -f "${dir}/Makefile" ]; then
|
||||
# echo "Driver `basename ${dir}`"
|
||||
# grep "CONFIG_.*/.*" "${dir}/Makefile" | sed 's/.*\(CONFIG_[^)]*\).*/\1=n/g' > /tmp/env
|
||||
# grep "CONFIG_.*\.o.*" "${dir}/Makefile" | sed 's/.*\(CONFIG_[^)]*\).*/\1=m/g' >> /tmp/env
|
||||
# make -C "${SRC_PATH}" M=$(readlink -f "${dir}") clean
|
||||
# cat /tmp/env | xargs -d '\n' make -C "${SRC_PATH}" M=$(readlink -f "${dir}") modules $@
|
||||
# fi
|
||||
# done < <(find -type d)
|
||||
# DST_PATH="/output/compiled-mods/${platform}-${kver}"
|
||||
# mkdir -p "${DST_PATH}"
|
||||
# while read f; do
|
||||
# strip -g "${f}"
|
||||
# mv "${f}" "${DST_PATH}"
|
||||
# done < <(find -name \*.ko)
|
||||
# done </opt/platforms
|
||||
# }
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
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"
|
||||
case $1 in
|
||||
shell) shift && bash -l $@ ;;
|
||||
compile-module) compile-module ;;
|
||||
compile-lkm) compile-lkm ;;
|
||||
# compile-drivers) compile-drivers ;;
|
||||
*) echo "Command not recognized: $1" ;;
|
||||
esac
|
||||
Binary file not shown.
@@ -17,8 +17,18 @@ CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
# CONFIG_RD_GZIP is not set
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
# CONFIG_RD_ZSTD is not set
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_KCMP=y
|
||||
CONFIG_EMBEDDED=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_SMP=y
|
||||
@@ -31,8 +41,6 @@ CONFIG_NUMA=y
|
||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
||||
# CONFIG_MTRR_SANITIZER is not set
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_STUB=y
|
||||
CONFIG_EFI_MIXED=y
|
||||
CONFIG_HZ_1000=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_CRASH_DUMP=y
|
||||
@@ -42,17 +50,19 @@ CONFIG_PM_TRACE_RTC=y
|
||||
CONFIG_ACPI_VIDEO=y
|
||||
CONFIG_ACPI_DOCK=y
|
||||
CONFIG_ACPI_BGRT=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_X86_ACPI_CPUFREQ=y
|
||||
CONFIG_X86_POWERNOW_K8=y
|
||||
CONFIG_INTEL_IDLE=y
|
||||
CONFIG_IA32_EMULATION=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
CONFIG_KPROBES=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
# CONFIG_GCC_PLUGINS is not set
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
# CONFIG_BLK_DEBUG_FS is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_NET=y
|
||||
@@ -79,7 +89,8 @@ CONFIG_TCP_CONG_ADVANCED=y
|
||||
# CONFIG_TCP_CONG_WESTWOOD is not set
|
||||
# CONFIG_TCP_CONG_HTCP is not set
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_IPV6=m
|
||||
# CONFIG_IPV6_SIT is not set
|
||||
CONFIG_NETLABEL=y
|
||||
CONFIG_NETFILTER=y
|
||||
# CONFIG_NETFILTER_ADVANCED is not set
|
||||
@@ -92,7 +103,6 @@ CONFIG_NF_NAT=y
|
||||
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
|
||||
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
|
||||
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
|
||||
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
|
||||
CONFIG_NETFILTER_XT_MATCH_POLICY=y
|
||||
CONFIG_NETFILTER_XT_MATCH_STATE=y
|
||||
@@ -101,6 +111,8 @@ CONFIG_IP_NF_FILTER=y
|
||||
CONFIG_IP_NF_TARGET_REJECT=y
|
||||
CONFIG_IP_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP_NF_MANGLE=y
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_EMATCH=y
|
||||
CONFIG_NET_CLS_ACT=y
|
||||
@@ -115,6 +127,7 @@ CONFIG_FW_LOADER_COMPRESS=y
|
||||
CONFIG_DEBUG_DEVRES=y
|
||||
CONFIG_CONNECTOR=y
|
||||
CONFIG_EFI_VARS=y
|
||||
# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_VIRTIO_BLK=m
|
||||
CONFIG_BLK_DEV_NVME=y
|
||||
@@ -179,24 +192,9 @@ CONFIG_SCSI_PM8001=m
|
||||
CONFIG_SCSI_VIRTIO=m
|
||||
CONFIG_SCSI_DH=y
|
||||
CONFIG_ATA=y
|
||||
# CONFIG_ATA_FORCE is not set
|
||||
CONFIG_SATA_AHCI=y
|
||||
CONFIG_SATA_AHCI_PLATFORM=m
|
||||
CONFIG_SATA_ACARD_AHCI=m
|
||||
CONFIG_SATA_SIL24=m
|
||||
CONFIG_PDC_ADMA=m
|
||||
CONFIG_SATA_QSTOR=m
|
||||
CONFIG_ATA_PIIX=y
|
||||
CONFIG_SATA_DWC=m
|
||||
CONFIG_SATA_MV=m
|
||||
CONFIG_SATA_NV=m
|
||||
CONFIG_SATA_PROMISE=m
|
||||
CONFIG_SATA_SIL=m
|
||||
CONFIG_SATA_SIS=m
|
||||
CONFIG_SATA_SVW=m
|
||||
CONFIG_SATA_ULI=m
|
||||
CONFIG_SATA_VIA=m
|
||||
CONFIG_SATA_VITESSE=m
|
||||
CONFIG_ATA_GENERIC=y
|
||||
CONFIG_SATA_MV=y
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=y
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
@@ -218,8 +216,6 @@ CONFIG_ET131X=m
|
||||
CONFIG_SLICOSS=m
|
||||
CONFIG_ACENIC=m
|
||||
CONFIG_ENA_ETHERNET=m
|
||||
CONFIG_AMD8111_ETH=m
|
||||
CONFIG_PCNET32=m
|
||||
CONFIG_AMD_XGBE=m
|
||||
CONFIG_AQTION=m
|
||||
CONFIG_ATL1=m
|
||||
@@ -229,7 +225,7 @@ CONFIG_ALX=m
|
||||
CONFIG_B44=m
|
||||
CONFIG_BCMGENET=m
|
||||
CONFIG_CNIC=m
|
||||
CONFIG_TIGON3=y
|
||||
CONFIG_TIGON3=m
|
||||
CONFIG_BNX2X=m
|
||||
CONFIG_SYSTEMPORT=m
|
||||
CONFIG_BNXT=m
|
||||
@@ -250,9 +246,7 @@ CONFIG_DNET=m
|
||||
CONFIG_DL2K=m
|
||||
CONFIG_SUNDANCE=m
|
||||
CONFIG_BE2NET=m
|
||||
# CONFIG_NET_VENDOR_GOOGLE is not set
|
||||
CONFIG_HINIC=m
|
||||
CONFIG_E100=y
|
||||
CONFIG_E1000=m
|
||||
CONFIG_E1000E=m
|
||||
CONFIG_IGB=m
|
||||
@@ -261,14 +255,18 @@ CONFIG_IXGB=m
|
||||
CONFIG_IXGBE=m
|
||||
CONFIG_IXGBEVF=m
|
||||
CONFIG_I40E=m
|
||||
CONFIG_I40EVF=m
|
||||
CONFIG_ICE=m
|
||||
CONFIG_FM10K=m
|
||||
CONFIG_IGC=m
|
||||
CONFIG_JME=m
|
||||
CONFIG_MVMDIO=m
|
||||
CONFIG_SKGE=m
|
||||
CONFIG_SKY2=y
|
||||
CONFIG_SKY2=m
|
||||
CONFIG_MLX4_EN=m
|
||||
CONFIG_MLX5_CORE=m
|
||||
CONFIG_MLX5_CORE_EN=y
|
||||
CONFIG_MLXSW_CORE=m
|
||||
CONFIG_MYRI10GE=m
|
||||
CONFIG_NATSEMI=m
|
||||
CONFIG_NS83820=m
|
||||
@@ -276,7 +274,6 @@ CONFIG_S2IO=m
|
||||
CONFIG_VXGE=m
|
||||
CONFIG_NFP=m
|
||||
CONFIG_NI_XGE_MANAGEMENT_ENET=m
|
||||
CONFIG_FORCEDETH=m
|
||||
CONFIG_HAMACHI=m
|
||||
CONFIG_YELLOWFIN=m
|
||||
CONFIG_QLA3XXX=m
|
||||
@@ -286,23 +283,22 @@ CONFIG_QED=m
|
||||
CONFIG_QEDE=m
|
||||
CONFIG_QCOM_EMAC=m
|
||||
CONFIG_RMNET=m
|
||||
CONFIG_8139CP=m
|
||||
CONFIG_8139TOO=m
|
||||
# CONFIG_8139TOO_PIO is not set
|
||||
CONFIG_8139TOO_TUNE_TWISTER=y
|
||||
CONFIG_R8169=m
|
||||
CONFIG_SXGBE_ETH=m
|
||||
CONFIG_SFC=m
|
||||
# CONFIG_SFC_MCDI_MON is not set
|
||||
# CONFIG_SFC_MCDI_LOGGING is not set
|
||||
CONFIG_SFC_FALCON=m
|
||||
CONFIG_SIS190=m
|
||||
CONFIG_STMMAC_ETH=m
|
||||
CONFIG_SUNGEM=m
|
||||
CONFIG_CASSINI=m
|
||||
CONFIG_NIU=m
|
||||
CONFIG_DWC_XLGMAC=m
|
||||
CONFIG_TEHUTI=m
|
||||
CONFIG_VIA_VELOCITY=m
|
||||
CONFIG_XILINX_AXI_EMAC=m
|
||||
CONFIG_XILINX_LL_TEMAC=m
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_REALTEK_PHY=y
|
||||
CONFIG_PCS_XPCS=m
|
||||
CONFIG_USB_NET_DRIVERS=m
|
||||
CONFIG_USB_CATC=m
|
||||
CONFIG_USB_KAWETH=m
|
||||
@@ -353,24 +349,36 @@ CONFIG_HW_RANDOM=y
|
||||
CONFIG_NVRAM=y
|
||||
CONFIG_HPET=y
|
||||
# CONFIG_HPET_MMAP is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_I801=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_AGP=y
|
||||
CONFIG_AGP_AMD64=y
|
||||
CONFIG_AGP_INTEL=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FIRMWARE_EDID=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FB_VGA16=m
|
||||
CONFIG_FB_UVESA=m
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_VESA=y
|
||||
CONFIG_FB_EFI=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_HIDRAW=y
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_ITE=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_LOGITECH_FF=y
|
||||
CONFIG_HID_REDRAGON=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
CONFIG_PANTHERLORD_FF=y
|
||||
@@ -406,10 +414,17 @@ CONFIG_USB_UAS=y
|
||||
CONFIG_USB_SERIAL=m
|
||||
CONFIG_USB_ROLE_SWITCH=y
|
||||
CONFIG_USB_ROLES_INTEL_XHCI=m
|
||||
CONFIG_MMC=m
|
||||
CONFIG_MMC_SDHCI=m
|
||||
CONFIG_MMC_VIA_SDMMC=m
|
||||
CONFIG_MMC_VUB300=m
|
||||
CONFIG_MMC_USHC=m
|
||||
CONFIG_MMC_MTK=m
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
# CONFIG_RTC_HCTOSYS is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_SYNC_FILE=y
|
||||
CONFIG_VIRT_DRIVERS=y
|
||||
CONFIG_VBOXGUEST=m
|
||||
CONFIG_VIRTIO_PCI=m
|
||||
@@ -427,6 +442,7 @@ CONFIG_INTEL_IOMMU=y
|
||||
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
||||
CONFIG_VIRTIO_IOMMU=m
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_VALIDATE_FS_PARSER=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
@@ -440,7 +456,9 @@ CONFIG_AUTOFS4_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
@@ -473,7 +491,6 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_STACK_USAGE=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_SCHEDSTATS=y
|
||||
|
||||
@@ -15,7 +15,7 @@ BOARD_PATH="${CONFIG_DIR}/board/arpl"
|
||||
|
||||
echo "Creating image file"
|
||||
# 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
|
||||
dd if="${BOARD_PATH}/grub.bin" of="${IMAGE_FILE}" conv=notrunc,sync 2>/dev/null
|
||||
# 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/2 /dev/stderr
|
||||
::sysinit:/bin/hostname -F /etc/hostname
|
||||
# Reduce kernel logs
|
||||
::sysinit:/usr/bin/dmesg -n 1
|
||||
# now run any rc scripts
|
||||
::sysinit:/etc/init.d/rcS
|
||||
|
||||
# Login in terminals
|
||||
::respawn:/sbin/agetty -a root --noclear tty1
|
||||
tty1::respawn:/sbin/agetty -a root --noclear tty1
|
||||
tty2::askfirst:/sbin/agetty --noclear tty2
|
||||
ttyS0::askfirst:/sbin/agetty -a root ttyS0 115200 linux
|
||||
::respawn:/usr/bin/ttyd login -f root
|
||||
|
||||
@@ -40,3 +43,4 @@ ttyS0::askfirst:/sbin/agetty -a root ttyS0 115200 linux
|
||||
::shutdown:/etc/init.d/rcK
|
||||
::shutdown:/sbin/swapoff -a
|
||||
::shutdown:/bin/umount -a -r
|
||||
::shutdown:/usr/sbin/kexec -e -a
|
||||
|
||||
@@ -18,9 +18,6 @@ printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
|
||||
TITLE="BOOTING..."
|
||||
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
|
||||
|
||||
history -w
|
||||
sync
|
||||
|
||||
# Check if DSM zImage changed, patch it if necessary
|
||||
ZIMAGE_HASH="`readConfigKey "zimage-hash" "${USER_CONFIG_FILE}"`"
|
||||
if [ "`sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}'`" != "${ZIMAGE_HASH}" ]; then
|
||||
@@ -29,7 +26,7 @@ if [ "`sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}'`" != "${ZIMAGE_HASH}" ];
|
||||
if [ $? -ne 0 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" \
|
||||
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 12 70
|
||||
return 1
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -41,7 +38,7 @@ if [ "`sha256sum "${ORI_RDGZ_FILE}" | awk '{print$1}'`" != "${RAMDISK_HASH}" ];
|
||||
if [ $? -ne 0 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" \
|
||||
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 12 70
|
||||
return 1
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -68,17 +65,17 @@ CMDLINE['pid']="${PID}"
|
||||
CMDLINE['sn']="${SN}"
|
||||
|
||||
# Read cmdline
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
||||
|
||||
# Check if machine has EFI
|
||||
[ -d /sys/firmware/efi ] && EFI=1 || EFI=0
|
||||
# Read EFI bug value
|
||||
EFI_BUG="`readModelKey "${MODEL}" "builds.${BUILD}.efi-bug"`"
|
||||
[ "${MODEL}" = "DS3615" ] && EFI_BUG=1 || EFI_BUG=0
|
||||
|
||||
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
|
||||
BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2`
|
||||
@@ -103,10 +100,10 @@ fi
|
||||
# Prepare command line
|
||||
CMDLINE_LINE=""
|
||||
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
|
||||
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
|
||||
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " || CMDLINE_LINE+="noefi "
|
||||
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
|
||||
CMDLINE_DIRECT="${CMDLINE_LINE}"
|
||||
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15"
|
||||
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
|
||||
for KEY in ${!CMDLINE[@]}; do
|
||||
VALUE="${CMDLINE[${KEY}]}"
|
||||
CMDLINE_LINE+=" ${KEY}"
|
||||
@@ -115,7 +112,7 @@ for KEY in ${!CMDLINE[@]}; do
|
||||
[ -n "${VALUE}" ] && CMDLINE_DIRECT+="=${VALUE}"
|
||||
done
|
||||
# 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'`
|
||||
echo -e "Cmdline:\n\033[1;36m${CMDLINE_LINE}\033[0m"
|
||||
|
||||
@@ -142,8 +139,7 @@ if [ "${DIRECT}" = "true" ]; then
|
||||
echo -e "\033[1;33mReboot to boot directly in DSM\033[0m"
|
||||
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
|
||||
reboot
|
||||
sleep 100
|
||||
exit
|
||||
exit 0
|
||||
fi
|
||||
echo -e "\033[1;37mLoading DSM kernel...\033[0m"
|
||||
|
||||
@@ -154,7 +150,6 @@ if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
|
||||
else
|
||||
kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
fi
|
||||
/sbin/swapoff -a >/dev/null 2>&1 || true
|
||||
/bin/umount -a -r >/dev/null 2>&1 || true
|
||||
echo -e "\033[1;37mBooting...\033[0m"
|
||||
kexec -e -a >"${LOG_FILE}" 2>&1 || dieLog
|
||||
poweroff
|
||||
exit 0
|
||||
|
||||
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.
@@ -33,7 +33,7 @@ function readConfigKey() {
|
||||
# 2 - Path of yaml config file
|
||||
# Returns map of values
|
||||
function readConfigMap() {
|
||||
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join("=")) | .[]' "${2}"
|
||||
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join(": ")) | .[]' "${2}"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
ARPL_VERSION="1.0-beta4"
|
||||
ARPL_VERSION="1.1-beta2"
|
||||
|
||||
# Define paths
|
||||
TMP_PATH="/tmp"
|
||||
|
||||
@@ -147,6 +147,14 @@ function arrayExistItem() {
|
||||
return ${EXISTS}
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Get values in .conf K=V file
|
||||
# 1 - key
|
||||
# 2 - file
|
||||
function _get_conf_kv() {
|
||||
grep "${1}" "${2}" | sed "s|^${1}=\"\(.*\)\"$|\1|g"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Replace/remove/add values in .conf K=V file
|
||||
# 1 - name
|
||||
@@ -168,3 +176,18 @@ function _set_conf_kv() {
|
||||
# Add if doesn't exist
|
||||
echo "$1=\"$2\"" >> $3
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Find and mount the DSM root filesystem
|
||||
# (based on pocopico's TCRP code)
|
||||
function findAndMountDSMRoot() {
|
||||
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -gt 0 ] && return 0
|
||||
dsmrootdisk="$(blkid /dev/sd* | grep -i raid | awk '{print $1 " " $4}' | grep UUID | grep sd[a-z]1 | head -1 | awk -F ":" '{print $1}')"
|
||||
[ -z "${dsmrootdisk}" ] && return -1
|
||||
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ] && mount -t ext4 $dsmrootdisk "${DSMROOT_PATH}"
|
||||
if [ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ]; then
|
||||
echo "Failed to mount"
|
||||
return -1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ function getAllModules() {
|
||||
for F in `ls ${TMP_PATH}/modules/*.ko`; do
|
||||
X=`basename ${F}`
|
||||
M=${X:0:-3}
|
||||
DESC=`modinfo ${F} | awk -F':' '/description/{ print $2}' | awk '{sub(/^[ ]+/,""); print}'`
|
||||
DESC=`modinfo ${F} | awk -F':' '/description:/{ print $2}' | awk '{sub(/^[ ]+/,""); print}'`
|
||||
[ -z "${DESC}" ] && DESC="${X}"
|
||||
echo "${M} \"${DESC}\""
|
||||
done
|
||||
|
||||
@@ -37,6 +37,7 @@ fsck.ext2 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
|
||||
mkdir -p ${BOOTLOADER_PATH}
|
||||
mkdir -p ${SLPART_PATH}
|
||||
mkdir -p ${CACHE_PATH}
|
||||
mkdir -p ${DSMROOT_PATH}
|
||||
# Mount the partitions
|
||||
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
|
||||
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"
|
||||
@@ -49,7 +50,10 @@ ln -s "${CACHE_PATH}/ssh" "/etc/ssh"
|
||||
# Link bash history to cache volume
|
||||
rm -rf ~/.bash_history
|
||||
ln -s ${CACHE_PATH}/.bash_history ~/.bash_history
|
||||
|
||||
touch ~/.bash_history
|
||||
if ! grep -q "menu.sh" ~/.bash_history; then
|
||||
echo "menu.sh " >> ~/.bash_history
|
||||
fi
|
||||
# Check if exists directories into P3 partition, if yes remove and link it
|
||||
if [ -d "${CACHE_PATH}/model-configs" ]; then
|
||||
rm -rf "${MODEL_CONFIG_PATH}"
|
||||
@@ -68,12 +72,12 @@ MACF=`echo ${MAC} | sed 's/://g'`
|
||||
# If user config file not exists, initialize it
|
||||
if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
||||
touch "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "lkm" "dev" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "lkm" "prod" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "directboot" "false" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "model" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "build" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "sn" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "maxdisks" "" "${USER_CONFIG_FILE}"
|
||||
# writeConfigKey "maxdisks" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "layout" "qwerty" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "keymap" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "zimage-hash" "" "${USER_CONFIG_FILE}"
|
||||
@@ -143,6 +147,9 @@ if [ -f /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz ]; then
|
||||
zcat /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz | loadkeys
|
||||
fi
|
||||
|
||||
# Enable Wake on Lan, ignore errors
|
||||
ethtool -s eth0 wol g 2>/dev/null
|
||||
|
||||
# Decide if boot automatically
|
||||
BOOT=1
|
||||
if ! loaderIsConfigured; then
|
||||
@@ -154,7 +161,9 @@ elif grep -q "IWANTTOCHANGETHECONFIG" /proc/cmdline; then
|
||||
fi
|
||||
|
||||
# If is to boot automatically, do it
|
||||
[ ${BOOT} -eq 1 ] && boot.sh
|
||||
if [ ${BOOT} -eq 1 ]; then
|
||||
boot.sh && exit 0
|
||||
fi
|
||||
|
||||
# Wait for an IP
|
||||
COUNT=0
|
||||
|
||||
Binary file not shown.
@@ -4,12 +4,12 @@
|
||||
. /opt/arpl/include/addons.sh
|
||||
. /opt/arpl/include/modules.sh
|
||||
|
||||
# Check partition 3 space, if < 2GiB uses ramdisk
|
||||
RAMCACHE=0
|
||||
# Check partition 3 space, if < 2GiB is necessary clean cache folder
|
||||
CLEARCACHE=0
|
||||
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
|
||||
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
|
||||
if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194304 ]; then
|
||||
RAMCACHE=1
|
||||
CLEARCACHE=1
|
||||
fi
|
||||
|
||||
# Get actual IP
|
||||
@@ -61,74 +61,83 @@ function backtitle() {
|
||||
###############################################################################
|
||||
# Shows available models to user choose one
|
||||
function modelMenu() {
|
||||
RESTRICT=1
|
||||
FLGBETA=0
|
||||
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
|
||||
--infobox "Reading models" 0 0
|
||||
while true; do
|
||||
echo "" > "${TMP_PATH}/menu"
|
||||
FLGNEX=0
|
||||
while read M; do
|
||||
M="`basename ${M}`"
|
||||
M="${M::-4}"
|
||||
PLATFORM=`readModelKey "${M}" "platform"`
|
||||
DT="`readModelKey "${M}" "dt"`"
|
||||
BETA="`readModelKey "${M}" "beta"`"
|
||||
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
|
||||
# Check id model is compatible with CPU
|
||||
COMPATIBLE=1
|
||||
if [ ${RESTRICT} -eq 1 ]; then
|
||||
for F in `readModelArray "${M}" "flags"`; do
|
||||
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
|
||||
COMPATIBLE=0
|
||||
FLGNEX=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "${1}" ]; then
|
||||
RESTRICT=1
|
||||
FLGBETA=0
|
||||
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
|
||||
--infobox "Reading models" 0 0
|
||||
while true; do
|
||||
echo "" > "${TMP_PATH}/menu"
|
||||
FLGNEX=0
|
||||
while read M; do
|
||||
M="`basename ${M}`"
|
||||
M="${M::-4}"
|
||||
PLATFORM=`readModelKey "${M}" "platform"`
|
||||
DT="`readModelKey "${M}" "dt"`"
|
||||
BETA="`readModelKey "${M}" "beta"`"
|
||||
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
|
||||
# Check id model is compatible with CPU
|
||||
COMPATIBLE=1
|
||||
if [ ${RESTRICT} -eq 1 ]; then
|
||||
for F in `readModelArray "${M}" "flags"`; do
|
||||
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
|
||||
COMPATIBLE=0
|
||||
FLGNEX=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
[ "${DT}" = "true" ] && DT="-DT" || DT=""
|
||||
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
|
||||
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
|
||||
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
|
||||
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
|
||||
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
|
||||
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && return
|
||||
resp=$(<${TMP_PATH}/resp)
|
||||
[ -z "${resp}" ] && return
|
||||
if [ "${resp}" = "f" ]; then
|
||||
RESTRICT=0
|
||||
continue
|
||||
fi
|
||||
[ "${DT}" = "true" ] && DT="-DT" || DT=""
|
||||
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
|
||||
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
|
||||
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
|
||||
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
|
||||
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
|
||||
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && return
|
||||
resp=$(<${TMP_PATH}/resp)
|
||||
[ -z "${resp}" ] && return
|
||||
if [ "${resp}" = "f" ]; then
|
||||
RESTRICT=0
|
||||
continue
|
||||
fi
|
||||
if [ "${resp}" = "b" ]; then
|
||||
FLGBETA=1
|
||||
continue
|
||||
fi
|
||||
# If user change model, clean buildnumber and S/N
|
||||
if [ "${MODEL}" != "${resp}" ]; then
|
||||
MODEL=${resp}
|
||||
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
|
||||
BUILD=""
|
||||
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
||||
SN=""
|
||||
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
||||
# Delete old files
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
||||
DIRTY=1
|
||||
fi
|
||||
break
|
||||
done
|
||||
if [ "${resp}" = "b" ]; then
|
||||
FLGBETA=1
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
else
|
||||
resp="${1}"
|
||||
fi
|
||||
# If user change model, clean buildnumber and S/N
|
||||
if [ "${MODEL}" != "${resp}" ]; then
|
||||
MODEL=${resp}
|
||||
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
|
||||
BUILD=""
|
||||
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
||||
SN=""
|
||||
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
||||
# Delete old files
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
||||
DIRTY=1
|
||||
fi
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Shows available buildnumbers from a model to user choose one
|
||||
function buildMenu() {
|
||||
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
|
||||
dialog --clear --no-items --backtitle "`backtitle`" \
|
||||
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && return
|
||||
resp=$(<${TMP_PATH}/resp)
|
||||
[ -z "${resp}" ] && return
|
||||
if [ -z "${1}" ]; then
|
||||
dialog --clear --no-items --backtitle "`backtitle`" \
|
||||
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && return
|
||||
resp=$(<${TMP_PATH}/resp)
|
||||
[ -z "${resp}" ] && return
|
||||
else
|
||||
if ! arrayExistItem "${1}" ${ITEMS}; then return; fi
|
||||
resp="${1}"
|
||||
fi
|
||||
if [ "${BUILD}" != "${resp}" ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Build Number" \
|
||||
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
|
||||
@@ -136,13 +145,13 @@ function buildMenu() {
|
||||
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
||||
# Delete synoinfo and reload model/build synoinfo
|
||||
writeConfigKey "synoinfo" "{}" "${USER_CONFIG_FILE}"
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
writeConfigKey "synoinfo.${KEY}" "${VALUE}" "${USER_CONFIG_FILE}"
|
||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.synoinfo")
|
||||
# Check addons
|
||||
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||
while IFS="=" read ADDON PARAM; do
|
||||
while IFS=': ' read ADDON PARAM; do
|
||||
[ -z "${ADDON}" ] && continue
|
||||
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
||||
deleteConfigKey "addons.${ADDON}" "${USER_CONFIG_FILE}"
|
||||
@@ -206,7 +215,7 @@ function addonMenu() {
|
||||
# Read addons from user config
|
||||
unset ADDONS
|
||||
declare -A ADDONS
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
||||
NEXT="a"
|
||||
@@ -322,15 +331,14 @@ function addonMenu() {
|
||||
function cmdlineMenu() {
|
||||
unset CMDLINE
|
||||
declare -A CMDLINE
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
||||
echo "a \"Add/edit a cmdline item\"" > "${TMP_PATH}/menu"
|
||||
echo "a \"Add/edit a cmdline item\"" > "${TMP_PATH}/menu"
|
||||
echo "d \"Delete cmdline item(s)\"" >> "${TMP_PATH}/menu"
|
||||
echo "c \"Define a custom MAC\"" >> "${TMP_PATH}/menu"
|
||||
echo "s \"Show user cmdline\"" >> "${TMP_PATH}/menu"
|
||||
echo "m \"Show model/build cmdline\"" >> "${TMP_PATH}/menu"
|
||||
echo "u \"Show SATA(s) # ports and drives\"" >> "${TMP_PATH}/menu"
|
||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||
# Loop menu
|
||||
while true; do
|
||||
@@ -406,40 +414,12 @@ function cmdlineMenu() {
|
||||
;;
|
||||
m)
|
||||
ITEMS=""
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
ITEMS+="${KEY}: ${VALUE}\n"
|
||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
|
||||
dialog --backtitle "`backtitle`" --title "Model/build cmdline" \
|
||||
--aspect 18 --msgbox "${ITEMS}" 0 0
|
||||
;;
|
||||
u) TEXT=""
|
||||
NUMPORTS=0
|
||||
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
|
||||
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
|
||||
TEXT+="\Zb${NAME}\Zn\nPorts: "
|
||||
unset HOSTPORTS
|
||||
declare -A HOSTPORTS
|
||||
while read LINE; do
|
||||
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
|
||||
PORT=`echo ${ATAPORT} | sed 's/ata//'`
|
||||
HOSTPORTS[${PORT}]=`echo ${LINE} | grep -o 'host[0-9]*$'`
|
||||
done < <(ls -l /sys/class/scsi_host | fgrep "${PCI}")
|
||||
while read PORT; do
|
||||
ls -l /sys/block | fgrep -q "${PCI}/ata${PORT}" && ATTACH=1 || ATTACH=0
|
||||
PCMD=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
|
||||
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
|
||||
[ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb"
|
||||
[ ${DUMMY} -eq 1 ] && TEXT+="\Z1"
|
||||
TEXT+="${PORT}\Zn "
|
||||
NUMPORTS=$((${NUMPORTS}+1))
|
||||
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
|
||||
TEXT+="\n"
|
||||
done
|
||||
TEXT+="\nTotal of ports: ${NUMPORTS}\n"
|
||||
TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected."
|
||||
dialog --backtitle "`backtitle`" --colors --aspect 18 \
|
||||
--msgbox "${TEXT}" 0 0
|
||||
;;
|
||||
e) return ;;
|
||||
esac
|
||||
done
|
||||
@@ -447,20 +427,15 @@ function cmdlineMenu() {
|
||||
|
||||
###############################################################################
|
||||
function synoinfoMenu() {
|
||||
# Get dt flag from model
|
||||
DT="`readModelKey "${MODEL}" "dt"`"
|
||||
# Read synoinfo from user config
|
||||
unset SYNOINFO
|
||||
declare -A SYNOINFO
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
|
||||
|
||||
echo "a \"Add/edit a synoinfo item\"" > "${TMP_PATH}/menu"
|
||||
echo "d \"Delete synoinfo item(s)\"" >> "${TMP_PATH}/menu"
|
||||
if [ "${DT}" != "true" ]; then
|
||||
echo "x \"Set maxdisks manually\"" >> "${TMP_PATH}/menu"
|
||||
fi
|
||||
echo "s \"Show synoinfo entries\"" >> "${TMP_PATH}/menu"
|
||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||
|
||||
@@ -507,15 +482,6 @@ function synoinfoMenu() {
|
||||
done
|
||||
DIRTY=1
|
||||
;;
|
||||
x)
|
||||
MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
||||
dialog --backtitle "`backtitle`" --title "Maxdisks" \
|
||||
--inputbox "Type a value for maxdisks" 0 0 "${MAXDISKS}" \
|
||||
2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && continue
|
||||
VALUE="`<"${TMP_PATH}/resp"`"
|
||||
[ "${VALUE}" != "${MAXDISKS}" ] && writeConfigKey "maxdisks" "${VALUE}" "${USER_CONFIG_FILE}"
|
||||
;;
|
||||
s)
|
||||
ITEMS=""
|
||||
for KEY in ${!SYNOINFO[@]}; do
|
||||
@@ -529,6 +495,327 @@ function synoinfoMenu() {
|
||||
done
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Extract linux and ramdisk files from the DSM .pat
|
||||
function extractDsmFiles() {
|
||||
PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`"
|
||||
PAT_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.hash"`"
|
||||
RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`"
|
||||
ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`"
|
||||
|
||||
# If we have little disk space, clean cache folder
|
||||
if [ ${CLEARCACHE} -eq 1 ]; then
|
||||
echo "Cleaning cache"
|
||||
rm -rf "${CACHE_PATH}/dl"
|
||||
fi
|
||||
mkdir -p "${CACHE_PATH}/dl"
|
||||
|
||||
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` # Check disk space left
|
||||
|
||||
PAT_FILE="${MODEL}-${BUILD}.pat"
|
||||
PAT_PATH="${CACHE_PATH}/dl/${PAT_FILE}"
|
||||
EXTRACTOR_PATH="${CACHE_PATH}/extractor"
|
||||
EXTRACTOR_BIN="syno_extract_system_patch"
|
||||
OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
|
||||
|
||||
if [ -f "${PAT_PATH}" ]; then
|
||||
echo "${PAT_FILE} cached."
|
||||
else
|
||||
echo "Downloading ${PAT_FILE}"
|
||||
# Discover remote file size
|
||||
FILESIZE=`curl --insecure -sLI "${PAT_URL}" | grep -i Content-Length | awk '{print$2}'`
|
||||
if [ 0${FILESIZE} -ge ${SPACELEFT} ]; then
|
||||
# No disk space to download, change it to RAMDISK
|
||||
PAT_PATH="${TMP_PATH}/${PAT_FILE}"
|
||||
fi
|
||||
STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar`
|
||||
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
|
||||
rm "${PAT_PATH}"
|
||||
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
|
||||
--msgbox "Check internet or cache disk space" 0 0
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "Checking hash of ${PAT_FILE}: "
|
||||
if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Hash of pat not match, try again!" 0 0
|
||||
rm -f ${PAT_PATH}
|
||||
return 1
|
||||
fi
|
||||
echo "OK"
|
||||
|
||||
rm -rf "${UNTAR_PAT_PATH}"
|
||||
mkdir "${UNTAR_PAT_PATH}"
|
||||
echo -n "Disassembling ${PAT_FILE}: "
|
||||
|
||||
header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')"
|
||||
case ${header} in
|
||||
105)
|
||||
echo "Uncompressed tar"
|
||||
isencrypted="no"
|
||||
;;
|
||||
213)
|
||||
echo "Compressed tar"
|
||||
isencrypted="no"
|
||||
;;
|
||||
255)
|
||||
echo "Encrypted"
|
||||
isencrypted="yes"
|
||||
;;
|
||||
*)
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \
|
||||
0 0
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` # Check disk space left
|
||||
|
||||
if [ "${isencrypted}" = "yes" ]; then
|
||||
# Check existance of extractor
|
||||
if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then
|
||||
echo "Extractor cached."
|
||||
else
|
||||
# Extractor not exists, get it.
|
||||
mkdir -p "${EXTRACTOR_PATH}"
|
||||
# Check if old pat already downloaded
|
||||
OLDPAT_PATH="${CACHE_PATH}/dl/DS3622xs+-42218.pat"
|
||||
if [ ! -f "${OLDPAT_PATH}" ]; then
|
||||
echo "Downloading old pat to extract synology .pat extractor..."
|
||||
# Discover remote file size
|
||||
FILESIZE=`curl --insecure -sLI "${OLDPAT_URL}" | grep -i Content-Length | awk '{print$2}'`
|
||||
if [ 0${FILESIZE} -ge ${SPACELEFT} ]; then
|
||||
# No disk space to download, change it to RAMDISK
|
||||
OLDPAT_PATH="${TMP_PATH}/DS3622xs+-42218.pat"
|
||||
fi
|
||||
STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar`
|
||||
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
|
||||
rm "${OLDPAT_PATH}"
|
||||
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
|
||||
--msgbox "Check internet or cache disk space" 0 0
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# Extract DSM ramdisk file from PAT
|
||||
rm -rf "${RAMDISK_PATH}"
|
||||
mkdir -p "${RAMDISK_PATH}"
|
||||
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
rm -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 "s \"Show SATA(s) # ports and drives\"" >> "${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 ;;
|
||||
s) TEXT=""
|
||||
NUMPORTS=0
|
||||
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
|
||||
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
|
||||
TEXT+="\Zb${NAME}\Zn\nPorts: "
|
||||
unset HOSTPORTS
|
||||
declare -A HOSTPORTS
|
||||
while read LINE; do
|
||||
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
|
||||
PORT=`echo ${ATAPORT} | sed 's/ata//'`
|
||||
HOSTPORTS[${PORT}]=`echo ${LINE} | grep -o 'host[0-9]*$'`
|
||||
done < <(ls -l /sys/class/scsi_host | fgrep "${PCI}")
|
||||
while read PORT; do
|
||||
ls -l /sys/block | fgrep -q "${PCI}/ata${PORT}" && ATTACH=1 || ATTACH=0
|
||||
PCMD=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
|
||||
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
|
||||
[ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb"
|
||||
[ ${DUMMY} -eq 1 ] && TEXT+="\Z1"
|
||||
TEXT+="${PORT}\Zn "
|
||||
NUMPORTS=$((${NUMPORTS}+1))
|
||||
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
|
||||
TEXT+="\n"
|
||||
done
|
||||
TEXT+="\nTotal of ports: ${NUMPORTS}\n"
|
||||
TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected."
|
||||
dialog --backtitle "`backtitle`" --colors --aspect 18 \
|
||||
--msgbox "${TEXT}" 0 0
|
||||
;;
|
||||
e) break ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Try to recovery a DSM already installed
|
||||
function tryRecoveryDSM() {
|
||||
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
|
||||
--infobox "Trying to recovery a DSM installed system" 0 0
|
||||
if findAndMountDSMRoot; then
|
||||
MODEL=""
|
||||
BUILD=""
|
||||
if [ -f "${DSMROOT_PATH}/.syno/patch/VERSION" ]; then
|
||||
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep unique`
|
||||
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep base`
|
||||
if [ -n "${unique}" ] ; then
|
||||
while read F; do
|
||||
M="`basename ${F}`"
|
||||
M="${M::-4}"
|
||||
UNIQUE=`readModelKey "${M}" "unique"`
|
||||
[ "${unique}" = "${UNIQUE}" ] || continue
|
||||
# Found
|
||||
modelMenu "${M}"
|
||||
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
|
||||
if [ -n "${MODEL}" ]; then
|
||||
buildMenu ${base}
|
||||
if [ -n "${BUILD}" ]; then
|
||||
cp "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
|
||||
cp "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
|
||||
MSG="Found a installation:\nModel: ${MODEL}\nBuildnumber: ${BUILD}"
|
||||
SN=`_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf"`
|
||||
if [ -n "${SN}" ]; then
|
||||
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
||||
MSG+="\nSerial: ${SN}"
|
||||
fi
|
||||
dialog --backtitle "`backtitle`" --title "Try recovery DSM" \
|
||||
--aspect 18 --msgbox "${MSG}" 0 0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
|
||||
--msgbox "Unfortunately I couldn't mount the DSM partition!" 0 0
|
||||
fi
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Permit user select the modules to include
|
||||
function selectModules() {
|
||||
@@ -539,7 +826,7 @@ function selectModules() {
|
||||
ALLMODULES=`getAllModules "${PLATFORM}" "${KVER}"`
|
||||
unset USERMODULES
|
||||
declare -A USERMODULES
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
|
||||
# menu loop
|
||||
@@ -608,207 +895,6 @@ function selectModules() {
|
||||
done
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Extract linux and ramdisk files from the DSM .pat
|
||||
function extractDsmFiles() {
|
||||
PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`"
|
||||
PAT_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.hash"`"
|
||||
RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`"
|
||||
ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`"
|
||||
|
||||
if [ ${RAMCACHE} -eq 0 ]; then
|
||||
OUT_PATH="${CACHE_PATH}/dl"
|
||||
echo "Cache in disk"
|
||||
else
|
||||
OUT_PATH="${TMP_PATH}/dl"
|
||||
echo "Cache in ram"
|
||||
fi
|
||||
mkdir -p "${OUT_PATH}"
|
||||
|
||||
PAT_FILE="${MODEL}-${BUILD}.pat"
|
||||
PAT_PATH="${OUT_PATH}/${PAT_FILE}"
|
||||
EXTRACTOR_PATH="${CACHE_PATH}/extractor"
|
||||
EXTRACTOR_BIN="syno_extract_system_patch"
|
||||
OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
|
||||
OLDPAT_PATH="${OUT_PATH}/DS3622xs+-42218.pat"
|
||||
|
||||
if [ -f "${PAT_PATH}" ]; then
|
||||
echo "${PAT_FILE} cached."
|
||||
else
|
||||
echo "Downloading ${PAT_FILE}"
|
||||
STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar`
|
||||
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
|
||||
--msgbox "Check internet or cache disk space" 0 0
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "Checking hash of ${PAT_FILE}: "
|
||||
if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Hash of pat not match, try again!" 0 0
|
||||
rm -f ${PAT_PATH}
|
||||
return 1
|
||||
fi
|
||||
echo "OK"
|
||||
|
||||
rm -rf "${UNTAR_PAT_PATH}"
|
||||
mkdir "${UNTAR_PAT_PATH}"
|
||||
echo -n "Disassembling ${PAT_FILE}: "
|
||||
|
||||
header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')"
|
||||
case ${header} in
|
||||
105)
|
||||
echo "Uncompressed tar"
|
||||
isencrypted="no"
|
||||
;;
|
||||
213)
|
||||
echo "Compressed tar"
|
||||
isencrypted="no"
|
||||
;;
|
||||
255)
|
||||
echo "Encrypted"
|
||||
isencrypted="yes"
|
||||
;;
|
||||
*)
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \
|
||||
0 0
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "${isencrypted}" = "yes" ]; then
|
||||
# Check existance of extractor
|
||||
if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then
|
||||
echo "Extractor cached."
|
||||
else
|
||||
# Extractor not exists, get it.
|
||||
mkdir -p "${EXTRACTOR_PATH}"
|
||||
# Check if old pat already downloaded
|
||||
if [ ! -f "${OLDPAT_PATH}" ]; then
|
||||
echo "Downloading old pat to extract synology .pat extractor..."
|
||||
STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar`
|
||||
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
|
||||
--msgbox "Check internet or cache disk space" 0 0
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# Extract ramdisk from PAT
|
||||
rm -rf "${RAMDISK_PATH}"
|
||||
mkdir -p "${RAMDISK_PATH}"
|
||||
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
|
||||
fi
|
||||
|
||||
# Extract all files from rd.gz
|
||||
(cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true
|
||||
# Copy only necessary files
|
||||
for f in libcurl.so.4 libmbedcrypto.so.5 libmbedtls.so.13 libmbedx509.so.1 libmsgpackc.so.2 libsodium.so libsynocodesign-ng-virtual-junior-wins.so.7; do
|
||||
cp "${RAMDISK_PATH}/usr/lib/${f}" "${EXTRACTOR_PATH}"
|
||||
done
|
||||
cp "${RAMDISK_PATH}/usr/syno/bin/scemd" "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}"
|
||||
rm -rf "${RAMDISK_PATH}"
|
||||
fi
|
||||
# Uses the extractor to untar pat file
|
||||
echo "Extracting..."
|
||||
LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${UNTAR_PAT_PATH}" || true
|
||||
else
|
||||
echo "Extracting..."
|
||||
tar -xf "${PAT_PATH}" -C "${UNTAR_PAT_PATH}" >"${LOG_FILE}" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "Checking hash of zImage: "
|
||||
HASH="`sha256sum ${UNTAR_PAT_PATH}/zImage | awk '{print$1}'`"
|
||||
if [ "${HASH}" != "${ZIMAGE_HASH}" ]; then
|
||||
sleep 1
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Hash of zImage not match, try again!" 0 0
|
||||
return 1
|
||||
fi
|
||||
echo "OK"
|
||||
writeConfigKey "zimage-hash" "${ZIMAGE_HASH}" "${USER_CONFIG_FILE}"
|
||||
|
||||
echo -n "Checking hash of ramdisk: "
|
||||
HASH="`sha256sum ${UNTAR_PAT_PATH}/rd.gz | awk '{print$1}'`"
|
||||
if [ "${HASH}" != "${RAMDISK_HASH}" ]; then
|
||||
sleep 1
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Hash of ramdisk not match, try again!" 0 0
|
||||
return 1
|
||||
fi
|
||||
echo "OK"
|
||||
writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}"
|
||||
|
||||
echo -n "Copying files: "
|
||||
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}"
|
||||
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}"
|
||||
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}"
|
||||
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}"
|
||||
cp "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}"
|
||||
cp "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}"
|
||||
echo "OK"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Where the magic happens!
|
||||
function make() {
|
||||
clear
|
||||
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||
|
||||
# Check if all addon exists
|
||||
while IFS="=" read ADDON PARAM; do
|
||||
[ -z "${ADDON}" ] && continue
|
||||
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Addon ${ADDON} not found!" 0 0
|
||||
return 1
|
||||
fi
|
||||
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
||||
|
||||
[ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ] && extractDsmFiles
|
||||
|
||||
/opt/arpl/zimage-patch.sh
|
||||
if [ $? -ne 0 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 0 0
|
||||
return 1
|
||||
fi
|
||||
|
||||
/opt/arpl/ramdisk-patch.sh
|
||||
if [ $? -ne 0 ]; then
|
||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 0 0
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Cleaning"
|
||||
rm -rf "${UNTAR_PAT_PATH}"
|
||||
|
||||
echo "Ready!"
|
||||
sleep 3
|
||||
DIRTY=0
|
||||
return 0
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Calls boot.sh to boot into DSM kernel/ramdisk
|
||||
function boot() {
|
||||
[ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \
|
||||
--yesno "Config changed, would you like to rebuild the loader?" 0 0
|
||||
if [ $? -eq 0 ]; then
|
||||
make || return
|
||||
fi
|
||||
boot.sh
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Permits user edit the user config
|
||||
function editUserConfig() {
|
||||
@@ -835,6 +921,17 @@ function editUserConfig() {
|
||||
DIRTY=1
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Calls boot.sh to boot into DSM kernel/ramdisk
|
||||
function boot() {
|
||||
[ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \
|
||||
--yesno "Config changed, would you like to rebuild the loader?" 0 0
|
||||
if [ $? -eq 0 ]; then
|
||||
make || return
|
||||
fi
|
||||
boot.sh
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Shows available keymaps to user choose one
|
||||
function keymapMenu() {
|
||||
@@ -857,11 +954,13 @@ function keymapMenu() {
|
||||
KEYMAP=${resp}
|
||||
writeConfigKey "layout" "${LAYOUT}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "keymap" "${KEYMAP}" "${USER_CONFIG_FILE}"
|
||||
zcat /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz | loadkeys
|
||||
loadkeys /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
function updateMenu() {
|
||||
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||
while true; do
|
||||
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
|
||||
a "Update arpl" \
|
||||
@@ -913,17 +1012,24 @@ function updateMenu() {
|
||||
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
|
||||
--infobox "Installing new files" 0 0
|
||||
# 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
|
||||
[ -f "${F}" ] && rm -f "${F}"
|
||||
[ -d "${F}" ] && rm -Rf "${F}"
|
||||
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 \
|
||||
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
|
||||
[ $? -ne 0 ] && continue
|
||||
reboot
|
||||
arpl-reboot.sh config
|
||||
exit
|
||||
;;
|
||||
|
||||
@@ -951,6 +1057,7 @@ function updateMenu() {
|
||||
unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1
|
||||
dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \
|
||||
--infobox "Installing new addons" 0 0
|
||||
rm -Rf "${ADDONS_PATH}/"*
|
||||
for PKG in `ls /tmp/addons/*.addon`; do
|
||||
ADDON=`basename ${PKG} | sed 's|.addon||'`
|
||||
rm -rf "${ADDONS_PATH}/${ADDON}"
|
||||
@@ -1020,6 +1127,13 @@ function updateMenu() {
|
||||
rm "${MODULES_PATH}/${P}.tgz"
|
||||
mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz"
|
||||
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
|
||||
dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \
|
||||
--msgbox "Modules updated with success!" 0 0
|
||||
@@ -1033,8 +1147,9 @@ function updateMenu() {
|
||||
###############################################################################
|
||||
|
||||
if [ "x$1" = "xb" -a -n "${MODEL}" -a -n "${BUILD}" -a loaderIsConfigured ]; then
|
||||
install-addons.sh
|
||||
make
|
||||
boot
|
||||
boot && exit 0 || sleep 5
|
||||
fi
|
||||
# Main loop
|
||||
NEXT="m"
|
||||
@@ -1047,21 +1162,25 @@ while true; do
|
||||
echo "a \"Addons\"" >> "${TMP_PATH}/menu"
|
||||
echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu"
|
||||
echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu"
|
||||
echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu"
|
||||
echo "o \"Modules\"" >> "${TMP_PATH}/menu"
|
||||
fi
|
||||
fi
|
||||
echo "v \"Advanced menu\"" >> "${TMP_PATH}/menu"
|
||||
if [ -n "${MODEL}" ]; then
|
||||
if [ -n "${BUILD}" ]; then
|
||||
echo "d \"Build the loader\"" >> "${TMP_PATH}/menu"
|
||||
fi
|
||||
fi
|
||||
if loaderIsConfigured; then
|
||||
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"">> "${TMP_PATH}/menu"
|
||||
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
|
||||
fi
|
||||
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
|
||||
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
|
||||
[ ${RAMCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ] && echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
|
||||
if [ ${CLEARCACHE} -eq 1 -a -d "${CACHE_PATH}/dl" ]; then
|
||||
echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
|
||||
fi
|
||||
echo "p \"Update menu\"" >> "${TMP_PATH}/menu"
|
||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||
dialog --clear --default-item ${NEXT} --backtitle "`backtitle`" --colors \
|
||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||
|
||||
dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \
|
||||
--menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
|
||||
2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && break
|
||||
@@ -1071,20 +1190,10 @@ while true; do
|
||||
s) serialMenu; NEXT="a" ;;
|
||||
a) addonMenu; NEXT="x" ;;
|
||||
x) cmdlineMenu; NEXT="i" ;;
|
||||
i) synoinfoMenu; NEXT="l" ;;
|
||||
l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev'
|
||||
writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}"
|
||||
DIRTY=1
|
||||
NEXT="o"
|
||||
;;
|
||||
o) selectModules; NEXT="d" ;;
|
||||
d) make; NEXT="r" ;;
|
||||
r) [ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false'
|
||||
writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}"
|
||||
NEXT="b"
|
||||
;;
|
||||
b) boot ;;
|
||||
u) editUserConfig; NEXT="u" ;;
|
||||
i) synoinfoMenu; NEXT="v" ;;
|
||||
v) advancedMenu; NEXT="d" ;;
|
||||
d) make; NEXT="b" ;;
|
||||
b) boot && exit 0 || sleep 5 ;;
|
||||
k) keymapMenu ;;
|
||||
c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \
|
||||
--prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;;
|
||||
@@ -1094,4 +1203,3 @@ while true; do
|
||||
done
|
||||
clear
|
||||
echo -e "Call \033[1;32mmenu.sh\033[0m to return to menu"
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
intel_iommu: igfx_off
|
||||
HddEnableDynamicPower: 1
|
||||
@@ -13,14 +15,15 @@ cmdline: &cmdline
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "geminilake"
|
||||
unique: "synology_geminilake_1520+"
|
||||
beta: true
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "0000"
|
||||
middle: "XXX"
|
||||
- "2060"
|
||||
middle: "RYR"
|
||||
suffix: "alpha"
|
||||
disks: 6
|
||||
dt: true
|
||||
@@ -29,17 +32,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1520%2B_42218.pat"
|
||||
hash: "06947c58f25bd591f7fa3c58ad9473777481bdd7a049b42d1cb585ca01b053ee"
|
||||
ramdisk-hash: "f0a275587c51acdb4d58a7f0d82d70f31e54228d0fbf7575d5d425dae75d1969"
|
||||
zimage-hash: "74d513aaa3e30d8aa4f80e202d94a68a552e9c0472f8470e133ad29080556f55"
|
||||
md5-hash: "f56200a8be1aed4eb287a51b373adb1f"
|
||||
hash: "b8864e2becd8ce5a6083db993564c8c0b982df8300a006b56695a0495a670aa3"
|
||||
ramdisk-hash: "7679ab11e895302425533c64e0dded211b38b8af71f2dd268c47a68bc9f6818a"
|
||||
zimage-hash: "70e93678f3932c35c5e884f950e50b36f8dc6366f96dd9a454c8d47ecbaee5de"
|
||||
md5-hash: "d1ebc3c9a2b9e04980a85c4784904f91"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -50,7 +52,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -71,7 +72,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -6,16 +6,18 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
SMBusHddDynamicPower: 1
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "v1000"
|
||||
unique: "synology_v1000_1621+"
|
||||
dom: 2
|
||||
@@ -31,17 +33,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1621%2B_42218.pat"
|
||||
hash: "19f56827ba8bf0397d42cd1d6f83c447f092c2c1bbb70d8a2ad3fbd427e866df"
|
||||
ramdisk-hash: "73512c7bceb34cf7f7f93c2703db60496da0e27274fc45e5aefa0366c9734d6e"
|
||||
zimage-hash: "f4648d0dd6b29ef6149b0ff46afe1fe32f81730aa79af72f37ffd3647c76f586"
|
||||
md5-hash: "f82cbabbfef3fdf2cba45da77d14959b"
|
||||
hash: "396144fdcd94d441b4ad665099395cf24a14606742bee9438745ea30bf12b9ef"
|
||||
ramdisk-hash: "127a12bab3835cdf5af4e7ad2a23e78f889408302c55e5052080671cff6da5b7"
|
||||
zimage-hash: "0ab3bf0ff027fb94863ef8822df787194f2d21079ecc66c0b0d4e46d24598855"
|
||||
md5-hash: "1fd1d6e733bb096f418f68e06f81022e"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -52,7 +53,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -73,7 +73,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -2,20 +2,21 @@ id: "DS2422+"
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportraidgroup: "no"
|
||||
supportssdcache: "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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
SMBusHddDynamicPower: 1
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "v1000"
|
||||
unique: "synology_v1000_2422+"
|
||||
dom: 2
|
||||
@@ -32,17 +33,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS2422%2B_42218.pat"
|
||||
hash: "415c54934d483a2557500bc3a2e74588a0cec1266e1f0d9a82a7d3aace002471"
|
||||
ramdisk-hash: "2b5b8dd90b2e6020ffccc2719d8bc16d9935421754a8c088d6b31dbca4e4ff7b"
|
||||
zimage-hash: "38281a90036fffcb41cd17f05a6c7e9a1d5740a78c135980fb0c3a6d0ca1485f"
|
||||
md5-hash: "9293156f98e642c181aed63b0b3df4c8"
|
||||
hash: "5a6cfbc690facdfaef9fbcc55215eac38c73ca6a85965a910af11cede5e2cd5d"
|
||||
ramdisk-hash: "57bcadf9699252aa68dac40b5c48f362169b51fda9f77a7f1b51e3336a551f8f"
|
||||
zimage-hash: "e083a8aec10537582ed0dd6d79bc358d9aff828b3e256996ef1e4f4bf418dd5d"
|
||||
md5-hash: "7fe3c9ae80396a2ea9ed9909b8746c4b"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -52,7 +52,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -73,7 +72,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -2,19 +2,20 @@ id: "DS3615xs"
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportraidgroup: "no"
|
||||
supportssdcache: "no"
|
||||
esataportcfg: "0x0"
|
||||
usbportcfg: "0x8700"
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "bromolow"
|
||||
unique: "synology_bromolow_3615xs"
|
||||
serial:
|
||||
@@ -32,17 +33,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "3.10.108"
|
||||
rd-compressed: false
|
||||
efi-bug: yes
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3615xs_42218.pat"
|
||||
hash: "dddd26891815ddca02d0d53c1d42e8b39058b398a4cc7b49b80c99f851cf0ef7"
|
||||
ramdisk-hash: "4c90c3c7ee25b5fcc651552e80a9364d22823c863c834c5f43e3344a3a68af78"
|
||||
zimage-hash: "d29b695612710376734cb5c5b5ae4f2d8afc49ffd640387e1c86010f6c7d2c8a"
|
||||
md5-hash: "ea1c30f644bacae2e0b1ef914bc663db"
|
||||
hash: "ae1aca3b178a00689b93e97cca680b56af3f453174b852e0047496120dee2ee3"
|
||||
ramdisk-hash: "3a8c2fe60142d3eb3a7ed2381819faa1db2cda30ff163288dd0a6c85a25815c1"
|
||||
zimage-hash: "354f0bb13c898a7b24f2942d8015f591f7acce1739e2060580c0f38c41addaf7"
|
||||
md5-hash: "9f959ec4d16d5d7729374961fc2b9bed"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -54,7 +54,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "3.10.108"
|
||||
rd-compressed: false
|
||||
efi-bug: yes
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -76,7 +75,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "3.10.108"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -2,19 +2,20 @@ id: "DS3617xs"
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportraidgroup: "no"
|
||||
supportssdcache: "no"
|
||||
esataportcfg: "0x00"
|
||||
usbportcfg: "0x8700"
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "broadwell"
|
||||
unique: "synology_broadwell_3617xs"
|
||||
dom: 1
|
||||
@@ -32,17 +33,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3617xs_42218.pat"
|
||||
hash: "d65ee4ed5971e38f6cdab00e1548183435b53ba49a5dca7eaed6f56be939dcd2"
|
||||
ramdisk-hash: "1b2e86fbf4006f6aa40dcd674ad449feed8b0b8317a71e2bb8bb986a74e08c57"
|
||||
zimage-hash: "28a75e0b680517d39374260eb981b8ca9ace8810b121a30b8036fa09cfcb77fc"
|
||||
md5-hash: "8972088c38acd07aa92a8b573a1b7bc3"
|
||||
hash: "f7e846e2a22b62613ac5e9d6e154df0213ba4ae64a6556297af627cd1e643e5c"
|
||||
ramdisk-hash: "eaddd97c40a35bbcf4092417364ca4376925fb3eb322cad0cf602d4c7973d147"
|
||||
zimage-hash: "8e0ab965c85b348dfc9dc17392b9cf0a117756f1d1bc4c0f0d19bb610350659d"
|
||||
md5-hash: "b7d85926561ff125928b68e7fffa646b"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -54,7 +54,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -76,7 +75,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -2,7 +2,6 @@ id: "DS3622xs+"
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportraidgroup: "no"
|
||||
esataportcfg: "0x00"
|
||||
support_bde_internal_10g: "no"
|
||||
support_oob_ctl: "no"
|
||||
@@ -10,12 +9,14 @@ synoinfo: &synoinfo
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" # http://update7.synology.com/autoupdate/genRSS.php
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" # https://update7.synology.com/autoupdate/genRSS.php
|
||||
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" # https://update7.synology.com/autoupdate/v2/getList
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "broadwellnk"
|
||||
unique: "synology_broadwellnk_3622xs+"
|
||||
dom: 1
|
||||
@@ -33,17 +34,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
|
||||
hash: "f38329b8cdc5824a8f01fb1e377d3b1b6bd23da365142a01e2158beff5b8a424"
|
||||
ramdisk-hash: "a95d4ab06189460f3b3d13a33e421887b5f3ea09a10535ae0d4c92beb7ff631d"
|
||||
zimage-hash: "06964b68e5ccdedd4363dff3986f99686d3c9cb5225e8e4c3d840a1d9cd1330b"
|
||||
md5-hash: "bc0235e45a8423f4c46dc0d9699759b5"
|
||||
hash: "a222d37f369d71042057ccb592f40c7c81e9b988a95d69fa166c7c2a611da99c"
|
||||
ramdisk-hash: "11ebadba5d831ad6f31258ab317ed1f7cbfe18243413f9f81291b894b5f7a591"
|
||||
zimage-hash: "d6059bcd7160ed1f775a9323599ac8860b60ada32f0a4f3e5ca166c15a17784e"
|
||||
md5-hash: "b9b452577b38adc82aca42e031be267b"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -55,7 +55,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -77,7 +76,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -9,13 +9,15 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
#support_ssd_cache: yes
|
||||
#support_ssd_cache: "yes"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "apollolake"
|
||||
unique: "synology_apollolake_918+"
|
||||
dom: 2
|
||||
@@ -35,17 +37,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS918%2B_42218.pat"
|
||||
hash: "a403809ab2cd476c944fdfa18cae2c2833e4af36230fa63f0cdee31a92bebba2"
|
||||
ramdisk-hash: "4b7a7a271a3b2158d9193a4f0e75c59590949ad7b4e26d546f46cc2ee8504d51"
|
||||
zimage-hash: "338ba514066da01d0c1f770418916b9b96f5355d88a7b55b398d2726db591fdb"
|
||||
md5-hash: "71c028f92497e4722998e4208fe75774"
|
||||
hash: "a662d11999c266dfa86c54f7ba01045c6644c191124195a22d056d618790dffe"
|
||||
ramdisk-hash: "d27320b536da0ac82d7959e0492180b3a25ef78a3997f65cc4ccddc426b921bd"
|
||||
zimage-hash: "7311b04f7462847f529cf966c7b332097354692485c8157643d89441e2a81cd0"
|
||||
md5-hash: "0c8a0d2dc6f1d7e37ee63d74760808b8"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -57,7 +58,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -79,7 +79,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -6,6 +6,8 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
intel_iommu: "igfx_off"
|
||||
HddEnableDynamicPower: 1
|
||||
@@ -13,6 +15,7 @@ cmdline: &cmdline
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
vender_format_version: 2
|
||||
elevator: elevator
|
||||
platform: "geminilake"
|
||||
unique: "synology_geminilake_920+"
|
||||
dom: 2
|
||||
@@ -31,17 +34,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat"
|
||||
hash: "fe2a4648f76adeb65c3230632503ea36bbac64ee88b459eb9bfb5f3b8c8cebb3"
|
||||
ramdisk-hash: "f7dd1317f24ec6b9bac839e37f66b59030218c7f97c06f73f1f54ed0f892c4aa"
|
||||
zimage-hash: "346b68f662b50f47d3ee6c2bc9de6302e4b60436142c24ee88b620c7afd1ba06"
|
||||
md5-hash: "7764ad4fca0a11ae0ebd7ccd4a49e1aa"
|
||||
hash: "b9b77846e0983f50496276bec6bcdfcfadd4c1f9f0db8ed2ca5766f131ddf97f"
|
||||
ramdisk-hash: "8607c34fff3a13c75dbc1a9c730de2b2cf649697d6244fd37047090d2e2ba897"
|
||||
zimage-hash: "70e93678f3932c35c5e884f950e50b36f8dc6366f96dd9a454c8d47ecbaee5de"
|
||||
md5-hash: "55a7e4ccbf6fcba9238a11976a4a7381"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -52,7 +54,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -73,7 +74,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -6,12 +6,15 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
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
|
||||
@@ -19,11 +22,8 @@ dom: 2
|
||||
dt: true
|
||||
serial:
|
||||
prefix:
|
||||
- "2030"
|
||||
- "2040"
|
||||
- "20C0"
|
||||
- "2150"
|
||||
middle: "SBR"
|
||||
- "2270"
|
||||
middle: "TQR"
|
||||
suffix: "alpha"
|
||||
disks: 4
|
||||
builds:
|
||||
@@ -31,7 +31,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -7,14 +7,16 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
intel_iommu: "igfx_off"
|
||||
HddEnableDynamicPower: 1
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "geminilake"
|
||||
unique: "synology_geminilake_dva1622"
|
||||
dom: 2
|
||||
@@ -33,7 +35,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -54,7 +55,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -10,12 +10,14 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "denverton"
|
||||
unique: "synology_denverton_dva3219"
|
||||
beta: true
|
||||
@@ -34,17 +36,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3219_42218.pat"
|
||||
hash: "3557df23ff6af9bbb0cf46872ba2fc09c344eb303a38e8283dbc9a46e5eae979"
|
||||
ramdisk-hash: "6820f900bf2870660541b83f9741a0b70e05e8871bc41c006c9d688105c97f7c"
|
||||
zimage-hash: "ef97f2d64f3f7f8c5e3f4e8fee613d385d7888826f56e119f1885a722c95c7cc"
|
||||
md5-hash: "40917aaf18d069f862f9536ac5504385"
|
||||
hash: "b3498a20aeb7c7c36deca0f4393172d4db7b51aa4fb87eaace83fe224d935e3b"
|
||||
ramdisk-hash: "5b301519fe08200e4cb368b7d23e4ce460d5412428126b9496084ceae3f6d67e"
|
||||
zimage-hash: "8b58e602317286bdd25481c4927a791507589ce0b7c29f1ad394d08b634d41a3"
|
||||
md5-hash: "4345e7cff9ba4fe97793c254c87b3ed5"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -56,7 +57,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -78,7 +78,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
id: "DVA3221"
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
support_memory_compatibility: "yes"
|
||||
esataportcfg: "0x00"
|
||||
support_bde_internal_10g: "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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "denverton"
|
||||
unique: "synology_denverton_dva3221"
|
||||
dom: 2
|
||||
@@ -33,17 +35,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3221_42218.pat"
|
||||
hash: "01f101d7b310c857e54b0177068fb7250ff722dc9fa2472b1a48607ba40897ee"
|
||||
ramdisk-hash: "0825958923a5e67d967389769cff5fb7a04a25b98a2826c4c1e8aa7b8146dc8b"
|
||||
zimage-hash: "ef97f2d64f3f7f8c5e3f4e8fee613d385d7888826f56e119f1885a722c95c7cc"
|
||||
md5-hash: "b8bd6562290d06dd3a7360f3af330bec"
|
||||
hash: "6722c73c51070dde2f542659d7728c497fc846256da2c9cf017177476de0bb09"
|
||||
ramdisk-hash: "86a7450cdc461049c4cefe3fe3a1f9d241ea3c484f72f5667d7cd27f2842c8d6"
|
||||
zimage-hash: "8b58e602317286bdd25481c4927a791507589ce0b7c29f1ad394d08b634d41a3"
|
||||
md5-hash: "e3455afd4644cb882cb2c9bede08c7bf"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -55,7 +56,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -77,7 +77,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -6,6 +6,8 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
intel_iommu: igfx_off
|
||||
SMBusHddDynamicPower: 1
|
||||
@@ -13,6 +15,7 @@ cmdline: &cmdline
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "v1000"
|
||||
unique: "synology_v1000_fs2500"
|
||||
beta: true
|
||||
@@ -29,17 +32,16 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_FS2500_42218.pat"
|
||||
hash: "4d060be8afec548fdb042bc8095524f10ff200033cab74df37ae07f3de5eaa69"
|
||||
ramdisk-hash: "cbe9099c57f23ba53415574b011580218fa55a0bdb83c4e4bba9e27100e5379d"
|
||||
zimage-hash: "f6816165a52b1f53ce44a45878fe06641da34e9478947f826a236c1a6548f8fd"
|
||||
md5-hash: "70550293c612c1fd9a8d1b7485173877"
|
||||
hash: "3fbd5defbc0fef0d152494033f3e817c330525b70e356a9e9acd2b72d9806b59"
|
||||
ramdisk-hash: "8d66ddfa947b38c0e407d4c5efd7558b1a9392e04fd83fe9f162e1aa546f8da8"
|
||||
zimage-hash: "e083a8aec10537582ed0dd6d79bc358d9aff828b3e256996ef1e4f4bf418dd5d"
|
||||
md5-hash: "9562d49a07f5481208b672ff777f3cbf"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -50,7 +52,6 @@ builds:
|
||||
ver: "7.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -71,7 +72,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -8,20 +8,22 @@ synoinfo: &synoinfo
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
syno_hdd_detect: 0
|
||||
syno_port_thaw: 1
|
||||
vender_format_version: 2
|
||||
elevator: elevator
|
||||
platform: "broadwellnk"
|
||||
unique: "synology_broadwellnk_rs4021xs+"
|
||||
beta: true
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "0000"
|
||||
middle: "XXX"
|
||||
- "2250"
|
||||
middle: "T2R"
|
||||
suffix: "alpha"
|
||||
disks: 16
|
||||
dt: false
|
||||
@@ -30,14 +32,13 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_RS4021xs%2B_42218.pat"
|
||||
hash: "7afca3970ac7324d7431c1484d4249939bedd4c18ac34187f894c43119edf3a1"
|
||||
hash: "2a32266b7bcf0b2582b5afd9e39dc444e7cb40eaf4ccfdbfedf4743af821f11c"
|
||||
ramdisk-hash: "3aa9d810064747fca6d0a3ab4c979bd82b49fc0d166dfe714261c2a22145cc70"
|
||||
zimage-hash: "17607e1739c8acc9903272ebd981bccb27b51057cdcb3cc446e5c5149db452d3"
|
||||
md5-hash: "46d9eb6aba71dbd61ba0394e575b6d58"
|
||||
@@ -52,7 +53,6 @@ builds:
|
||||
ver: "7.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -60,9 +60,9 @@ builds:
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_RS4021xs%2B_42661.pat"
|
||||
hash: "496b64e431dafa34cdebb92da8ac736bf1610fe157f03df7e6d11152d60991f5"
|
||||
ramdisk-hash: "143e475fe73c0adb3377361402b4baad21448476e844e55e16d1ed51ffc4c971"
|
||||
zimage-hash: "e073dd84054f652811e0ae1932af2c7cdbd5fb6e5f18f265097072b8af4605e8"
|
||||
md5-hash: "ddbbbcf8ccb8d9d345df3e08debc66f6"
|
||||
ramdisk-hash: "f2b99b4c05559376d34d30d6446c30a8b3f44f516e5a041299d03be9c7fd0095"
|
||||
zimage-hash: "d6059bcd7160ed1f775a9323599ac8860b60ada32f0a4f3e5ca166c15a17784e"
|
||||
md5-hash: "cbcb77548de26b6843ab31d7a7258b62"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
@@ -74,7 +74,6 @@ builds:
|
||||
ver: "7.1.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
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
|
||||
rm -f "${MOD_RDGZ_FILE}"
|
||||
|
||||
# Check disk space left
|
||||
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
|
||||
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
|
||||
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'`
|
||||
[ ${SPACELEFT} -le 268435456 ] && rm -rf "${CACHE_PATH}/dl"
|
||||
|
||||
# Unzipping ramdisk
|
||||
echo -n "."
|
||||
rm -rf "${RAMDISK_PATH}" # Force clean
|
||||
@@ -25,6 +31,10 @@ mkdir -p "${RAMDISK_PATH}"
|
||||
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
|
||||
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
|
||||
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
|
||||
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
|
||||
LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
|
||||
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
|
||||
UNIQUE=`readModelKey "${MODEL}" "unique"`
|
||||
|
||||
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"
|
||||
@@ -48,15 +58,15 @@ declare -A ADDONS
|
||||
declare -A USERMODULES
|
||||
|
||||
# Read synoinfo and addons from config
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
||||
|
||||
# Read modules from user config
|
||||
while IFS="=" read KEY VALUE; do
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
|
||||
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
|
||||
|
||||
@@ -72,6 +82,8 @@ echo -n "."
|
||||
for KEY in ${!SYNOINFO[@]}; do
|
||||
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
done
|
||||
# Add serial number to synoinfo.conf, to help to recovery a installed DSM
|
||||
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
|
||||
# Patch /sbin/init.post
|
||||
echo -n "."
|
||||
@@ -80,9 +92,11 @@ sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e
|
||||
rm "${TMP_PATH}/rp.txt"
|
||||
touch "${TMP_PATH}/rp.txt"
|
||||
for KEY in ${!SYNOINFO[@]}; do
|
||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||
done
|
||||
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
|
||||
rm "${TMP_PATH}/rp.txt"
|
||||
|
||||
@@ -111,7 +125,7 @@ cp "${PATCH_PATH}/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
|
||||
gzip -dc "${LKM_PATH}/rp-${PLATFORM}-${KVER}-${LKM}.ko.gz" > "${RAMDISK_PATH}/usr/lib/modules/rp.ko"
|
||||
|
||||
# Addons
|
||||
MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
||||
#MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
||||
# Check if model needs Device-tree dynamic patch
|
||||
DT="`readModelKey "${MODEL}" "dt"`"
|
||||
|
||||
@@ -119,20 +133,20 @@ echo -n "."
|
||||
mkdir -p "${RAMDISK_PATH}/addons"
|
||||
echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo 'echo "addons.sh called with params ${@}"' >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export PLATFORM=${PLATFORM}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export MODEL=${MODEL}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export BUILD=${BUILD}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export LAYOUT=${LAYOUT}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export KEYMAP=${KEYMAP}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
chmod +x "${RAMDISK_PATH}/addons/addons.sh"
|
||||
|
||||
# Required addons: eudev, dtbpatch/maxdisks, powersched
|
||||
# Required addons: eudev, disks, wol
|
||||
installAddon eudev
|
||||
echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
if [ "${DT}" = "true" ]; then
|
||||
installAddon dtbpatch
|
||||
echo "/addons/dtbpatch.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
else
|
||||
installAddon maxdisks
|
||||
echo "/addons/maxdisks.sh \${1} ${MAXDISKS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
fi
|
||||
installAddon powersched
|
||||
echo "/addons/powersched.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
installAddon disks
|
||||
echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
installAddon wol
|
||||
echo "/addons/wol.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
# User addons
|
||||
for ADDON in ${!ADDONS[@]}; do
|
||||
PARAMS=${ADDONS[${ADDON}]}
|
||||
|
||||
@@ -1,21 +1,11 @@
|
||||
#!/bin/sh
|
||||
# Based on code and ideas from @jumkey
|
||||
|
||||
. /opt/arpl/include/functions.sh
|
||||
|
||||
#zImage_head 16494
|
||||
#payload(
|
||||
# vmlinux.bin x
|
||||
# padding 0xf00000-x
|
||||
# vmlinux.bin size 4
|
||||
#) 0xf00004
|
||||
#zImage_tail(
|
||||
# unknown 72
|
||||
# run_size 4
|
||||
# unknown 30
|
||||
# vmlinux.bin size 4
|
||||
# unknown 114460
|
||||
#) 114570
|
||||
#crc32 4
|
||||
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
|
||||
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
|
||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||
|
||||
# Adapted from: scripts/Makefile.lib
|
||||
# Usage: size_append FILE [FILE2] [FILEn]...
|
||||
@@ -51,12 +41,40 @@ size_le () {
|
||||
SCRIPT_DIR=`dirname $0`
|
||||
VMLINUX_MOD=${1}
|
||||
ZIMAGE_MOD=${2}
|
||||
gzip -cd "${SCRIPT_DIR}/zImage_template.gz" > "${ZIMAGE_MOD}"
|
||||
KVER_MAJOR=${KVER:0:1}
|
||||
if [ $KVER_MAJOR -eq 4 ] || [ $KVER_MAJOR -eq 3 ]; then
|
||||
# Kernel version 4.x or 3.x (bromolow)
|
||||
#zImage_head 16494
|
||||
#payload(
|
||||
# vmlinux.bin x
|
||||
# padding 0xf00000-x
|
||||
# vmlinux.bin size 4
|
||||
#) 0xf00004
|
||||
#zImage_tail(
|
||||
# unknown 72
|
||||
# run_size 4
|
||||
# unknown 30
|
||||
# vmlinux.bin size 4
|
||||
# unknown 114460
|
||||
#) 114570
|
||||
#crc32 4
|
||||
gzip -cd "${SCRIPT_DIR}/bzImage-template-v4.gz" > "${ZIMAGE_MOD}"
|
||||
|
||||
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
|
||||
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
||||
size_le $RUN_SIZE | dd of=$ZIMAGE_MOD bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
||||
size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
else
|
||||
# Kernel version 5.x
|
||||
gzip -cd "${SCRIPT_DIR}/bzImage-template-v5.gz" > "${ZIMAGE_MOD}"
|
||||
|
||||
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=14561 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34463421 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34479132 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
# RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
||||
# size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=34626904 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
fi
|
||||
|
||||
@@ -18,6 +18,7 @@ export EDITOR="/bin/nano"
|
||||
export BOOTLOADER_PATH="/mnt/p1"
|
||||
export SLPART_PATH="/mnt/p2" # Synologic partition
|
||||
export CACHE_PATH="/mnt/p3"
|
||||
export DSMROOT_PATH="/mnt/dsmroot"
|
||||
export PATH="${PATH}:/opt/arpl"
|
||||
|
||||
if [ ! -f ${HOME}/.initialized ]; then
|
||||
|
||||
1
files/board/arpl/p1/ARPL-VERSION
Normal file
1
files/board/arpl/p1/ARPL-VERSION
Normal file
@@ -0,0 +1 @@
|
||||
1.1-beta2
|
||||
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,84 +1,123 @@
|
||||
insmod search
|
||||
insmod echo
|
||||
insmod terminal
|
||||
insmod test
|
||||
|
||||
terminal_input console
|
||||
terminal_output console
|
||||
insmod font
|
||||
insmod loadenv
|
||||
insmod serial
|
||||
insmod usb_keyboard
|
||||
insmod linux
|
||||
insmod gzio
|
||||
insmod fat
|
||||
insmod ext2
|
||||
|
||||
set default="boot"
|
||||
set timeout="5"
|
||||
set timeout_style="menu"
|
||||
set vesa_mode=1
|
||||
|
||||
insmod loadenv
|
||||
if [ -s $prefix/grubenv ]; then
|
||||
load_env
|
||||
fi
|
||||
if [ "${default}" ]; then
|
||||
set default="${default}"
|
||||
fi
|
||||
if [ "${next_entry}" ]; then
|
||||
set default="${next_entry}"
|
||||
set next_entry=
|
||||
save_env next_entry
|
||||
set default="${next_entry}"
|
||||
unset next_entry
|
||||
save_env next_entry
|
||||
fi
|
||||
if [ "${vesa_mode}" ]; then
|
||||
set vesa_mode=${vesa_mode}
|
||||
fi
|
||||
|
||||
insmod usb_keyboard
|
||||
insmod part_msdos
|
||||
insmod ext2
|
||||
insmod fat
|
||||
insmod linux
|
||||
insmod gzio
|
||||
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
|
||||
}
|
||||
|
||||
set gfxmode=auto
|
||||
if [ "${grub_platform}" = "efi" ]; then
|
||||
insmod efi_gop
|
||||
insmod efi_uga
|
||||
else
|
||||
insmod vbe
|
||||
insmod vga
|
||||
load_video
|
||||
if loadfont unicode; then
|
||||
set gfxmode=auto
|
||||
insmod gfxterm
|
||||
terminal_output gfxterm
|
||||
fi
|
||||
|
||||
insmod serial
|
||||
set menu_color_normal=light-green/blue
|
||||
set menu_color_highlight=black/green
|
||||
|
||||
if serial --unit=0 --speed=115200; then
|
||||
terminal_input --append serial_com0
|
||||
terminal_output --append serial_com0
|
||||
fi
|
||||
|
||||
insmod search
|
||||
function set_gfxpayload {
|
||||
if [ ${vesa_mode} -eq 1 ]; then
|
||||
set gfxpayload=keep
|
||||
else
|
||||
set gfxpayload=text
|
||||
fi
|
||||
}
|
||||
|
||||
set TERM=tty2
|
||||
|
||||
search --set=root --label "ARPL3"
|
||||
if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
|
||||
if [ "${default}" = "direct" ]; then
|
||||
set timeout="1"
|
||||
menuentry 'Boot DSM kernel directly' --id direct {
|
||||
set_gfxpayload
|
||||
echo "Loading DSM kernel..."
|
||||
linux /zImage-dsm console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15 ${dsm_cmdline}
|
||||
linux /zImage-dsm console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 ${dsm_cmdline}
|
||||
echo "Loading DSM initramfs..."
|
||||
initrd /initrd-dsm
|
||||
echo "Booting..."
|
||||
}
|
||||
fi
|
||||
menuentry 'Boot DSM' --id boot {
|
||||
set_gfxpayload
|
||||
echo "Loading kernel..."
|
||||
linux /bzImage-arpl console=ttyS0,115200n8 quiet net.ifnames=0 biosdevname=0
|
||||
linux /bzImage-arpl console=${TERM} net.ifnames=0
|
||||
echo "Loading initramfs..."
|
||||
initrd /initrd-arpl
|
||||
echo "Booting..."
|
||||
}
|
||||
menuentry 'Force re-install DSM' --id junior {
|
||||
set_gfxpayload
|
||||
echo "Loading kernel..."
|
||||
linux /bzImage-arpl console=ttyS0,115200n8 quiet net.ifnames=0 biosdevname=0 force_junior
|
||||
linux /bzImage-arpl console=${TERM} net.ifnames=0 force_junior
|
||||
echo "Loading initramfs..."
|
||||
initrd /initrd-arpl
|
||||
echo "Booting..."
|
||||
}
|
||||
else
|
||||
set timeout="1"
|
||||
fi
|
||||
|
||||
menuentry 'Configure loader' --id config {
|
||||
set_gfxpayload
|
||||
echo "Loading kernel..."
|
||||
linux /bzImage-arpl console=ttyS0,115200n8 quiet net.ifnames=0 biosdevname=0 IWANTTOCHANGETHECONFIG
|
||||
linux /bzImage-arpl console=${TERM} net.ifnames=0 IWANTTOCHANGETHECONFIG
|
||||
echo "Loading initramfs..."
|
||||
initrd /initrd-arpl
|
||||
echo "Booting..."
|
||||
}
|
||||
|
||||
if [ ${vesa_mode} = 1 ]; then
|
||||
menuentry 'Change vesa to text video mode' --id videomode {
|
||||
set vesa_mode=0
|
||||
save_env vesa_mode
|
||||
configfile ${prefix}/grub.cfg
|
||||
}
|
||||
else
|
||||
menuentry 'Change text to vesa video mode' --id videomode {
|
||||
set vesa_mode=1
|
||||
save_env vesa_mode
|
||||
reboot
|
||||
configfile ${prefix}/grub.cfg
|
||||
}
|
||||
fi
|
||||
|
||||
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.
BIN
files/board/arpl/p1/grub/i386-efi/diskfilter.mod
Normal file
BIN
files/board/arpl/p1/grub/i386-efi/diskfilter.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