Compare commits

..

115 Commits

Author SHA1 Message Date
Fabio Belavenuto
f2667baa64 Merge pull request #536 from fbelavenuto/dev
Passing UNIQUE string to dtbpatch addon
2023-01-25 16:51:39 -03:00
Fabio Belavenuto
4e33c6fe69 Passing UNIQUE string to dtbpatch addon 2023-01-25 16:51:27 -03:00
Fabio Belavenuto
5c4abf005d Merge pull request #532 from fbelavenuto/wol
Enabling WoL on loader init
2023-01-24 10:00:53 -03:00
Fabio Belavenuto
7d9a6bd91b Enabling WoL on loader init 2023-01-24 10:00:39 -03:00
Fabio Belavenuto
8df97f2cf7 Merge pull request #530 from fbelavenuto/beta13a
Testing new system addon 'wol'
2023-01-23 13:42:27 -03:00
Fabio Belavenuto
1cc8488d44 Testing new system addon 'wol' 2023-01-23 13:42:12 -03:00
Fabio Belavenuto
630cd019db Merge pull request #525 from fbelavenuto/supportraidgroup
Organizing synoinfo "supportraidgroup"
2023-01-20 19:27:12 -03:00
Fabio Belavenuto
68ceba090d Organizing synoinfo "supportraidgroup" 2023-01-20 19:26:39 -03:00
Fabio Belavenuto
10a3390eda Merge pull request #524 from fbelavenuto/boot-improving
Boot improving, arpl kernel config
2023-01-20 15:00:51 -03:00
Fabio Belavenuto
14dee10280 Changing arpl kernel config 2023-01-20 15:00:01 -03:00
Fabio Belavenuto
e0d6f5487e Improving DSM boot 2023-01-20 14:58:39 -03:00
Fabio Belavenuto
e3c79978fb Merge pull request #520 from fbelavenuto/docker-compiler
Improving docker compiler
2023-01-19 16:58:14 -03:00
Fabio Belavenuto
af04acef77 Improving docker compiler 2023-01-19 16:57:57 -03:00
Fabio Belavenuto
abc533f6e5 Merge pull request #519 from fbelavenuto/dev
Adding video mode selection in grub.
2023-01-18 17:01:45 -03:00
Fabio Belavenuto
bd34a24665 Adding video mode selection in grub.
Little fix in init.sh
2023-01-18 16:53:48 -03:00
Fabio Belavenuto
6a49f24473 Update main.yml 2023-01-18 16:49:00 -03:00
Fabio Belavenuto
994c0e21f1 Update main.yml 2023-01-18 16:43:53 -03:00
Fabio Belavenuto
9ce8f6deb7 Update main.yml 2023-01-18 16:36:11 -03:00
Fabio Belavenuto
d61c3a9f3a Merge pull request #518 from fbelavenuto/gaction
Little improvement into github actions
2023-01-18 16:29:47 -03:00
Fabio Belavenuto
d8ad963a02 Little improvement into github actions 2023-01-18 16:29:00 -03:00
Fabio Belavenuto
d71c4215a1 Merge pull request #514 from fbelavenuto/docker
Adding kernel sources to docker compiler image
2023-01-18 09:41:08 -03:00
Fabio Belavenuto
c5e81b59b4 Adding kernel sources to docker compiler image 2023-01-18 09:01:25 -03:00
Fabio Belavenuto
d4c2e8dbca Merge pull request #513 from fbelavenuto/support-console
Adding support to some future addons
2023-01-18 08:57:33 -03:00
Fabio Belavenuto
178374e498 Adding support to some future addons 2023-01-18 08:57:16 -03:00
Fabio Belavenuto
85778bbf58 Merge pull request #510 from fbelavenuto/dev
little fixes
2023-01-17 10:20:28 -03:00
Fabio Belavenuto
ed8f511766 little fixes 2023-01-17 10:20:08 -03:00
Fabio Belavenuto
7b02fc8d25 Merge pull request #506 from fbelavenuto/dev
tests
2023-01-15 12:50:51 -03:00
Fabio Belavenuto
034b40dad9 tests 2023-01-15 12:48:06 -03:00
Fabio Belavenuto
ad6d6f69cb Merge pull request #505 from fbelavenuto/kernel-br
Little adjusts in buildroot kernel
2023-01-15 00:16:19 -03:00
Fabio Belavenuto
ef8fc415ac Little adjusts in vuildroot kernel 2023-01-15 00:15:55 -03:00
Fabio Belavenuto
0ef66dc098 Merge pull request #504 from fbelavenuto/beta12
Starting beta12: change grub menu colors and removed supportraidgroup…
2023-01-14 19:33:31 -03:00
Fabio Belavenuto
936dccb19d Starting beta12: change grub menu colors and removed supportraidgroup from DS3622xs+ 2023-01-14 19:32:31 -03:00
Fabio Belavenuto
188ebcc0dd Merge pull request #498 from fbelavenuto/better-updater
Improving the updater to support folders
2023-01-12 19:42:39 -03:00
Fabio Belavenuto
269d3a3efe Improving the updater to support folders 2023-01-12 19:42:15 -03:00
Fabio Belavenuto
b52afda06b Merge pull request #497 from fbelavenuto/update-modules
Fix a bug into update modules
2023-01-12 16:15:20 -03:00
Fabio Belavenuto
2e7e5c3757 Fix a bug into update modules 2023-01-12 16:14:44 -03:00
Fabio Belavenuto
a8b6217264 Merge pull request #496 from fbelavenuto/docker
More docker adjustments
2023-01-12 16:07:01 -03:00
Fabio Belavenuto
bb302f2bae More docker adjustments 2023-01-12 16:06:48 -03:00
Fabio Belavenuto
6edf6cc290 Merge pull request #495 from fbelavenuto/grub-206
Grub2: bump version to 2.06, added EFI32
2023-01-12 10:47:54 -03:00
Fabio Belavenuto
31c16c7b9a Grub2: bump version to 2.06, added EFI32 2023-01-12 10:47:36 -03:00
Fabio Belavenuto
a3ecb56543 Merge pull request #494 from fbelavenuto/docker-changes
Just testing new functions to compile with docker
2023-01-11 20:51:54 -03:00
Fabio Belavenuto
e66f415ce0 Just testing new functions to compile with docker 2023-01-11 20:51:32 -03:00
Fabio Belavenuto
fb6c441159 Merge pull request #491 from fbelavenuto/1.0b11
starting beta11
2023-01-11 15:16:23 -03:00
Fabio Belavenuto
290cb8f888 starting beta11 2023-01-11 15:13:58 -03:00
Fabio Belavenuto
3f4b033e33 Merge pull request #490 from fbelavenuto/grub-fix
Fixing grub.cfg bug invalid font
2023-01-11 09:53:27 -03:00
Fabio Belavenuto
04fd54c754 Fixing grub.cfg bug invalid font
Removing unused grub locales
2023-01-11 09:53:14 -03:00
Fabio Belavenuto
56d0da1a63 Update VERSION 2023-01-10 19:45:41 -03:00
Fabio Belavenuto
8d73e73937 Merge pull request #486 from fbelavenuto/efi32
Changing EFI 32bit
2023-01-10 17:36:25 -03:00
Fabio Belavenuto
532e4c27f4 Changing EFI 32bit 2023-01-10 17:36:07 -03:00
Fabio Belavenuto
d93b15bd8e Merge pull request #485 from fbelavenuto/beta11
Starting beta11
2023-01-10 17:08:46 -03:00
Fabio Belavenuto
36a7930252 Starting beta11
fixing a buildroot bug
2023-01-10 17:08:31 -03:00
Fabio Belavenuto
43fc67d1a4 Merge pull request #483 from fbelavenuto/update-modules-bug
Fixing a bug into update modules, now the user modules is rebuilded
2023-01-10 12:44:49 -03:00
Fabio Belavenuto
a1c6610faa Fixing a bug into update modules, now the user modules is rebuilded 2023-01-10 12:44:34 -03:00
Fabio Belavenuto
8fe236521c Merge pull request #481 from fbelavenuto/shr-rs4021xs+
Adding support to SHR into RS4021xs+ model
2023-01-09 22:10:15 -03:00
Fabio Belavenuto
b019ede88d Adding support to SHR into RS4021xs+ model 2023-01-09 22:10:00 -03:00
Fabio Belavenuto
2c1a45f356 Merge pull request #480 from fbelavenuto/kexec
Changing to execute kexec on poweroff
2023-01-09 21:15:12 -03:00
Fabio Belavenuto
8875aa160b Changing to execute kexec on poweroff 2023-01-09 21:14:52 -03:00
Fabio Belavenuto
3a13b66c7a Update README.md
Adding Rikkie's tutorial link
2023-01-06 19:55:35 -03:00
Fabio Belavenuto
309e33f012 Merge pull request #478 from fbelavenuto/474-32bit-efi-cannot-boot
Adding EFI 32bit
2023-01-05 13:17:12 -03:00
Fabio Belavenuto
6e784213c6 Adding 2023-01-05 12:56:13 -03:00
Fabio Belavenuto
6d5177bb43 Merge pull request #476 from fbelavenuto/basic-changes
Showing kernel msgs, adding some tools like ethtool
2023-01-05 10:57:59 -03:00
Fabio Belavenuto
d5b61ed71a Showing kernel msgs, adding some tools like ethtool 2023-01-05 10:57:43 -03:00
Fabio Belavenuto
a32c9a4a94 Merge pull request #471 from wjz304/patch-1
fix the problem of the description keyword in the "parm" of ".ko"
2023-01-05 08:38:46 -03:00
Ing
9ffb0db2ae fix the problem of the description keyword in the "parm" of ".ko" 2023-01-04 17:37:07 +08:00
Fabio Belavenuto
8ddc54360d Merge pull request #468 from fbelavenuto/buildroot-tty2
Changing loader kernel to log to tty2
2023-01-03 16:29:41 -03:00
Fabio Belavenuto
791b95a246 Changing loader kernel to log to tty2 2023-01-03 16:28:55 -03:00
Fabio Belavenuto
87e79ec5b2 Merge pull request #467 from fbelavenuto/buildroot-ccache
Enabling Buildroot ccache
2023-01-03 14:11:32 -03:00
Fabio Belavenuto
8fb27bb625 Enabling Buildroot ccache 2023-01-03 14:11:15 -03:00
Fabio Belavenuto
8dffd613f9 Disabling SA6400 2022-12-21 13:17:06 -03:00
Fabio Belavenuto
bb08cc6d80 Merge pull request #447 from fbelavenuto/new-bzimage-template
New kernel 5.x bzImage template
2022-12-21 13:15:30 -03:00
Fabio Belavenuto
550cc2cbbd New kernel 5.x bzImage template
Other fixes
2022-12-21 13:15:11 -03:00
Fabio Belavenuto
d100d2f667 Merge pull request #444 from fbelavenuto/kernel5
Changing cmdline, models contains the LKM disparator now
2022-12-20 11:34:01 -03:00
Fabio Belavenuto
44217fc266 Changing cmdline, models contains the LKM disparator now 2022-12-20 11:33:39 -03:00
Fabio Belavenuto
55cbc83924 wip 2022-12-14 12:41:09 -03:00
Fabio Belavenuto
413c0c85ef Merge pull request #429 from fbelavenuto/beta10
Starting beta10
2022-12-13 11:44:28 -03:00
Fabio Belavenuto
c5d5eb5658 Starting beta10 2022-12-13 11:24:57 -03:00
Fabio Belavenuto
f7e6573703 Merge pull request #424 from fbelavenuto/actions-get-modules
Fixing Github actions to get latest modules
2022-12-12 15:22:04 -03:00
Fabio Belavenuto
811a6c6dde Fixing Github actions to get latest modules 2022-12-12 15:21:50 -03:00
Fabio Belavenuto
a954e10ae4 Merge pull request #423 from fbelavenuto/beta9
Creating beta9
2022-12-12 14:41:54 -03:00
Fabio Belavenuto
f5978543aa Creating beta9 2022-12-12 14:41:44 -03:00
Fabio Belavenuto
a261f827b4 Merge pull request #422 from fbelavenuto/wip
Wip
2022-12-12 14:40:21 -03:00
Fabio Belavenuto
d7bc78bd59 Removing binaries 2022-12-12 14:40:00 -03:00
Fabio Belavenuto
a30a131c65 removing binaries 2022-12-12 14:39:44 -03:00
Fabio Belavenuto
60ea3e7ba2 Merge pull request #421 from fbelavenuto/little-fixes
Some little fixes
2022-12-12 14:36:33 -03:00
Fabio Belavenuto
87c351c111 Some little fixes 2022-12-12 14:36:03 -03:00
Fabio Belavenuto
17a35c1dc7 Merge pull request #420 from jimmyGALLAND/main
Update vmlinux-to-bzImage.sh
2022-12-12 14:33:36 -03:00
jimmyGALLAND
6e3ae602bc Update vmlinux-to-bzImage.sh
Kernel 3 bromolow forget
2022-12-12 18:24:21 +01:00
Fabio Belavenuto
2edab6d5dd Merge pull request #418 from fbelavenuto/no-space-left
Fixing "No space left"
2022-12-12 10:07:18 -03:00
Fabio Belavenuto
39522773e5 Fixing "No space left" 2022-12-12 10:07:00 -03:00
Fabio Belavenuto
8a36f91e90 Merge pull request #417 from fbelavenuto/wip
Correct serial number for DS1520+, by Orphee
2022-12-12 08:19:00 -03:00
Fabio Belavenuto
5ef0c6bdcf Correct serial number for DS1520+, by Orphee 2022-12-12 08:18:29 -03:00
Fabio Belavenuto
094ad9c715 Merge pull request #403 from fbelavenuto/linux5
Linux5
2022-12-08 11:37:54 -03:00
Fabio Belavenuto
3010935eda EPYC7002 not ready 2022-12-08 11:36:52 -03:00
Fabio Belavenuto
e74366f17c SA6400 not yet ready 2022-12-08 11:16:58 -03:00
Fabio Belavenuto
9e2644c293 Adding support to boot kernel v5.x 2022-12-08 11:16:18 -03:00
Fabio Belavenuto
66ff2e6ace wip 2022-12-08 08:39:37 -03:00
Fabio Belavenuto
04935c7a14 Fix SA6400.yml 2022-12-07 21:30:59 -03:00
Fabio Belavenuto
0ba4c0332f Merge branch 'main' into linux5 2022-12-07 15:13:28 -03:00
Fabio Belavenuto
d194e501a8 Merge pull request #398 from fbelavenuto/serial-923
Updating DS923 serial number
2022-12-07 13:37:10 -03:00
Fabio Belavenuto
e5ee612511 Updating DS923 serial number 2022-12-07 13:36:59 -03:00
Fabio Belavenuto
2c6f55070d Merge pull request #397 from fbelavenuto/recovery-dsm
Added a menu to try recovery info from installed DSM
2022-12-07 13:36:22 -03:00
Fabio Belavenuto
a03716086b Added a menu to try recovery info from installed DSM 2022-12-07 13:36:11 -03:00
Fabio Belavenuto
1abd0fa4b7 Merge pull request #396 from fbelavenuto/beta8
Starting beta8
2022-12-07 13:34:48 -03:00
Fabio Belavenuto
c3dbe8fce7 Starting beta8 2022-12-07 13:34:34 -03:00
Fabio Belavenuto
8b9e4c7cec Merge pull request #393 from fbelavenuto/bins
Updating addons/lkms/modules
2022-12-07 10:16:36 -03:00
Fabio Belavenuto
40537993ff Updating addons/lkms/modules 2022-12-07 10:15:58 -03:00
Fabio Belavenuto
e1c6bd55c9 Merge pull request #390 from fbelavenuto/adding-version-p1
Adding version to a file in p1
2022-12-06 16:02:33 -03:00
Fabio Belavenuto
23820c56c3 Adding version to a file in p1 2022-12-06 16:02:18 -03:00
Fabio Belavenuto
9d0eb20e8a wip 2022-12-06 15:56:26 -03:00
Fabio Belavenuto
dfe345fe76 Merge branch 'main' into linux5 2022-12-05 11:02:25 -03:00
Fabio Belavenuto
675324c25b Merge pull request #384 from fbelavenuto/new-menu-adv
Adding a "advanced menu"
2022-12-05 08:57:59 -03:00
Fabio Belavenuto
71dc04fc1d Adding a "advanced menu" 2022-12-05 08:57:46 -03:00
Fabio Belavenuto
328dcbbd59 Merge pull request #376 from fbelavenuto/b7
Starting beta7: Improving disk space check
2022-12-01 13:17:25 -03:00
Fabio Belavenuto
db1001f2ad Starting beta7: Improving disk space check 2022-12-01 13:17:04 -03:00
Fabio Belavenuto
26a6f25428 testing Sa6400 2022-11-30 13:50:27 -03:00
989 changed files with 2152 additions and 869 deletions

View File

@@ -22,13 +22,45 @@ jobs:
path: .buildroot path: .buildroot
key: ${{ runner.os }}-${{ hashFiles('files/configs/arpl_defconfig') }} key: ${{ runner.os }}-${{ hashFiles('files/configs/arpl_defconfig') }}
# Install dependencies # Install dependencies
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libelf-dev qemu-utils sudo apt-get install -y libelf-dev qemu-utils
sudo cp -f files/board/arpl/overlayfs/usr/bin/yq /usr/bin/yq sudo cp -f files/board/arpl/overlayfs/usr/bin/yq /usr/bin/yq
# 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
# Prepare buildroot for first make (for cache) # Prepare buildroot for first make (for cache)
- name: Prepare buildroot - name: Prepare buildroot
if: steps.cache.outputs.cache-hit != 'true' if: steps.cache.outputs.cache-hit != 'true'
@@ -54,16 +86,10 @@ jobs:
rm -rf .buildroot/board/arpl/overlayfs rm -rf .buildroot/board/arpl/overlayfs
rm -rf .buildroot/board/arpl/p1 rm -rf .buildroot/board/arpl/p1
rm -rf .buildroot/board/arpl/p3 rm -rf .buildroot/board/arpl/p3
# Get latest LKMs # Unzip 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
rm -rf files/board/arpl/p3/lkms/* rm -rf files/board/arpl/p3/lkms/*
unzip /tmp/rp-lkms.zip -d files/board/arpl/p3/lkms unzip /tmp/rp-lkms.zip -d files/board/arpl/p3/lkms
# Get latest addons and install its # Install Addons
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
mkdir -p /tmp/addons mkdir -p /tmp/addons
unzip /tmp/addons.zip -d /tmp/addons unzip /tmp/addons.zip -d /tmp/addons
DEST_PATH="files/board/arpl/p3/addons" DEST_PATH="files/board/arpl/p3/addons"
@@ -77,6 +103,7 @@ jobs:
# Copy files # Copy files
echo "Copying files" echo "Copying files"
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
echo "${VERSION}" > files/board/arpl/p1/ARPL-VERSION
cp -Ru files/* .buildroot/ cp -Ru files/* .buildroot/
cd .buildroot cd .buildroot
echo "Generating default config" echo "Generating default config"
@@ -96,11 +123,20 @@ jobs:
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip" arpl-dyn.vmdk zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip" arpl-dyn.vmdk
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip" arpl.vmdk arpl-flat.vmdk zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip" arpl.vmdk arpl-flat.vmdk
sha256sum update-list.yml > sha256sum sha256sum update-list.yml > sha256sum
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | while read F; do zip -9j update.zip update-list.yml
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum while read F; do
done if [ -d "${F}" ]; then
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | xargs zip -9j "update.zip" sha256sum update-list.yml FTGZ="`basename "${F}"`.tgz"
tar czf "${FTGZ}" -C "${F}" .
sha256sum "${FTGZ}" >> sha256sum
zip -9j update.zip "${FTGZ}"
rm "${FTGZ}"
else
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
zip -9j update.zip "${F}"
fi
done < <(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)
zip -9j update.zip sha256sum
# Upload artifact # Upload artifact
- name: Upload - name: Upload
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3

4
.gitignore vendored
View File

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

View File

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

2
TODO
View File

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

View File

@@ -1 +1 @@
1.0-beta6 1.0-beta13a

View File

@@ -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}" && \ "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" && \ echo "Extracting ${PLATFORM}-toolchain.txz" && \
tar -xaf "/cache/${PLATFORM}-toolchain.txz" -C "/opt/${PLATFORM}" --strip-components=1; \ 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; \
done done
@@ -28,14 +35,15 @@ RUN apt update --yes && \
build-essential make ncurses-dev libssl-dev autogen automake pkg-config libtool xsltproc gperf && \ build-essential make ncurses-dev libssl-dev autogen automake pkg-config libtool xsltproc gperf && \
apt-get clean && \ apt-get clean && \
rm -rf /var/lib/apt/lists/* && \ rm -rf /var/lib/apt/lists/* && \
useradd --home-dir /input --no-create-home --shell /bin/bash --uid 1000 arpl && \ useradd --create-home --shell /bin/bash --uid 1000 --user-group arpl && \
echo "arpl ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/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/ / COPY files/ /
USER arpl
WORKDIR /input WORKDIR /input
VOLUME /input /output VOLUME /input /output
USER arpl
ENTRYPOINT ["/opt/do.sh"] ENTRYPOINT ["/opt/do.sh"]

View 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

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
CACHE_DIR="cache" CACHE_DIR="cache"
PLATFORM_FILE="../../PLATFORMS" PLATFORM_FILE="PLATFORMS"
############################################################################### ###############################################################################
function trap_cancel() { function trap_cancel() {
@@ -25,6 +25,7 @@ function prepare() {
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["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["epyc7002"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%20Linux%205.10.55%20%28epyc7002%29/epyc7002-${GCCLIB_VER}_x86_64-GPL.txz"
# Read platforms/kerver version # Read platforms/kerver version
echo "Reading platforms" echo "Reading platforms"
declare -A PLATFORMS declare -A PLATFORMS
@@ -40,7 +41,7 @@ function prepare() {
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... " echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
echo "Downloading ${URL}" echo -e "No\nDownloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
else else
echo "OK" echo "OK"
@@ -48,13 +49,25 @@ function prepare() {
echo -n "Checking ${CACHE_DIR}/${PLATFORM}-toolchain.txz... " echo -n "Checking ${CACHE_DIR}/${PLATFORM}-toolchain.txz... "
if [ ! -f "${CACHE_DIR}/${PLATFORM}-toolchain.txz" ]; then if [ ! -f "${CACHE_DIR}/${PLATFORM}-toolchain.txz" ]; then
URL=${URLS["${PLATFORM}"]} URL=${URLS["${PLATFORM}"]}
echo "Downloading ${URL}" echo -e "No\nDownloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/${PLATFORM}-toolchain.txz" curl -L "${URL}" -o "${CACHE_DIR}/${PLATFORM}-toolchain.txz"
else else
echo "OK" echo "OK"
fi fi
done 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 # Generate Dockerfile
echo "Generating Dockerfile" echo "Generating Dockerfile"
cp Dockerfile.template Dockerfile cp Dockerfile.template Dockerfile

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -eo pipefail
############################################################################### ###############################################################################
function export-vars() { function export-vars() {
@@ -18,12 +18,16 @@ function export-vars() {
export ARCH=x86_64 export ARCH=x86_64
export CC="x86_64-pc-linux-gnu-gcc" export CC="x86_64-pc-linux-gnu-gcc"
export LD="x86_64-pc-linux-gnu-ld" export LD="x86_64-pc-linux-gnu-ld"
export PATH="/opt/${1}/bin:${PATH}" 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() { 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 export-vars $2
shift 2 shift 2
bash -l $@ bash -l $@
@@ -47,11 +51,15 @@ function compile-module {
echo "Platform ${1} not found." echo "Platform ${1} not found."
exit 1 exit 1
fi fi
unset VALID
echo -e "Compiling module for \033[7m${PLATFORM}-${KVER}\033[0m..." echo -e "Compiling module for \033[7m${PLATFORM}-${KVER}\033[0m..."
cp -R /input /tmp cp -R /input /tmp
export-vars ${PLATFORM} export-vars ${PLATFORM}
make -C "/opt/${PLATFORM}/build" M="/tmp/input" \ PARMS="${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m"
${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules if [ -f "/tmp/input/defines.${1}" ]; then
PARMS+=" `cat "/tmp/input/defines.${1}" | xargs`"
fi
make -j`nproc` -C "/opt/${PLATFORM}/build" M="/tmp/input" ${PARMS} modules
while read F; do while read F; do
strip -g "${F}" strip -g "${F}"
echo "Copying `basename ${F}`" echo "Copying `basename ${F}`"

View 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

View File

@@ -3,7 +3,7 @@
set -e set -e
CACHE_DIR="cache" CACHE_DIR="cache"
PLATFORM_FILE="../../PLATFORMS" PLATFORM_FILE="PLATFORMS"
TOOLKIT_VER=7.1 TOOLKIT_VER=7.1
############################################################################### ###############################################################################

View File

@@ -6,7 +6,11 @@ set -e
function compile-module { function compile-module {
echo -e "Compiling module for \033[7m${PLATFORM}\033[0m..." echo -e "Compiling module for \033[7m${PLATFORM}\033[0m..."
cp -R /input /tmp cp -R /input /tmp
make -C ${KSRC} M=/tmp/input ${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules PARMS="${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m"
if [ -f "/tmp/input/defines.${PLATFORM}" ]; then
PARMS+=" `cat "/tmp/input/defines.${PLATFORM}" | xargs`"
fi
make -j`nproc` -C ${KSRC} M=/tmp/input ${PARMS} modules
while read F; do while read F; do
strip -g "${F}" strip -g "${F}"
echo "Copying `basename ${F}`" echo "Copying `basename ${F}`"

Binary file not shown.

View File

@@ -17,8 +17,18 @@ CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_CPUACCT=y
CONFIG_NAMESPACES=y
CONFIG_SYSFS_DEPRECATED=y
CONFIG_BLK_DEV_INITRD=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_KALLSYMS_ALL=y
CONFIG_KCMP=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_SMP=y CONFIG_SMP=y
@@ -31,8 +41,6 @@ CONFIG_NUMA=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y
# CONFIG_MTRR_SANITIZER is not set # CONFIG_MTRR_SANITIZER is not set
CONFIG_EFI=y CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y
CONFIG_HZ_1000=y CONFIG_HZ_1000=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y CONFIG_CRASH_DUMP=y
@@ -42,17 +50,19 @@ CONFIG_PM_TRACE_RTC=y
CONFIG_ACPI_VIDEO=y CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_DOCK=y CONFIG_ACPI_DOCK=y
CONFIG_ACPI_BGRT=y CONFIG_ACPI_BGRT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_X86_ACPI_CPUFREQ=y CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_POWERNOW_K8=y
CONFIG_INTEL_IDLE=y
CONFIG_IA32_EMULATION=y CONFIG_IA32_EMULATION=y
# CONFIG_VIRTUALIZATION is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y CONFIG_JUMP_LABEL=y
# CONFIG_GCC_PLUGINS is not set # CONFIG_GCC_PLUGINS is not set
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEBUG_FS is not set
CONFIG_PARTITION_ADVANCED=y CONFIG_PARTITION_ADVANCED=y
CONFIG_BINFMT_MISC=y CONFIG_BINFMT_MISC=y
CONFIG_NET=y CONFIG_NET=y
@@ -79,7 +89,8 @@ CONFIG_TCP_CONG_ADVANCED=y
# CONFIG_TCP_CONG_WESTWOOD is not set # CONFIG_TCP_CONG_WESTWOOD is not set
# CONFIG_TCP_CONG_HTCP is not set # CONFIG_TCP_CONG_HTCP is not set
CONFIG_TCP_MD5SIG=y CONFIG_TCP_MD5SIG=y
# CONFIG_IPV6 is not set CONFIG_IPV6=m
# CONFIG_IPV6_SIT is not set
CONFIG_NETLABEL=y CONFIG_NETLABEL=y
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
# CONFIG_NETFILTER_ADVANCED is not set # CONFIG_NETFILTER_ADVANCED is not set
@@ -92,7 +103,6 @@ CONFIG_NF_NAT=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_POLICY=y CONFIG_NETFILTER_XT_MATCH_POLICY=y
CONFIG_NETFILTER_XT_MATCH_STATE=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_REJECT=y
CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_MANGLE=y
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_NET_SCHED=y CONFIG_NET_SCHED=y
CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH=y
CONFIG_NET_CLS_ACT=y CONFIG_NET_CLS_ACT=y
@@ -115,6 +127,7 @@ CONFIG_FW_LOADER_COMPRESS=y
CONFIG_DEBUG_DEVRES=y CONFIG_DEBUG_DEVRES=y
CONFIG_CONNECTOR=y CONFIG_CONNECTOR=y
CONFIG_EFI_VARS=y CONFIG_EFI_VARS=y
# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=m CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_NVME=y CONFIG_BLK_DEV_NVME=y
@@ -353,24 +366,36 @@ CONFIG_HW_RANDOM=y
CONFIG_NVRAM=y CONFIG_NVRAM=y
CONFIG_HPET=y CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set # CONFIG_HPET_MMAP is not set
CONFIG_I2C=y
CONFIG_I2C_I801=y CONFIG_I2C_I801=y
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
CONFIG_AGP=y CONFIG_AGP=y
CONFIG_AGP_AMD64=y CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y CONFIG_AGP_INTEL=y
CONFIG_DRM=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y CONFIG_FIRMWARE_EDID=y
CONFIG_FB_TILEBLITTING=y CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y CONFIG_FB_VESA=y
CONFIG_FB_EFI=y CONFIG_FB_EFI=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_HIDRAW=y CONFIG_HIDRAW=y
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
CONFIG_HID_EZKEY=y
CONFIG_HID_GYRATION=y CONFIG_HID_GYRATION=y
CONFIG_HID_ITE=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
CONFIG_LOGITECH_FF=y CONFIG_LOGITECH_FF=y
CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_NTRIG=y CONFIG_HID_NTRIG=y
CONFIG_HID_PANTHERLORD=y CONFIG_HID_PANTHERLORD=y
CONFIG_PANTHERLORD_FF=y CONFIG_PANTHERLORD_FF=y
@@ -410,6 +435,7 @@ CONFIG_LEDS_TRIGGERS=y
CONFIG_RTC_CLASS=y CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set # CONFIG_RTC_HCTOSYS is not set
CONFIG_DMADEVICES=y CONFIG_DMADEVICES=y
CONFIG_SYNC_FILE=y
CONFIG_VIRT_DRIVERS=y CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m CONFIG_VBOXGUEST=m
CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI=m
@@ -440,7 +466,9 @@ CONFIG_AUTOFS4_FS=y
CONFIG_MSDOS_FS=y CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_PROC_KCORE=y CONFIG_PROC_KCORE=y
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y CONFIG_HUGETLBFS=y
CONFIG_EFIVAR_FS=y
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y CONFIG_NFS_V4=y
@@ -473,7 +501,6 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_CRC_CCITT=y CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_SCHED_DEBUG is not set # CONFIG_SCHED_DEBUG is not set
CONFIG_SCHEDSTATS=y CONFIG_SCHEDSTATS=y

View File

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

View File

@@ -18,9 +18,6 @@ printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
TITLE="BOOTING..." TITLE="BOOTING..."
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}" printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
history -w
sync
# Check if DSM zImage changed, patch it if necessary # Check if DSM zImage changed, patch it if necessary
ZIMAGE_HASH="`readConfigKey "zimage-hash" "${USER_CONFIG_FILE}"`" ZIMAGE_HASH="`readConfigKey "zimage-hash" "${USER_CONFIG_FILE}"`"
if [ "`sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}'`" != "${ZIMAGE_HASH}" ]; then 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 if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" \ dialog --backtitle "`backtitle`" --title "Error" \
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 12 70 --msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 12 70
return 1 exit 1
fi fi
fi fi
@@ -41,7 +38,7 @@ if [ "`sha256sum "${ORI_RDGZ_FILE}" | awk '{print$1}'`" != "${RAMDISK_HASH}" ];
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" \ dialog --backtitle "`backtitle`" --title "Error" \
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 12 70 --msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 12 70
return 1 exit 1
fi fi
fi fi
@@ -78,7 +75,7 @@ done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
# Check if machine has EFI # Check if machine has EFI
[ -d /sys/firmware/efi ] && EFI=1 || EFI=0 [ -d /sys/firmware/efi ] && EFI=1 || EFI=0
# Read EFI bug value # Read EFI bug value
EFI_BUG="`readModelKey "${MODEL}" "builds.${BUILD}.efi-bug"`" [ "${MODEL}" = "DS3615" ] && EFI_BUG=1 || EFI_BUG=0
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`" LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2` BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2`
@@ -106,7 +103,7 @@ grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " [ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} " [ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
CMDLINE_DIRECT="${CMDLINE_LINE}" CMDLINE_DIRECT="${CMDLINE_LINE}"
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15" CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
for KEY in ${!CMDLINE[@]}; do for KEY in ${!CMDLINE[@]}; do
VALUE="${CMDLINE[${KEY}]}" VALUE="${CMDLINE[${KEY}]}"
CMDLINE_LINE+=" ${KEY}" CMDLINE_LINE+=" ${KEY}"
@@ -142,8 +139,7 @@ if [ "${DIRECT}" = "true" ]; then
echo -e "\033[1;33mReboot to boot directly in DSM\033[0m" echo -e "\033[1;33mReboot to boot directly in DSM\033[0m"
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct" grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
reboot reboot
sleep 100 exit 0
exit
fi fi
echo -e "\033[1;37mLoading DSM kernel...\033[0m" echo -e "\033[1;37mLoading DSM kernel...\033[0m"
@@ -154,7 +150,6 @@ if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
else else
kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
fi fi
/sbin/swapoff -a >/dev/null 2>&1 || true
/bin/umount -a -r >/dev/null 2>&1 || true
echo -e "\033[1;37mBooting...\033[0m" echo -e "\033[1;37mBooting...\033[0m"
kexec -e -a >"${LOG_FILE}" 2>&1 || dieLog poweroff
exit 0

View File

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

View File

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

View File

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

View File

@@ -37,6 +37,7 @@ fsck.ext2 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
mkdir -p ${BOOTLOADER_PATH} mkdir -p ${BOOTLOADER_PATH}
mkdir -p ${SLPART_PATH} mkdir -p ${SLPART_PATH}
mkdir -p ${CACHE_PATH} mkdir -p ${CACHE_PATH}
mkdir -p ${DSMROOT_PATH}
# Mount the partitions # Mount the partitions
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}" mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}" mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"
@@ -49,7 +50,10 @@ ln -s "${CACHE_PATH}/ssh" "/etc/ssh"
# Link bash history to cache volume # Link bash history to cache volume
rm -rf ~/.bash_history rm -rf ~/.bash_history
ln -s ${CACHE_PATH}/.bash_history ~/.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 # Check if exists directories into P3 partition, if yes remove and link it
if [ -d "${CACHE_PATH}/model-configs" ]; then if [ -d "${CACHE_PATH}/model-configs" ]; then
rm -rf "${MODEL_CONFIG_PATH}" rm -rf "${MODEL_CONFIG_PATH}"
@@ -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 zcat /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz | loadkeys
fi fi
# Enable Wake on Lan, ignore errors
ethtool -s eth0 wol g 2>/dev/null
# Decide if boot automatically # Decide if boot automatically
BOOT=1 BOOT=1
if ! loaderIsConfigured; then if ! loaderIsConfigured; then
@@ -154,7 +161,9 @@ elif grep -q "IWANTTOCHANGETHECONFIG" /proc/cmdline; then
fi fi
# If is to boot automatically, do it # 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 # Wait for an IP
COUNT=0 COUNT=0

View File

@@ -61,74 +61,83 @@ function backtitle() {
############################################################################### ###############################################################################
# Shows available models to user choose one # Shows available models to user choose one
function modelMenu() { function modelMenu() {
RESTRICT=1 if [ -z "${1}" ]; then
FLGBETA=0 RESTRICT=1
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \ FLGBETA=0
--infobox "Reading models" 0 0 dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
while true; do --infobox "Reading models" 0 0
echo "" > "${TMP_PATH}/menu" while true; do
FLGNEX=0 echo "" > "${TMP_PATH}/menu"
while read M; do FLGNEX=0
M="`basename ${M}`" while read M; do
M="${M::-4}" M="`basename ${M}`"
PLATFORM=`readModelKey "${M}" "platform"` M="${M::-4}"
DT="`readModelKey "${M}" "dt"`" PLATFORM=`readModelKey "${M}" "platform"`
BETA="`readModelKey "${M}" "beta"`" DT="`readModelKey "${M}" "dt"`"
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue BETA="`readModelKey "${M}" "beta"`"
# Check id model is compatible with CPU [ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
COMPATIBLE=1 # Check id model is compatible with CPU
if [ ${RESTRICT} -eq 1 ]; then COMPATIBLE=1
for F in `readModelArray "${M}" "flags"`; do if [ ${RESTRICT} -eq 1 ]; then
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then for F in `readModelArray "${M}" "flags"`; do
COMPATIBLE=0 if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
FLGNEX=1 COMPATIBLE=0
break FLGNEX=1
fi break
done fi
done
fi
[ "${DT}" = "true" ] && DT="-DT" || DT=""
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ "${resp}" = "f" ]; then
RESTRICT=0
continue
fi fi
[ "${DT}" = "true" ] && DT="-DT" || DT="" if [ "${resp}" = "b" ]; then
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu" FLGBETA=1
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort) continue
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu" fi
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu" break
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \ done
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp else
[ $? -ne 0 ] && return resp="${1}"
resp=$(<${TMP_PATH}/resp) fi
[ -z "${resp}" ] && return # If user change model, clean buildnumber and S/N
if [ "${resp}" = "f" ]; then if [ "${MODEL}" != "${resp}" ]; then
RESTRICT=0 MODEL=${resp}
continue writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
fi BUILD=""
if [ "${resp}" = "b" ]; then writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
FLGBETA=1 SN=""
continue writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
fi # Delete old files
# If user change model, clean buildnumber and S/N rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
if [ "${MODEL}" != "${resp}" ]; then DIRTY=1
MODEL=${resp} fi
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
BUILD=""
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
SN=""
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
# Delete old files
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
DIRTY=1
fi
break
done
} }
############################################################################### ###############################################################################
# Shows available buildnumbers from a model to user choose one # Shows available buildnumbers from a model to user choose one
function buildMenu() { function buildMenu() {
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`" ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
dialog --clear --no-items --backtitle "`backtitle`" \ if [ -z "${1}" ]; then
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp dialog --clear --no-items --backtitle "`backtitle`" \
[ $? -ne 0 ] && return --menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
resp=$(<${TMP_PATH}/resp) [ $? -ne 0 ] && return
[ -z "${resp}" ] && return resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
else
if ! arrayExistItem "${1}" ${ITEMS}; then return; fi
resp="${1}"
fi
if [ "${BUILD}" != "${resp}" ]; then if [ "${BUILD}" != "${resp}" ]; then
dialog --backtitle "`backtitle`" --title "Build Number" \ dialog --backtitle "`backtitle`" --title "Build Number" \
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0 --infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
@@ -529,6 +538,298 @@ function synoinfoMenu() {
done done
} }
###############################################################################
# Extract linux and ramdisk files from the DSM .pat
function extractDsmFiles() {
PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`"
PAT_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.hash"`"
RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`"
ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`"
# If we have little disk space, clean cache folder
if [ ${CLEARCACHE} -eq 1 ]; then
echo "Cleaning cache"
rm -rf "${CACHE_PATH}/dl"
fi
mkdir -p "${CACHE_PATH}/dl"
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` # Check disk space left
PAT_FILE="${MODEL}-${BUILD}.pat"
PAT_PATH="${CACHE_PATH}/dl/${PAT_FILE}"
EXTRACTOR_PATH="${CACHE_PATH}/extractor"
EXTRACTOR_BIN="syno_extract_system_patch"
OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
if [ -f "${PAT_PATH}" ]; then
echo "${PAT_FILE} cached."
else
echo "Downloading ${PAT_FILE}"
# Discover remote file size
FILESIZE=`curl --insecure -sLI "${PAT_URL}" | grep -i Content-Length | awk '{print$2}'`
if [ 0${FILESIZE} -ge ${SPACELEFT} ]; then
# No disk space to download, change it to RAMDISK
PAT_PATH="${TMP_PATH}/${PAT_FILE}"
fi
STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
rm "${PAT_PATH}"
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
--msgbox "Check internet or cache disk space" 0 0
return 1
fi
fi
echo -n "Checking hash of ${PAT_FILE}: "
if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Hash of pat not match, try again!" 0 0
rm -f ${PAT_PATH}
return 1
fi
echo "OK"
rm -rf "${UNTAR_PAT_PATH}"
mkdir "${UNTAR_PAT_PATH}"
echo -n "Disassembling ${PAT_FILE}: "
header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')"
case ${header} in
105)
echo "Uncompressed tar"
isencrypted="no"
;;
213)
echo "Compressed tar"
isencrypted="no"
;;
255)
echo "Encrypted"
isencrypted="yes"
;;
*)
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \
0 0
return 1
;;
esac
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` # Check disk space left
if [ "${isencrypted}" = "yes" ]; then
# Check existance of extractor
if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then
echo "Extractor cached."
else
# Extractor not exists, get it.
mkdir -p "${EXTRACTOR_PATH}"
# Check if old pat already downloaded
OLDPAT_PATH="${CACHE_PATH}/dl/DS3622xs+-42218.pat"
if [ ! -f "${OLDPAT_PATH}" ]; then
echo "Downloading old pat to extract synology .pat extractor..."
# Discover remote file size
FILESIZE=`curl --insecure -sLI "${OLDPAT_URL}" | grep -i Content-Length | awk '{print$2}'`
if [ 0${FILESIZE} -ge ${SPACELEFT} ]; then
# No disk space to download, change it to RAMDISK
OLDPAT_PATH="${TMP_PATH}/DS3622xs+-42218.pat"
fi
STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
rm "${OLDPAT_PATH}"
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
--msgbox "Check internet or cache disk space" 0 0
return 1
fi
fi
# Extract DSM ramdisk file from PAT
rm -rf "${RAMDISK_PATH}"
mkdir -p "${RAMDISK_PATH}"
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
if [ $? -ne 0 ]; then
rm -f "${OLDPAT_PATH}"
rm -rf "${RAMDISK_PATH}"
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
return 1
fi
[ ${CLEARCACHE} -eq 1 ] && rm -f "${OLDPAT_PATH}"
# Extract all files from rd.gz
(cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true
# Copy only necessary files
for f in libcurl.so.4 libmbedcrypto.so.5 libmbedtls.so.13 libmbedx509.so.1 libmsgpackc.so.2 libsodium.so libsynocodesign-ng-virtual-junior-wins.so.7; do
cp "${RAMDISK_PATH}/usr/lib/${f}" "${EXTRACTOR_PATH}"
done
cp "${RAMDISK_PATH}/usr/syno/bin/scemd" "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}"
rm -rf "${RAMDISK_PATH}"
fi
# Uses the extractor to untar pat file
echo "Extracting..."
LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${UNTAR_PAT_PATH}" || true
else
echo "Extracting..."
tar -xf "${PAT_PATH}" -C "${UNTAR_PAT_PATH}" >"${LOG_FILE}" 2>&1
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
fi
fi
echo -n "Checking hash of zImage: "
HASH="`sha256sum ${UNTAR_PAT_PATH}/zImage | awk '{print$1}'`"
if [ "${HASH}" != "${ZIMAGE_HASH}" ]; then
sleep 1
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Hash of zImage not match, try again!" 0 0
return 1
fi
echo "OK"
writeConfigKey "zimage-hash" "${ZIMAGE_HASH}" "${USER_CONFIG_FILE}"
echo -n "Checking hash of ramdisk: "
HASH="`sha256sum ${UNTAR_PAT_PATH}/rd.gz | awk '{print$1}'`"
if [ "${HASH}" != "${RAMDISK_HASH}" ]; then
sleep 1
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Hash of ramdisk not match, try again!" 0 0
return 1
fi
echo "OK"
writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}"
echo -n "Copying files: "
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}"
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}"
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}"
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}"
cp "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}"
cp "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}"
rm -rf "${UNTAR_PAT_PATH}"
echo "OK"
}
###############################################################################
# Where the magic happens!
function make() {
clear
PLATFORM="`readModelKey "${MODEL}" "platform"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
# Check if all addon exists
while IFS="=" read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Addon ${ADDON} not found!" 0 0
return 1
fi
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
[ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ] && extractDsmFiles
/opt/arpl/zimage-patch.sh
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 0 0
return 1
fi
/opt/arpl/ramdisk-patch.sh
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 0 0
return 1
fi
echo "Cleaning"
rm -rf "${UNTAR_PAT_PATH}"
echo "Ready!"
sleep 3
DIRTY=0
return 0
}
###############################################################################
# Advanced menu
function advancedMenu() {
NEXT="l"
while true; do
rm "${TMP_PATH}/menu"
if [ -n "${BUILD}" ]; then
echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu"
echo "o \"Modules\"" >> "${TMP_PATH}/menu"
fi
if loaderIsConfigured; then
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"" >> "${TMP_PATH}/menu"
fi
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
echo "t \"Try to recovery a DSM installed system\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --default-item ${NEXT} --backtitle "`backtitle`" --title "Advanced" \
--colors --menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && break
case `<"${TMP_PATH}/resp"` in
l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev'
writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}"
DIRTY=1
NEXT="o"
;;
o) selectModules; NEXT="r" ;;
r) [ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false'
writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}"
NEXT="u"
;;
u) editUserConfig; NEXT="e" ;;
t) tryRecoveryDSM ;;
e) break ;;
esac
done
}
###############################################################################
# Try to recovery a DSM already installed
function tryRecoveryDSM() {
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
--infobox "Trying to recovery a DSM installed system" 0 0
if findAndMountDSMRoot; then
MODEL=""
BUILD=""
if [ -f "${DSMROOT_PATH}/.syno/patch/VERSION" ]; then
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep unique`
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep base`
if [ -n "${unique}" ] ; then
while read F; do
M="`basename ${F}`"
M="${M::-4}"
UNIQUE=`readModelKey "${M}" "unique"`
[ "${unique}" = "${UNIQUE}" ] || continue
# Found
modelMenu "${M}"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
if [ -n "${MODEL}" ]; then
buildMenu ${base}
if [ -n "${BUILD}" ]; then
cp "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
cp "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
MSG="Found a installation:\nModel: ${MODEL}\nBuildnumber: ${BUILD}"
SN=`_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf"`
if [ -n "${SN}" ]; then
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
MSG+="\nSerial: ${SN}"
fi
dialog --backtitle "`backtitle`" --title "Try recovery DSM" \
--aspect 18 --msgbox "${MSG}" 0 0
fi
fi
fi
fi
else
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
--msgbox "Unfortunately I couldn't mount the DSM partition!" 0 0
fi
}
############################################################################### ###############################################################################
# Permit user select the modules to include # Permit user select the modules to include
function selectModules() { function selectModules() {
@@ -608,206 +909,6 @@ function selectModules() {
done done
} }
###############################################################################
# Extract linux and ramdisk files from the DSM .pat
function extractDsmFiles() {
PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`"
PAT_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.hash"`"
RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`"
ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`"
OUT_PATH="${CACHE_PATH}/dl"
if [ ${CLEARCACHE} -eq 1 ]; then
echo "Cleaning cache"
rm -rf "${OUT_PATH}"
fi
mkdir -p "${OUT_PATH}"
PAT_FILE="${MODEL}-${BUILD}.pat"
PAT_PATH="${OUT_PATH}/${PAT_FILE}"
EXTRACTOR_PATH="${CACHE_PATH}/extractor"
EXTRACTOR_BIN="syno_extract_system_patch"
OLDPAT_URL="https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
OLDPAT_PATH="${OUT_PATH}/DS3622xs+-42218.pat"
if [ -f "${PAT_PATH}" ]; then
echo "${PAT_FILE} cached."
else
echo "Downloading ${PAT_FILE}"
STATUS=`curl --insecure -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_PATH}" --progress-bar`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
--msgbox "Check internet or cache disk space" 0 0
return 1
fi
fi
echo -n "Checking hash of ${PAT_FILE}: "
if [ "`sha256sum ${PAT_PATH} | awk '{print$1}'`" != "${PAT_HASH}" ]; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Hash of pat not match, try again!" 0 0
rm -f ${PAT_PATH}
return 1
fi
echo "OK"
rm -rf "${UNTAR_PAT_PATH}"
mkdir "${UNTAR_PAT_PATH}"
echo -n "Disassembling ${PAT_FILE}: "
header="$(od -bcN2 ${PAT_PATH} | head -1 | awk '{print $3}')"
case ${header} in
105)
echo "Uncompressed tar"
isencrypted="no"
;;
213)
echo "Compressed tar"
isencrypted="no"
;;
255)
echo "Encrypted"
isencrypted="yes"
;;
*)
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Could not determine if pat file is encrypted or not, maybe corrupted, try again!" \
0 0
return 1
;;
esac
if [ "${isencrypted}" = "yes" ]; then
# Check existance of extractor
if [ -f "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" ]; then
echo "Extractor cached."
else
# Extractor not exists, get it.
mkdir -p "${EXTRACTOR_PATH}"
# Check if old pat already downloaded
if [ ! -f "${OLDPAT_PATH}" ]; then
echo "Downloading old pat to extract synology .pat extractor..."
STATUS=`curl --insecure -w "%{http_code}" -L "${OLDPAT_URL}" -o "${OLDPAT_PATH}" --progress-bar`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
dialog --backtitle "`backtitle`" --title "Error downloading" --aspect 18 \
--msgbox "Check internet or cache disk space" 0 0
return 1
fi
fi
# Extract ramdisk from PAT
rm -rf "${RAMDISK_PATH}"
mkdir -p "${RAMDISK_PATH}"
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
fi
rm "${OLDPAT_PATH}"
# Extract all files from rd.gz
(cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true
# Copy only necessary files
for f in libcurl.so.4 libmbedcrypto.so.5 libmbedtls.so.13 libmbedx509.so.1 libmsgpackc.so.2 libsodium.so libsynocodesign-ng-virtual-junior-wins.so.7; do
cp "${RAMDISK_PATH}/usr/lib/${f}" "${EXTRACTOR_PATH}"
done
cp "${RAMDISK_PATH}/usr/syno/bin/scemd" "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}"
rm -rf "${RAMDISK_PATH}"
fi
# Uses the extractor to untar pat file
echo "Extracting..."
LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${UNTAR_PAT_PATH}" || true
else
echo "Extracting..."
tar -xf "${PAT_PATH}" -C "${UNTAR_PAT_PATH}" >"${LOG_FILE}" 2>&1
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
fi
fi
echo -n "Checking hash of zImage: "
HASH="`sha256sum ${UNTAR_PAT_PATH}/zImage | awk '{print$1}'`"
if [ "${HASH}" != "${ZIMAGE_HASH}" ]; then
sleep 1
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Hash of zImage not match, try again!" 0 0
return 1
fi
echo "OK"
writeConfigKey "zimage-hash" "${ZIMAGE_HASH}" "${USER_CONFIG_FILE}"
echo -n "Checking hash of ramdisk: "
HASH="`sha256sum ${UNTAR_PAT_PATH}/rd.gz | awk '{print$1}'`"
if [ "${HASH}" != "${RAMDISK_HASH}" ]; then
sleep 1
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Hash of ramdisk not match, try again!" 0 0
return 1
fi
echo "OK"
writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}"
echo -n "Copying files: "
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}"
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}"
cp "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}"
cp "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}"
cp "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}"
cp "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}"
echo "OK"
}
###############################################################################
# Where the magic happens!
function make() {
clear
PLATFORM="`readModelKey "${MODEL}" "platform"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
# Check if all addon exists
while IFS="=" read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Addon ${ADDON} not found!" 0 0
return 1
fi
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
[ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ] && extractDsmFiles
/opt/arpl/zimage-patch.sh
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 0 0
return 1
fi
/opt/arpl/ramdisk-patch.sh
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 0 0
return 1
fi
echo "Cleaning"
rm -rf "${UNTAR_PAT_PATH}"
echo "Ready!"
sleep 3
DIRTY=0
return 0
}
###############################################################################
# Calls boot.sh to boot into DSM kernel/ramdisk
function boot() {
[ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \
--yesno "Config changed, would you like to rebuild the loader?" 0 0
if [ $? -eq 0 ]; then
make || return
fi
boot.sh
}
############################################################################### ###############################################################################
# Permits user edit the user config # Permits user edit the user config
function editUserConfig() { function editUserConfig() {
@@ -834,6 +935,17 @@ function editUserConfig() {
DIRTY=1 DIRTY=1
} }
###############################################################################
# Calls boot.sh to boot into DSM kernel/ramdisk
function boot() {
[ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \
--yesno "Config changed, would you like to rebuild the loader?" 0 0
if [ $? -eq 0 ]; then
make || return
fi
boot.sh
}
############################################################################### ###############################################################################
# Shows available keymaps to user choose one # Shows available keymaps to user choose one
function keymapMenu() { function keymapMenu() {
@@ -856,11 +968,13 @@ function keymapMenu() {
KEYMAP=${resp} KEYMAP=${resp}
writeConfigKey "layout" "${LAYOUT}" "${USER_CONFIG_FILE}" writeConfigKey "layout" "${LAYOUT}" "${USER_CONFIG_FILE}"
writeConfigKey "keymap" "${KEYMAP}" "${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() { function updateMenu() {
PLATFORM="`readModelKey "${MODEL}" "platform"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
while true; do while true; do
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \ dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
a "Update arpl" \ a "Update arpl" \
@@ -912,17 +1026,24 @@ function updateMenu() {
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--infobox "Installing new files" 0 0 --infobox "Installing new files" 0 0
# Process update-list.yml # Process update-list.yml
while IFS="=" read KEY VALUE; do
mv /tmp/`basename "${KEY}"` "${VALUE}"
done < <(readConfigMap "replace" "/tmp/update-list.yml")
while read F; do while read F; do
[ -f "${F}" ] && rm -f "${F}" [ -f "${F}" ] && rm -f "${F}"
[ -d "${F}" ] && rm -Rf "${F}" [ -d "${F}" ] && rm -Rf "${F}"
done < <(readConfigArray "remove" "/tmp/update-list.yml") done < <(readConfigArray "remove" "/tmp/update-list.yml")
while IFS="=" read KEY VALUE; do
if [ "${KEY: -1}" = "/" ]; then
rm -Rf "${VALUE}"
mkdir -p "${VALUE}"
gzip -dc "/tmp/`basename "${KEY}"`.tgz" | tar xf - -C "${VALUE}"
else
mkdir -p "`dirname "${VALUE}"`"
mv "/tmp/`basename "${KEY}"`" "${VALUE}"
fi
done < <(readConfigMap "replace" "/tmp/update-list.yml")
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0 --yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
reboot arpl-reboot.sh config
exit exit
;; ;;
@@ -950,6 +1071,7 @@ function updateMenu() {
unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1 unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1
dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \
--infobox "Installing new addons" 0 0 --infobox "Installing new addons" 0 0
rm -Rf "${ADDONS_PATH}/"*
for PKG in `ls /tmp/addons/*.addon`; do for PKG in `ls /tmp/addons/*.addon`; do
ADDON=`basename ${PKG} | sed 's|.addon||'` ADDON=`basename ${PKG} | sed 's|.addon||'`
rm -rf "${ADDONS_PATH}/${ADDON}" rm -rf "${ADDONS_PATH}/${ADDON}"
@@ -1019,6 +1141,13 @@ function updateMenu() {
rm "${MODULES_PATH}/${P}.tgz" rm "${MODULES_PATH}/${P}.tgz"
mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz" mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz"
done done
# Rebuild modules if model/buildnumber is selected
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done < <(getAllModules "${PLATFORM}" "${KVER}")
fi
DIRTY=1 DIRTY=1
dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \ dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \
--msgbox "Modules updated with success!" 0 0 --msgbox "Modules updated with success!" 0 0
@@ -1033,7 +1162,7 @@ function updateMenu() {
if [ "x$1" = "xb" -a -n "${MODEL}" -a -n "${BUILD}" -a loaderIsConfigured ]; then if [ "x$1" = "xb" -a -n "${MODEL}" -a -n "${BUILD}" -a loaderIsConfigured ]; then
make make
boot boot && exit 0 || sleep 5
fi fi
# Main loop # Main loop
NEXT="m" NEXT="m"
@@ -1046,21 +1175,25 @@ while true; do
echo "a \"Addons\"" >> "${TMP_PATH}/menu" echo "a \"Addons\"" >> "${TMP_PATH}/menu"
echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu" echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu"
echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu" echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu"
echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu" fi
echo "o \"Modules\"" >> "${TMP_PATH}/menu" fi
echo "v \"Advanced menu\"" >> "${TMP_PATH}/menu"
if [ -n "${MODEL}" ]; then
if [ -n "${BUILD}" ]; then
echo "d \"Build the loader\"" >> "${TMP_PATH}/menu" echo "d \"Build the loader\"" >> "${TMP_PATH}/menu"
fi fi
fi fi
if loaderIsConfigured; then if loaderIsConfigured; then
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"">> "${TMP_PATH}/menu"
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu" echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
fi fi
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu" echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
[ ${CLEARCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ] && echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu" if [ ${CLEARCACHE} -eq 1 -a -d "${CACHE_PATH}/dl" ]; then
echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
fi
echo "p \"Update menu\"" >> "${TMP_PATH}/menu" echo "p \"Update menu\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu" echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --clear --default-item ${NEXT} --backtitle "`backtitle`" --colors \
dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \
--menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \ --menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
2>${TMP_PATH}/resp 2>${TMP_PATH}/resp
[ $? -ne 0 ] && break [ $? -ne 0 ] && break
@@ -1070,20 +1203,10 @@ while true; do
s) serialMenu; NEXT="a" ;; s) serialMenu; NEXT="a" ;;
a) addonMenu; NEXT="x" ;; a) addonMenu; NEXT="x" ;;
x) cmdlineMenu; NEXT="i" ;; x) cmdlineMenu; NEXT="i" ;;
i) synoinfoMenu; NEXT="l" ;; i) synoinfoMenu; NEXT="v" ;;
l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev' v) advancedMenu; NEXT="d" ;;
writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}" d) make; NEXT="b" ;;
DIRTY=1 b) boot && exit 0 || sleep 5 ;;
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" ;;
k) keymapMenu ;; k) keymapMenu ;;
c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \ c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \
--prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;; --prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;;
@@ -1093,4 +1216,3 @@ while true; do
done done
clear clear
echo -e "Call \033[1;32mmenu.sh\033[0m to return to menu" echo -e "Call \033[1;32mmenu.sh\033[0m to return to menu"

View File

@@ -6,6 +6,7 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
intel_iommu: igfx_off intel_iommu: igfx_off
HddEnableDynamicPower: 1 HddEnableDynamicPower: 1
@@ -13,14 +14,15 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "geminilake" platform: "geminilake"
unique: "synology_geminilake_1520+" unique: "synology_geminilake_1520+"
beta: true beta: true
dom: 2 dom: 2
serial: serial:
prefix: prefix:
- "0000" - "2060"
middle: "XXX" middle: "RYR"
suffix: "alpha" suffix: "alpha"
disks: 6 disks: 6
dt: true dt: true
@@ -29,7 +31,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -50,7 +51,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -71,7 +71,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -6,6 +6,7 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
SMBusHddDynamicPower: 1 SMBusHddDynamicPower: 1
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
@@ -16,6 +17,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000" platform: "v1000"
unique: "synology_v1000_1621+" unique: "synology_v1000_1621+"
dom: 2 dom: 2
@@ -31,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +53,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -73,7 +73,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -2,12 +2,12 @@ id: "DS2422+"
synoinfo: &synoinfo synoinfo: &synoinfo
support_disk_compatibility: "no" support_disk_compatibility: "no"
support_memory_compatibility: "no" support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no" supportssdcache: "no"
support_led_brightness_adjustment: "no" support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
SMBusHddDynamicPower: 1 SMBusHddDynamicPower: 1
vender_format_version: 2 vender_format_version: 2
@@ -16,6 +16,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000" platform: "v1000"
unique: "synology_v1000_2422+" unique: "synology_v1000_2422+"
dom: 2 dom: 2
@@ -32,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +52,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -73,7 +72,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -2,19 +2,20 @@ id: "DS3615xs"
synoinfo: &synoinfo synoinfo: &synoinfo
support_disk_compatibility: "no" support_disk_compatibility: "no"
support_memory_compatibility: "no" support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no" supportssdcache: "no"
esataportcfg: "0x0" esataportcfg: "0x0"
usbportcfg: "0x8700" usbportcfg: "0x8700"
support_led_brightness_adjustment: "no" support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "bromolow" platform: "bromolow"
unique: "synology_bromolow_3615xs" unique: "synology_bromolow_3615xs"
serial: serial:
@@ -32,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "3.10.108" kver: "3.10.108"
rd-compressed: false rd-compressed: false
efi-bug: yes
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -54,7 +54,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "3.10.108" kver: "3.10.108"
rd-compressed: false rd-compressed: false
efi-bug: yes
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -76,7 +75,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "3.10.108" kver: "3.10.108"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -2,19 +2,20 @@ id: "DS3617xs"
synoinfo: &synoinfo synoinfo: &synoinfo
support_disk_compatibility: "no" support_disk_compatibility: "no"
support_memory_compatibility: "no" support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no" supportssdcache: "no"
esataportcfg: "0x00" esataportcfg: "0x00"
usbportcfg: "0x8700" usbportcfg: "0x8700"
support_led_brightness_adjustment: "no" support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "broadwell" platform: "broadwell"
unique: "synology_broadwell_3617xs" unique: "synology_broadwell_3617xs"
dom: 1 dom: 1
@@ -32,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -54,7 +54,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -76,7 +75,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -2,7 +2,6 @@ id: "DS3622xs+"
synoinfo: &synoinfo synoinfo: &synoinfo
support_disk_compatibility: "no" support_disk_compatibility: "no"
support_memory_compatibility: "no" support_memory_compatibility: "no"
supportraidgroup: "no"
esataportcfg: "0x00" esataportcfg: "0x00"
support_bde_internal_10g: "no" support_bde_internal_10g: "no"
support_oob_ctl: "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: "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_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 rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" # https://update7.synology.com/autoupdate/v2/getList
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "broadwellnk" platform: "broadwellnk"
unique: "synology_broadwellnk_3622xs+" unique: "synology_broadwellnk_3622xs+"
dom: 1 dom: 1
@@ -33,7 +34,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -55,7 +55,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -77,7 +76,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -9,13 +9,15 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#support_ssd_cache: yes #support_ssd_cache: "yes"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "apollolake" platform: "apollolake"
unique: "synology_apollolake_918+" unique: "synology_apollolake_918+"
dom: 2 dom: 2
@@ -35,7 +37,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -57,7 +58,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -79,7 +79,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -6,6 +6,7 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
intel_iommu: "igfx_off" intel_iommu: "igfx_off"
HddEnableDynamicPower: 1 HddEnableDynamicPower: 1
@@ -13,6 +14,7 @@ cmdline: &cmdline
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
vender_format_version: 2 vender_format_version: 2
elevator: elevator
platform: "geminilake" platform: "geminilake"
unique: "synology_geminilake_920+" unique: "synology_geminilake_920+"
dom: 2 dom: 2
@@ -31,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +53,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -73,7 +73,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -6,12 +6,14 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
SMBusHddDynamicPower: 1 SMBusHddDynamicPower: 1
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
vender_format_version: 2 vender_format_version: 2
elevator: elevator
platform: "r1000" platform: "r1000"
unique: "synology_r1000_923+" unique: "synology_r1000_923+"
beta: true beta: true
@@ -19,11 +21,8 @@ dom: 2
dt: true dt: true
serial: serial:
prefix: prefix:
- "2030" - "2270"
- "2040" middle: "TQR"
- "20C0"
- "2150"
middle: "SBR"
suffix: "alpha" suffix: "alpha"
disks: 4 disks: 4
builds: builds:
@@ -31,7 +30,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -7,6 +7,7 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
intel_iommu: "igfx_off" intel_iommu: "igfx_off"
HddEnableDynamicPower: 1 HddEnableDynamicPower: 1
@@ -15,6 +16,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "geminilake" platform: "geminilake"
unique: "synology_geminilake_dva1622" unique: "synology_geminilake_dva1622"
dom: 2 dom: 2
@@ -33,7 +35,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -54,7 +55,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -10,12 +10,14 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "denverton" platform: "denverton"
unique: "synology_denverton_dva3219" unique: "synology_denverton_dva3219"
beta: true beta: true
@@ -34,7 +36,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -56,7 +57,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -78,7 +78,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -1,19 +1,21 @@
id: "DVA3221" id: "DVA3221"
synoinfo: &synoinfo synoinfo: &synoinfo
support_disk_compatibility: "no" support_disk_compatibility: "no"
support_memory_compatibility: "no" support_memory_compatibility: "yes"
esataportcfg: "0x00" esataportcfg: "0x00"
support_bde_internal_10g: "no" support_bde_internal_10g: "no"
support_led_brightness_adjustment: "no" support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
vender_format_version: 2 vender_format_version: 2
syno_port_thaw: 1 syno_port_thaw: 1
syno_hdd_detect: 0 syno_hdd_detect: 0
elevator: elevator
platform: "denverton" platform: "denverton"
unique: "synology_denverton_dva3221" unique: "synology_denverton_dva3221"
dom: 2 dom: 2
@@ -33,7 +35,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -55,7 +56,6 @@ builds:
ver: "7.1.0" ver: "7.1.0"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -77,7 +77,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -6,6 +6,7 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
intel_iommu: igfx_off intel_iommu: igfx_off
SMBusHddDynamicPower: 1 SMBusHddDynamicPower: 1
@@ -13,6 +14,7 @@ cmdline: &cmdline
synoboot2: synoboot2:
syno_ttyS0: "serial,0x3f8" syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8" syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000" platform: "v1000"
unique: "synology_v1000_fs2500" unique: "synology_v1000_fs2500"
beta: true beta: true
@@ -29,7 +31,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -50,7 +51,6 @@ builds:
ver: "7.1" ver: "7.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -71,7 +71,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -5,23 +5,26 @@ synoinfo: &synoinfo
support_bde_internal_10g: "no" support_bde_internal_10g: "no"
esataportcfg: "0x0" esataportcfg: "0x0"
support_led_brightness_adjustment: "no" support_led_brightness_adjustment: "no"
support_syno_hybrid_raid: "yes"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#supportraidgroup: "no"
cmdline: &cmdline cmdline: &cmdline
syno_hdd_powerup_seq: 0 syno_hdd_powerup_seq: 0
HddHotplug: 0 HddHotplug: 0
syno_hdd_detect: 0 syno_hdd_detect: 0
syno_port_thaw: 1 syno_port_thaw: 1
vender_format_version: 2 vender_format_version: 2
elevator: elevator
platform: "broadwellnk" platform: "broadwellnk"
unique: "synology_broadwellnk_rs4021xs+" unique: "synology_broadwellnk_rs4021xs+"
beta: true beta: true
dom: 2 dom: 2
serial: serial:
prefix: prefix:
- "0000" - "2250"
middle: "XXX" middle: "T2R"
suffix: "alpha" suffix: "alpha"
disks: 16 disks: 16
dt: false dt: false
@@ -30,7 +33,6 @@ builds:
ver: "7.0.1" ver: "7.0.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -52,7 +54,6 @@ builds:
ver: "7.1" ver: "7.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:
@@ -74,7 +75,6 @@ builds:
ver: "7.1.1" ver: "7.1.1"
kver: "4.4.180" kver: "4.4.180"
rd-compressed: false rd-compressed: false
efi-bug: no
cmdline: cmdline:
<<: *cmdline <<: *cmdline
synoinfo: synoinfo:

View File

@@ -0,0 +1,47 @@
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"
#supportraidgroup: "no"
cmdline: &cmdline
SMBusHddDynamicPower: 1
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
vender_format_version: 2
scsi_mod.use_blk_mq: 1
platform: "epyc7002"
unique: "synology_epyc7002_sa6400"
beta: true
dom: 2
serial:
prefix:
- "0000"
middle: "XXX"
suffix: "alpha"
disks: 16
dt: true
builds:
42962:
ver: "7.1.1"
kver: "5.10.55"
rd-compressed: false
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_SA6400_42962.pat"
hash: "83fc408380ebb1381224261de6220b873d7b62a99e715557509ae9553f618a71"
ramdisk-hash: "d4efe45fc4dd71758fe365f7eb39d24982d1440b00986259cab9a03577982f68"
zimage-hash: "d5b8af848fc585695e35bd1c4f4c953fd8e54435b2799face4f8f350bac6df93"
md5-hash: "fdbbea86e280a8f754339a064f9ad2df"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"

View File

@@ -13,6 +13,12 @@ echo -n "Patching Ramdisk"
# Remove old rd.gz patched # Remove old rd.gz patched
rm -f "${MOD_RDGZ_FILE}" rm -f "${MOD_RDGZ_FILE}"
# Check disk space left
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'`
[ ${SPACELEFT} -le 268435456 ] && rm -rf "${CACHE_PATH}/dl"
# Unzipping ramdisk # Unzipping ramdisk
echo -n "." echo -n "."
rm -rf "${RAMDISK_PATH}" # Force clean rm -rf "${RAMDISK_PATH}" # Force clean
@@ -25,6 +31,10 @@ mkdir -p "${RAMDISK_PATH}"
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`" MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`" BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`" LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
UNIQUE=`readModelKey "${MODEL}" "unique"`
if [ ${BUILD} -ne ${buildnumber} ]; then if [ ${BUILD} -ne ${buildnumber} ]; then
echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m" echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m"
@@ -72,6 +82,8 @@ echo -n "."
for KEY in ${!SYNOINFO[@]}; do for KEY in ${!SYNOINFO[@]}; do
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog _set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
done done
# Add serial number to synoinfo.conf, to help to recovery a installed DSM
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
# Patch /sbin/init.post # Patch /sbin/init.post
echo -n "." echo -n "."
@@ -80,9 +92,11 @@ sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e
rm "${TMP_PATH}/rp.txt" rm "${TMP_PATH}/rp.txt"
touch "${TMP_PATH}/rp.txt" touch "${TMP_PATH}/rp.txt"
for KEY in ${!SYNOINFO[@]}; do for KEY in ${!SYNOINFO[@]}; do
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
done done
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post" sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
rm "${TMP_PATH}/rp.txt" rm "${TMP_PATH}/rp.txt"
@@ -119,20 +133,25 @@ echo -n "."
mkdir -p "${RAMDISK_PATH}/addons" mkdir -p "${RAMDISK_PATH}/addons"
echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh" echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh"
echo 'echo "addons.sh called with params ${@}"' >> "${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" chmod +x "${RAMDISK_PATH}/addons/addons.sh"
# Required addons: eudev, dtbpatch/maxdisks, powersched # Required addons: eudev, dtbpatch/maxdisks, wol
installAddon eudev installAddon eudev
echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
if [ "${DT}" = "true" ]; then if [ "${DT}" = "true" ]; then
installAddon dtbpatch installAddon dtbpatch
echo "/addons/dtbpatch.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/dtbpatch.sh \${1} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
else else
installAddon maxdisks installAddon maxdisks
echo "/addons/maxdisks.sh \${1} ${MAXDISKS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/maxdisks.sh \${1} ${MAXDISKS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
fi fi
installAddon powersched installAddon wol
echo "/addons/powersched.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog echo "/addons/wol.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
# User addons # User addons
for ADDON in ${!ADDONS[@]}; do for ADDON in ${!ADDONS[@]}; do
PARAMS=${ADDONS[${ADDON}]} PARAMS=${ADDONS[${ADDON}]}

View File

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

View File

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

View File

@@ -0,0 +1 @@
1.0-beta13a

Binary file not shown.

View File

@@ -1,3 +0,0 @@
search --set=root --label "ARPL1"
set prefix=($root)'/grub'
configfile $prefix/grub.cfg

Binary file not shown.

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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