Compare commits

..

87 Commits

Author SHA1 Message Date
Fabio Belavenuto
3322466ee6 Merge pull request #630 from sumingyd/main
add chinese README
2023-02-27 13:57:45 -03:00
Fabio Belavenuto
76f14d95c7 Merge pull request #631 from fbelavenuto/new-version
Starting v1.1-b2a
2023-02-27 13:56:55 -03:00
Fabio Belavenuto
e4dbea741a Starting v1.1-b2a 2023-02-27 13:56:36 -03:00
宿命
109ff30564 fix 2023-02-27 19:13:21 +08:00
宿命
f6bc5b08ab fix 2023-02-27 19:12:03 +08:00
宿命
269b9b0158 FIX 2023-02-27 19:11:22 +08:00
宿命
5ee1f2d995 add chinese README 2023-02-27 19:10:34 +08:00
宿命
8d0cf083e0 add chinese README 2023-02-27 19:08:37 +08:00
Fabio Belavenuto
57ee20788a Merge pull request #625 from fbelavenuto/MOVBE
Changed CPU flag FMA to MOVBE (THanks for Peter Suh)
2023-02-23 15:41:11 -03:00
Fabio Belavenuto
ae539cf5b6 Changed CPU flag FMA to MOVBE (THanks for Peter Suh) 2023-02-23 15:40:56 -03:00
Fabio Belavenuto
9405793720 Merge pull request #624 from fbelavenuto/docker-7.2
Added toolchain/toolkit for 7.2 version
2023-02-23 15:39:47 -03:00
Fabio Belavenuto
988367ad86 Added toolchain/toolkit for 7.2 version 2023-02-23 15:39:31 -03:00
Fabio Belavenuto
a4d04d5653 Merge pull request #592 from fbelavenuto/dev
Dev
2023-02-10 13:19:22 -03:00
Fabio Belavenuto
c42ce3120f new version 1.1-beta2 2023-02-10 13:19:01 -03:00
Fabio Belavenuto
9dd15f25e0 Removing syno-toolkit 2023-02-10 12:57:08 -03:00
Fabio Belavenuto
93c0303aba Merge pull request #587 from fbelavenuto/r8139
Adding RTL8139 module to ARPL kernel
2023-02-09 14:40:35 -03:00
Fabio Belavenuto
b2c215fb9a Adding RTL8139 module to ARPL kernel 2023-02-09 14:40:15 -03:00
Fabio Belavenuto
4fc5161239 Merge pull request #580 from fbelavenuto/42218-checksum-update
Updating 42218 checksums
2023-02-08 22:05:27 -03:00
Fabio Belavenuto
1b7304ef44 Updating 42218 checksums 2023-02-08 22:04:50 -03:00
Fabio Belavenuto
230cbc986b Merge pull request #564 from fbelavenuto/SHR
Testing fix SHR
2023-02-02 11:32:04 -03:00
Fabio Belavenuto
746d0361b4 Testing fix SHR 2023-02-02 11:31:22 -03:00
Fabio Belavenuto
7acfb99fca Merge pull request #563 from fbelavenuto/dev
Dev
2023-02-02 11:01:21 -03:00
Fabio Belavenuto
3c84a9fa29 Fixing yaml read map, preparing to new addon 'disks' replacing 'maxdisks' and 'dtbpatch' 2023-02-02 11:00:58 -03:00
Fabio Belavenuto
1012d4563a Little fix in CMDLINE escaping
Testing noefi parameter
2023-02-01 21:34:38 -03:00
Fabio Belavenuto
920b9994b1 Merge pull request #558 from fbelavenuto/dev
Removing unnecessary "syno_port_thaw" from models
2023-02-01 09:26:06 -03:00
Fabio Belavenuto
b91aec94a7 Removing unnecessary "syno_port_thaw" from models 2023-02-01 09:25:50 -03:00
Fabio Belavenuto
97356dff47 Update main.yml 2023-01-31 17:03:35 -03:00
Fabio Belavenuto
6fe5a26531 Merge pull request #554 from fbelavenuto/actions
Testing actions
2023-01-31 16:56:49 -03:00
Fabio Belavenuto
f99a7fe44b Testing actions 2023-01-31 16:52:41 -03:00
Fabio Belavenuto
7584ad59f2 Merge pull request #553 from fbelavenuto/dev
wip
2023-01-31 16:46:12 -03:00
Fabio Belavenuto
79eaeb2c40 Changing LKM option to default 'prod' 2023-01-31 09:12:33 -03:00
Fabio Belavenuto
8908747db7 Changing "Show SATA(s) # ports and drives" to advanced menu 2023-01-31 09:12:17 -03:00
Fabio Belavenuto
d5d752b93c Merge pull request #550 from fbelavenuto/dev
Removing PATA drivers from ARPL kernel
2023-01-30 17:11:25 -03:00
Fabio Belavenuto
b5010aff8c Removing PATA drivers from ARPL kernel 2023-01-30 17:11:13 -03:00
Fabio Belavenuto
57daf6e645 Merge pull request #542 from fbelavenuto/mmc
Adding arpl kernel mmc modules for testing
2023-01-27 13:55:41 -03:00
Fabio Belavenuto
06d85768bf Adding arpl kernel mmc modules for testing 2023-01-27 13:55:06 -03:00
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
917 changed files with 1861 additions and 558 deletions

View File

@@ -14,24 +14,64 @@ jobs:
steps:
- uses: actions/checkout@v3
# Check cache
# Check dl cache
- name: Cache downloads
id: dl-cache
uses: actions/cache@v3
with:
path: ~/dl
key: ${{ runner.os }}-dl
# Check buildroot cache
- name: Cache buildroot
id: cache
id: br-cache
uses: actions/cache@v3
with:
path: .buildroot
key: ${{ runner.os }}-${{ hashFiles('files/configs/arpl_defconfig') }}
# Install dependencies
# Install dependencies
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libelf-dev qemu-utils
sudo cp -f files/board/arpl/overlayfs/usr/bin/yq /usr/bin/yq
# Prepare buildroot for first make (for cache)
- name: Prepare buildroot
if: steps.cache.outputs.cache-hit != 'true'
# Get latests LKM, addons and modules
- name: Get latests LKM, addons and Modules
run: |
# Get latest LKMs
echo "Getting latest LKMs"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o /tmp/rp-lkms.zip`
echo "Status=${STATUS}"
[ ${STATUS} -ne 200 ] && exit 1
# Get latest addons and install its
echo "Getting latest Addons"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl-addons/releases/download/${TAG}/addons.zip" -o /tmp/addons.zip`
echo "Status=${STATUS}"
[ ${STATUS} -ne 200 ] && exit 1
# Get latest modules
echo "Getting latest modules"
MODULES_DIR="files/board/arpl/p3/modules"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
while read PLATFORM KVER; do
FILE="${PLATFORM}-${KVER}"
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/${FILE}.tgz" -o "${MODULES_DIR}/${FILE}.tgz"`
echo "Status=${STATUS}"
[ ${STATUS} -ne 200 ] && exit 1
done < PLATFORMS
STATUS=`curl -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/firmware.tgz" -o "${MODULES_DIR}/firmware.tgz"`
echo "Status=${STATUS}"
[ ${STATUS} -ne 200 ] && exit 1
echo OK
# Clone buildroot repository (if not cached)
- name: Clone buildroot
if: steps.br-cache.outputs.cache-hit != 'true'
run: |
git clone --single-branch -b 2022.02 https://github.com/buildroot/buildroot.git .buildroot
# Copy files
@@ -40,10 +80,23 @@ jobs:
cd .buildroot
echo "Generating default config"
make BR2_EXTERNAL=../external arpl_defconfig
# Download sources if not cached
- name: Download buildroot packages source
if: steps.dl-cache.outputs.cache-hit != 'true'
run: |
cd .buildroot
make BR2_EXTERNAL=../external source
# Prepare buildroot for first make
- name: Prepare buildroot
if: steps.br-cache.outputs.cache-hit != 'true'
run: |
echo "First make"
cd .buildroot
make BR2_EXTERNAL=../external
# Build incremental from cache
# Build incremental from caches
- name: Build image
id: build
run: |
@@ -54,16 +107,10 @@ jobs:
rm -rf .buildroot/board/arpl/overlayfs
rm -rf .buildroot/board/arpl/p1
rm -rf .buildroot/board/arpl/p3
# Get latest LKMs
echo "Getting latest LKMs"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
curl -L "https://github.com/fbelavenuto/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o /tmp/rp-lkms.zip
# Unzip LKMs
rm -rf files/board/arpl/p3/lkms/*
unzip /tmp/rp-lkms.zip -d files/board/arpl/p3/lkms
# Get latest addons and install its
echo "Getting latest Addons"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
curl -L "https://github.com/fbelavenuto/arpl-addons/releases/download/${TAG}/addons.zip" -o /tmp/addons.zip
# Install Addons
mkdir -p /tmp/addons
unzip /tmp/addons.zip -d /tmp/addons
DEST_PATH="files/board/arpl/p3/addons"
@@ -74,15 +121,6 @@ jobs:
echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}"
tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}"
done
# Get latest modules
echo "Getting latest modules"
MODULES_DIR="files/board/arpl/p3/modules"
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
while read PLATFORM KVER; do
FILE="${PLATFORM}-${KVER}"
curl -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/${FILE}.tgz" -o "${MODULES_DIR}/${FILE}.tgz"
done < PLATFORMS
curl -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/firmware.tgz" -o "${MODULES_DIR}/firmware.tgz"
# Copy files
echo "Copying files"
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
@@ -106,11 +144,20 @@ jobs:
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip" arpl-dyn.vmdk
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip" arpl.vmdk arpl-flat.vmdk
sha256sum update-list.yml > sha256sum
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | while read F; do
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
done
yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml | xargs zip -9j "update.zip" sha256sum update-list.yml
zip -9j update.zip update-list.yml
while read F; do
if [ -d "${F}" ]; then
FTGZ="`basename "${F}"`.tgz"
tar czf "${FTGZ}" -C "${F}" .
sha256sum "${FTGZ}" >> sha256sum
zip -9j update.zip "${FTGZ}"
rm "${FTGZ}"
else
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
zip -9j update.zip "${F}"
fi
done < <(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)
zip -9j update.zip sha256sum
# Upload artifact
- name: Upload
uses: actions/upload-artifact@v3

97
README-Zh.md Normal file
View File

@@ -0,0 +1,97 @@
# 自动Redpill装载程序
这个特别的项目是为了方便我用Redpill进行测试而创建的我决定与其他用户分享它。
我是巴西人,我的英语不好,所以我为我的翻译道歉。
我试着让这个系统尽可能的人性化让生活更简单。加载器自动检测哪个设备正在使用SATADoM或USB检测其VID和PID正确。redpilll -lkm已经被编辑允许在不设置与网络接口相关的变量的情况下引导内核这样加载程序(和用户)就不必担心了。制作zImage和Ramdisk补丁的Jun代码是嵌入的如果smallupdate在“zImage”或“rd.gz”中有变化加载器会重新应用补丁。最重要的内核模块被内置到DSM ramdisk映像中用于自动外围设备检测。
# 重要注意事项
- 一部分用户启动时间过长。在这种情况下强烈建议在DoM选项或快速USB闪存驱动器的情况下使用SSD作为加载器;
- 你必须有至少4GB的内存无论是在裸机和虚拟机;
- DSM内核兼容SATA端口不兼容SAS/SCSI等。对于设备树型号只有SATA端口工作。对于其他型号可以使用其他类型的磁盘;
- 可以使用HBA卡但SMART和序列号仅适用于DS3615xs, DS3617xs和DS3622xs+型号。
# 使用
## 一般
要使用这个项目请下载可用的最新映像并将其刻录到USB闪存或SATA硬盘模块上。将电脑设置为从刻录媒体启动并遵循屏幕上的信息。
如果最后一个分区的大小大于2GiB加载器将自动增加该分区的大小并将该空间用作缓存。
## 访问加载器
### 通过终端
从计算机本身调用“menu.sh”命令。
### 通过网络
从另一台机器进入同一网络,在浏览器中输入屏幕上提供的地址`http://<ip>:7681`
### 通过ssh
从另一台机器进入同一网络使用ssh客户端用户名 `root` 和密码: `Redp1lL-1s-4weSomE`
## 使用加载器
菜单系统是动态的,我希望它足够直观,用户可以没有任何问题的使用它
不需要配置VID/PID(如果使用u盘)或定义网络接口的MAC地址。如果用户想修改任何接口的MAC地址使用“Change MAC”到“cmdline”菜单。
如果选择使用Device-tree系统定义hd的模型则不需要配置任何内容。在不使用device-tree的情况下配置必须手动完成在“cmdline”菜单中有一个选项可以显示SATA控制器、虚拟端口和正在使用的端口如果需要可以帮助创建“satapportmap”、“DiskIdxMap”和“sata_remap”。
另一个重要的一点是加载器检测CPU是否有MOVBE指令并且不显示需要它的型号。因此如果DS918+和DVA3221型号没有显示这是因为CPU缺乏对MOVBE指令的支持。您可以禁用此限制并自行承担测试风险。
我开发了一个简单的补丁在没有device-tree的模型上不再显示虚拟端口错误用户将能够安装而不必担心它。
## 快速入门指南
启动加载程序后,应该出现以下屏幕。输入 menu.sh 并按 `<ENTER>`:
![](doc/first-screen.png)
如果你愿意,你可以通过网络访问:
![](doc/ttyd.png)
选择“型号”选项,并选择您喜欢的型号:
![](doc/model.png)
选择“Buildnumber”选项并选择第一个选项:
![](doc/buildnumber.png)
进入“Serial”菜单选择“Generate a random Serial number”。
选择“Build”选项等待加载器生成:
![](doc/making.png)
选择“Boot”选项等待DSM启动:
![](doc/DSM%20boot.png)
由于DSM内核不会在屏幕上显示消息因此需要通过浏览器访问地址`http://<ip>`来继续配置DSM的过程。
有一些关于如何在互联网上配置DSM的教程这里不做介绍。
# 教程
ARPL用户(Rikkie)创建了一个在proxmox服务器上安装ARPL的教程:
https://hotstuff.asia/2023/01/03/xpenology-with-arpl-on-proxmox-the-easy-way/
# 麻烦/问题/等等
如果您的问题已经被讨论和解决,请搜索论坛 https://xpenology.com/forum 如果你找不到解决方案,请使用 github issues。
# 感谢
所有代码都是基于TTG、pocopico、jumkey和其他参与继续TTG最初的redpill-load项目的人的工作。
更多信息将在未来添加。

View File

@@ -1,5 +1,7 @@
# Automated Redpill Loader
[中文说明](./README-Zh.md)
This particular project was created to facilitate my testing with Redpill and I decided to share it with other users.
I'm Brazilian and my English is not good, so I apologize for my translations.
@@ -46,7 +48,7 @@ There is no need to configure the VID/PID (if using a USB stick) or define the M
If a model is chosen that uses the Device-tree system to define the HDs, there is no need to configure anything. In the case of models that do not use device-tree, the configurations must be done manually and for this there is an option in the "cmdline" menu to display the SATA controllers, DUMMY ports and ports in use, to assist in the creation of the "SataPortMap", "DiskIdxMap" and "sata_remap" if necessary.
Another important point is that the loader detects whether or not the CPU has the FMA3 instruction and does not display the models that require it. So if the DS918+ and DVA3221 models are not displayed it is because of the CPU's lack of support for FMA instructions. You can disable this restriction and test at your own risk.
Another important point is that the loader detects whether or not the CPU has the MOVBE instruction and does not display the models that require it. So if the DS918+ and DVA3221 models are not displayed it is because of the CPU's lack of support for MOVBE instructions. You can disable this restriction and test at your own risk.
I developed a simple patch to no longer display the DUMMY port error on models without device-tree, the user will be able to install without having to worry about it.

View File

@@ -1 +1 @@
1.0-beta10
1.1-beta2a

View File

@@ -1,6 +1,7 @@
FROM alpine:3.14 AS stage
ARG PLATFORMS="@@@PLATFORMS@@@"
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
ARG GCCLIB_VER="@@@GCCLIB_VER@@@"
# Copy downloaded toolkits
ADD cache /cache
@@ -12,13 +13,20 @@ RUN for V in ${PLATFORMS}; do \
mkdir "/opt/${PLATFORM}" && \
tar -xaf "/cache/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" -C "/opt/${PLATFORM}" --strip-components=9 \
"usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}" && \
echo "Extracting ${PLATFORM}-toolchain.txz" && \
tar -xaf "/cache/${PLATFORM}-toolchain.txz" -C "/opt/${PLATFORM}" --strip-components=1; \
echo "Extracting ${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz" && \
tar -xaf "/cache/${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.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
# Final image
FROM debian:8-slim
FROM debian:9-slim
ENV SHELL=/bin/bash \
ARCH=x86_64
@@ -28,14 +36,15 @@ RUN apt update --yes && \
build-essential make ncurses-dev libssl-dev autogen automake pkg-config libtool xsltproc gperf && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
useradd --home-dir /input --no-create-home --shell /bin/bash --uid 1000 arpl && \
echo "arpl ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/arpl
useradd --create-home --shell /bin/bash --uid 1000 --user-group arpl && \
echo "arpl ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/arpl && \
mkdir /output && chown 1000:1000 /output
COPY --from=stage /opt /opt
COPY --from=stage --chown=1000:1000 /opt /opt
COPY files/ /
USER arpl
WORKDIR /input
VOLUME /input /output
USER arpl
ENTRYPOINT ["/opt/do.sh"]

View File

@@ -1,7 +1,26 @@
#!/usr/bin/env bash
CACHE_DIR="cache"
PLATFORM_FILE="../../PLATFORMS"
#SERVER="https://archive.synology.com"
SERVER="https://global.download.synology.com"
#https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/
declare -A URIS
declare -A PLATFORMS
URIS["apollolake"]="Intel%20x86%20Linux%20|%20%28Apollolake%29"
URIS["broadwell"]="Intel%20x86%20Linux%20|%20%28Broadwell%29"
URIS["broadwellnk"]="Intel%20x86%20Linux%20|%20%28Broadwellnk%29"
URIS["bromolow"]="Intel%20x86%20linux%20|%20%28Bromolow%29"
URIS["denverton"]="Intel%20x86%20Linux%20|%20%28Denverton%29"
URIS["geminilake"]="Intel%20x86%20Linux%20|%20%28GeminiLake%29"
URIS["v1000"]="Intel%20x86%20Linux%20|%20%28V1000%29"
URIS["r1000"]="AMD%20x86%20Linux%20|%20%28r1000%29"
URIS["epyc7002"]="AMD%20x86%20Linux%20Linux%20|%20%28epyc7002%29"
PLATFORMS["7.1"]="apollolake:4.4.180 broadwell:4.4.180 broadwellnk:4.4.180 bromolow:3.10.108 denverton:4.4.180 geminilake:4.4.180 v1000:4.4.180 r1000:4.4.180 epyc7002:5.10.55"
PLATFORMS["7.2"]="apollolake:4.4.302 broadwell:4.4.302 broadwellnk:4.4.302 bromolow:3.10.108 denverton:4.4.302 geminilake:4.4.302 v1000:4.4.302 r1000:4.4.302 epyc7002:5.10.55"
mkdir -p ${CACHE_DIR}
###############################################################################
function trap_cancel() {
@@ -13,57 +32,62 @@ cd `dirname $0`
###############################################################################
function prepare() {
declare -A URLS
URLS["apollolake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Apollolake%29/apollolake-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["broadwell"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Broadwell%29/broadwell-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["broadwellnk"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Broadwellnk%29/broadwellnk-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["bromolow"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20linux%203.10.108%20%28Bromolow%29/bromolow-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["denverton"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Denverton%29/denverton-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["geminilake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29/geminilake-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["v1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28V1000%29/v1000-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["r1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%204.4.180%20%28r1000%29/r1000-${GCCLIB_VER}_x86_64-GPL.txz"
URLS["epyc7002"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%20Linux%205.10.55%20%28epyc7002%29/epyc7002-${GCCLIB_VER}_x86_64-GPL.txz"
# Read platforms/kerver version
echo "Reading platforms"
declare -A PLATFORMS
while read PLATFORM KVER; do
PLATFORMS[${PLATFORM}]="${KVER}"
done < ${PLATFORM_FILE}
# Download toolkits
mkdir -p ${CACHE_DIR}
for PLATFORM in ${!PLATFORMS[@]}; do
KVER="${PLATFORMS[${PLATFORM}]}"
for P in ${PLATFORMS[${TOOLKIT_VER}]}; do
PLATFORM="`echo ${P} | cut -d':' -f1`"
KVER="`echo ${P} | cut -d':' -f2`"
# Dev
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
echo "Downloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
URL="${SERVER}/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
echo -e "No\nDownloading ${URL}"
STATUS=`curl -w "%{http_code}" -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"`
if [ ${STATUS} -ne 200 ]; then
rm -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
exit 1
fi
else
echo "OK"
fi
echo -n "Checking ${CACHE_DIR}/${PLATFORM}-toolchain.txz... "
if [ ! -f "${CACHE_DIR}/${PLATFORM}-toolchain.txz" ]; then
URL=${URLS["${PLATFORM}"]}
echo "Downloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/${PLATFORM}-toolchain.txz"
# Toolchain
URI="`echo ${URIS[${PLATFORM}]} | sed "s/|/${KVER}/"`"
URL="${SERVER}/download/ToolChain/toolchain/${TOOLCHAIN_VER}/${URI}/${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz"
FILENAME="${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz"
echo -n "Checking ${CACHE_DIR}/${FILENAME}... "
if [ ! -f "${CACHE_DIR}/${FILENAME}" ]; then
echo -e "No\nDownloading ${URL}"
STATUS=`curl -w "%{http_code}" -L "${URL}" -o "${CACHE_DIR}/${FILENAME}"`
if [ ${STATUS} -ne 200 ]; then
rm -f "${CACHE_DIR}/${FILENAME}"
exit 1
fi
else
echo "OK"
fi
done
# for KERNEL in 3.10.x 4.4.x 5.10.x; do
# URL=${URLS["${KERNEL}"]}
# [ -z "${URL}" ] && continue
# echo -n "Checking ${CACHE_DIR}/linux-${KERNEL}.txz... "
# if [ ! -f "${CACHE_DIR}/linux-${KERNEL}.txz" ]; then
# echo -e "No\nDownloading ${URL}"
# STATUS=`curl -w "%{http_code}" -L "${URL}" -o "${CACHE_DIR}/linux-${KERNEL}.txz"`
# if [ ${STATUS} -ne 200 ]; then
# rm -f "${CACHE_DIR}/linux-${KERNEL}.txz"
# exit 1
# fi
# else
# echo "OK"
# fi
# done
# Generate Dockerfile
echo "Generating Dockerfile"
cp Dockerfile.template Dockerfile
VALUE=""
for PLATFORM in ${!PLATFORMS[@]}; do
VALUE+="${PLATFORM}:${PLATFORMS[${PLATFORM}]} "
done
sed -i "s|@@@PLATFORMS@@@|${VALUE::-1}|g" Dockerfile
sed -i "s|@@@PLATFORMS@@@|${PLATFORMS[${TOOLKIT_VER}]}|g" Dockerfile
sed -i "s|@@@TOOLKIT_VER@@@|${TOOLKIT_VER}|g" Dockerfile
sed -i "s|@@@GCCLIB_VER@@@|${GCCLIB_VER}|g" Dockerfile
}
# 7.0
@@ -76,9 +100,18 @@ function prepare() {
#docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER}
# 7.1
TOOLKIT_VER="7.1"
TOOLCHAIN_VER="7.1-42661"
GCCLIB_VER="gcc850_glibc226"
# TOOLKIT_VER="7.1"
# TOOLCHAIN_VER="7.1-42661"
# GCCLIB_VER="gcc850_glibc226"
# prepare
# echo "Building ${TOOLKIT_VER}"
# docker image rm fbelavenuto/syno-compiler:${TOOLKIT_VER} >/dev/null 2>&1
# docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER}
# 7.2
TOOLKIT_VER="7.2"
TOOLCHAIN_VER="7.2-63134"
GCCLIB_VER="gcc1220_glibc236"
prepare
echo "Building ${TOOLKIT_VER}"
docker image rm fbelavenuto/syno-compiler:${TOOLKIT_VER} >/dev/null 2>&1

View File

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

View File

@@ -1,15 +0,0 @@
FROM scratch
ARG PLATFORM
ARG TOOLKIT_VER
ARG CACHE_DIR
ENV PLATFORM=${PLATFORM} TOOLKIT_VER=${TOOLKIT_VER}
ADD ${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz /
ADD ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz /
ADD ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz /
ADD rootfs /
WORKDIR /input
VOLUME /input /output
ENTRYPOINT ["/usr/bin/do.sh"]

View File

@@ -1,61 +0,0 @@
#!/usr/bin/env bash
set -e
CACHE_DIR="cache"
PLATFORM_FILE="../../PLATFORMS"
TOOLKIT_VER=7.1
###############################################################################
function trap_cancel() {
echo "Press Control+C once more terminate the process (or wait 2s for it to restart)"
sleep 2 || exit 1
}
trap trap_cancel SIGINT SIGTERM
cd `dirname $0`
# Read platforms/kerver version
echo "Reading platforms"
declare -A PLATFORMS
while read PLATFORM KVER; do
PLATFORMS[${PLATFORM}]="${KVER}"
done < ${PLATFORM_FILE}
# Download toolkits
mkdir -p ${CACHE_DIR}
# Check base environment
echo -n "Checking ${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz... "
if [ ! -f "${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz" ]; then
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/base_env-${TOOLKIT_VER}.txz"
echo "Downloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/base_env-${TOOLKIT_VER}.txz"
else
echo "OK"
fi
# Check all platforms
for PLATFORM in ${!PLATFORMS[@]}; do
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
echo "Downloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
else
echo "OK"
fi
echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz... "
if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz" ]; then
URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz"
echo "Downloading ${URL}"
curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.env.txz"
else
echo "OK"
fi
done
# Generate docker images
for PLATFORM in ${!PLATFORMS[@]}; do
docker buildx build . --build-arg PLATFORM=${PLATFORM} --build-arg TOOLKIT_VER=${TOOLKIT_VER} --build-arg CACHE_DIR="${CACHE_DIR}" \
--tag fbelavenuto/syno-toolkit:${PLATFORM}-${TOOLKIT_VER} --load
done

View File

@@ -1,10 +0,0 @@
export PATH="/usr/local/x86_64-pc-linux-gnu/bin:${PATH}"
[[ "$-" != *i* ]] && return
export LS_OPTIONS='--color=auto'
export SHELL='linux'
eval "`dircolors`"
alias ls='ls -F -h --color=always -v --author --time-style=long-iso'
alias ll='ls -l'
alias l='ls -l -a'
alias h='history 25'
alias j='jobs -l'

View File

@@ -1,52 +0,0 @@
#!/usr/bin/env bash
set -e
###############################################################################
function compile-module {
echo -e "Compiling module for \033[7m${PLATFORM}\033[0m..."
cp -R /input /tmp
make -C ${KSRC} M=/tmp/input ${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules
while read F; do
strip -g "${F}"
echo "Copying `basename ${F}`"
cp "${F}" "/output"
chown 1000.1000 "/output/`basename ${F}`"
done < <(find /tmp/input -name \*.ko)
}
###############################################################################
function compile-lkm {
cp -R /input /tmp
make -C "/tmp/input" dev-v7
strip -g "/tmp/input/redpill.ko"
mv "/tmp/input/redpill.ko" "/output/redpill-dev.ko"
chown 1000.1000 /output/redpill-dev.ko
make -C "/tmp/input" clean
make -C "/tmp/input" prod-v7
strip -g "/tmp/input/redpill.ko"
mv "/tmp/input/redpill.ko" "/output/redpill-prod.ko"
chown 1000.1000 /output/redpill-prod.ko
}
###############################################################################
###############################################################################
if [ $# -lt 1 ]; then
echo "Use: <command> (<params>)"
echo "Commands: shell | compile-module | compile-lkm"
exit 1
fi
export KSRC="/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}/build"
export LINUX_SRC="/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}/build"
export CROSS_COMPILE="/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-"
export ARCH=x86_64
export CC="x86_64-pc-linux-gnu-gcc"
export LD="x86_64-pc-linux-gnu-ld"
case $1 in
shell) shift && bash -l $@ ;;
compile-module) compile-module ;;
compile-lkm) compile-lkm ;;
*) echo "Command not recognized: $1" ;;
esac

Binary file not shown.

View File

@@ -18,8 +18,16 @@ CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_NAMESPACES=y
CONFIG_SYSFS_DEPRECATED=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_GZIP is not set
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
# CONFIG_RD_ZSTD is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_KCMP=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
@@ -42,17 +50,19 @@ CONFIG_PM_TRACE_RTC=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_BGRT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_POWERNOW_K8=y
CONFIG_INTEL_IDLE=y
CONFIG_IA32_EMULATION=y
# CONFIG_VIRTUALIZATION is not set
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEBUG_FS is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_BINFMT_MISC=y
CONFIG_NET=y
@@ -79,7 +89,8 @@ CONFIG_TCP_CONG_ADVANCED=y
# CONFIG_TCP_CONG_WESTWOOD is not set
# CONFIG_TCP_CONG_HTCP is not set
CONFIG_TCP_MD5SIG=y
# CONFIG_IPV6 is not set
CONFIG_IPV6=m
# CONFIG_IPV6_SIT is not set
CONFIG_NETLABEL=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_ADVANCED is not set
@@ -92,7 +103,6 @@ CONFIG_NF_NAT=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_POLICY=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
@@ -101,6 +111,8 @@ CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_MANGLE=y
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_NET_SCHED=y
CONFIG_NET_EMATCH=y
CONFIG_NET_CLS_ACT=y
@@ -115,6 +127,7 @@ CONFIG_FW_LOADER_COMPRESS=y
CONFIG_DEBUG_DEVRES=y
CONFIG_CONNECTOR=y
CONFIG_EFI_VARS=y
# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_NVME=y
@@ -179,24 +192,9 @@ CONFIG_SCSI_PM8001=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_DH=y
CONFIG_ATA=y
# CONFIG_ATA_FORCE is not set
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=m
CONFIG_SATA_ACARD_AHCI=m
CONFIG_SATA_SIL24=m
CONFIG_PDC_ADMA=m
CONFIG_SATA_QSTOR=m
CONFIG_ATA_PIIX=y
CONFIG_SATA_DWC=m
CONFIG_SATA_MV=m
CONFIG_SATA_NV=m
CONFIG_SATA_PROMISE=m
CONFIG_SATA_SIL=m
CONFIG_SATA_SIS=m
CONFIG_SATA_SVW=m
CONFIG_SATA_ULI=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_ATA_GENERIC=y
CONFIG_SATA_MV=y
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_DM=y
@@ -218,8 +216,6 @@ CONFIG_ET131X=m
CONFIG_SLICOSS=m
CONFIG_ACENIC=m
CONFIG_ENA_ETHERNET=m
CONFIG_AMD8111_ETH=m
CONFIG_PCNET32=m
CONFIG_AMD_XGBE=m
CONFIG_AQTION=m
CONFIG_ATL1=m
@@ -229,7 +225,7 @@ CONFIG_ALX=m
CONFIG_B44=m
CONFIG_BCMGENET=m
CONFIG_CNIC=m
CONFIG_TIGON3=y
CONFIG_TIGON3=m
CONFIG_BNX2X=m
CONFIG_SYSTEMPORT=m
CONFIG_BNXT=m
@@ -250,9 +246,7 @@ CONFIG_DNET=m
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
CONFIG_BE2NET=m
# CONFIG_NET_VENDOR_GOOGLE is not set
CONFIG_HINIC=m
CONFIG_E100=y
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
@@ -261,14 +255,18 @@ CONFIG_IXGB=m
CONFIG_IXGBE=m
CONFIG_IXGBEVF=m
CONFIG_I40E=m
CONFIG_I40EVF=m
CONFIG_ICE=m
CONFIG_FM10K=m
CONFIG_IGC=m
CONFIG_JME=m
CONFIG_MVMDIO=m
CONFIG_SKGE=m
CONFIG_SKY2=y
CONFIG_SKY2=m
CONFIG_MLX4_EN=m
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
CONFIG_MLXSW_CORE=m
CONFIG_MYRI10GE=m
CONFIG_NATSEMI=m
CONFIG_NS83820=m
@@ -276,7 +274,6 @@ CONFIG_S2IO=m
CONFIG_VXGE=m
CONFIG_NFP=m
CONFIG_NI_XGE_MANAGEMENT_ENET=m
CONFIG_FORCEDETH=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_QLA3XXX=m
@@ -286,23 +283,22 @@ CONFIG_QED=m
CONFIG_QEDE=m
CONFIG_QCOM_EMAC=m
CONFIG_RMNET=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
CONFIG_8139TOO_TUNE_TWISTER=y
CONFIG_R8169=m
CONFIG_SXGBE_ETH=m
CONFIG_SFC=m
# CONFIG_SFC_MCDI_MON is not set
# CONFIG_SFC_MCDI_LOGGING is not set
CONFIG_SFC_FALCON=m
CONFIG_SIS190=m
CONFIG_STMMAC_ETH=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
CONFIG_DWC_XLGMAC=m
CONFIG_TEHUTI=m
CONFIG_VIA_VELOCITY=m
CONFIG_XILINX_AXI_EMAC=m
CONFIG_XILINX_LL_TEMAC=m
CONFIG_PHYLIB=y
CONFIG_REALTEK_PHY=y
CONFIG_PCS_XPCS=m
CONFIG_USB_NET_DRIVERS=m
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
@@ -353,13 +349,13 @@ CONFIG_HW_RANDOM=y
CONFIG_NVRAM=y
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_I2C=y
CONFIG_I2C_I801=y
CONFIG_WATCHDOG=y
CONFIG_REGULATOR=y
CONFIG_MFD_SYSCON=y
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
CONFIG_DRM=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_MODE_HELPERS=y
@@ -418,10 +414,17 @@ CONFIG_USB_UAS=y
CONFIG_USB_SERIAL=m
CONFIG_USB_ROLE_SWITCH=y
CONFIG_USB_ROLES_INTEL_XHCI=m
CONFIG_MMC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_VIA_SDMMC=m
CONFIG_MMC_VUB300=m
CONFIG_MMC_USHC=m
CONFIG_MMC_MTK=m
CONFIG_LEDS_TRIGGERS=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
CONFIG_DMADEVICES=y
CONFIG_SYNC_FILE=y
CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m
CONFIG_VIRTIO_PCI=m
@@ -439,6 +442,7 @@ CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_VIRTIO_IOMMU=m
CONFIG_MEMORY=y
CONFIG_RESET_CONTROLLER=y
CONFIG_VALIDATE_FS_PARSER=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
@@ -452,7 +456,9 @@ CONFIG_AUTOFS4_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_PROC_KCORE=y
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
CONFIG_EFIVAR_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y

View File

@@ -18,9 +18,6 @@ printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
TITLE="BOOTING..."
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
history -w
sync
# Check if DSM zImage changed, patch it if necessary
ZIMAGE_HASH="`readConfigKey "zimage-hash" "${USER_CONFIG_FILE}"`"
if [ "`sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}'`" != "${ZIMAGE_HASH}" ]; then
@@ -29,7 +26,7 @@ if [ "`sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}'`" != "${ZIMAGE_HASH}" ];
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" \
--msgbox "zImage not patched:\n`<"${LOG_FILE}"`" 12 70
return 1
exit 1
fi
fi
@@ -41,7 +38,7 @@ if [ "`sha256sum "${ORI_RDGZ_FILE}" | awk '{print$1}'`" != "${RAMDISK_HASH}" ];
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Error" \
--msgbox "Ramdisk not patched:\n`<"${LOG_FILE}"`" 12 70
return 1
exit 1
fi
fi
@@ -68,10 +65,10 @@ CMDLINE['pid']="${PID}"
CMDLINE['sn']="${SN}"
# Read cmdline
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
@@ -103,7 +100,7 @@ fi
# Prepare command line
CMDLINE_LINE=""
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " || CMDLINE_LINE+="noefi "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
CMDLINE_DIRECT="${CMDLINE_LINE}"
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
@@ -115,7 +112,7 @@ for KEY in ${!CMDLINE[@]}; do
[ -n "${VALUE}" ] && CMDLINE_DIRECT+="=${VALUE}"
done
# Escape special chars
CMDLINE_LINE=`echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g'`
#CMDLINE_LINE=`echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g'`
CMDLINE_DIRECT=`echo ${CMDLINE_DIRECT} | sed 's/>/\\\\>/g'`
echo -e "Cmdline:\n\033[1;36m${CMDLINE_LINE}\033[0m"
@@ -142,8 +139,7 @@ if [ "${DIRECT}" = "true" ]; then
echo -e "\033[1;33mReboot to boot directly in DSM\033[0m"
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
reboot
sleep 100
exit
exit 0
fi
echo -e "\033[1;37mLoading DSM kernel...\033[0m"
@@ -156,4 +152,4 @@ else
fi
echo -e "\033[1;37mBooting...\033[0m"
poweroff
while true; do sleep 1; done # infinity loop
exit 0

View File

@@ -33,7 +33,7 @@ function readConfigKey() {
# 2 - Path of yaml config file
# Returns map of values
function readConfigMap() {
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join("=")) | .[]' "${2}"
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join(": ")) | .[]' "${2}"
}
###############################################################################

View File

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

View File

@@ -50,7 +50,10 @@ ln -s "${CACHE_PATH}/ssh" "/etc/ssh"
# Link bash history to cache volume
rm -rf ~/.bash_history
ln -s ${CACHE_PATH}/.bash_history ~/.bash_history
touch ~/.bash_history
if ! grep -q "menu.sh" ~/.bash_history; then
echo "menu.sh " >> ~/.bash_history
fi
# Check if exists directories into P3 partition, if yes remove and link it
if [ -d "${CACHE_PATH}/model-configs" ]; then
rm -rf "${MODEL_CONFIG_PATH}"
@@ -69,12 +72,12 @@ MACF=`echo ${MAC} | sed 's/://g'`
# If user config file not exists, initialize it
if [ ! -f "${USER_CONFIG_FILE}" ]; then
touch "${USER_CONFIG_FILE}"
writeConfigKey "lkm" "dev" "${USER_CONFIG_FILE}"
writeConfigKey "lkm" "prod" "${USER_CONFIG_FILE}"
writeConfigKey "directboot" "false" "${USER_CONFIG_FILE}"
writeConfigKey "model" "" "${USER_CONFIG_FILE}"
writeConfigKey "build" "" "${USER_CONFIG_FILE}"
writeConfigKey "sn" "" "${USER_CONFIG_FILE}"
writeConfigKey "maxdisks" "" "${USER_CONFIG_FILE}"
# writeConfigKey "maxdisks" "" "${USER_CONFIG_FILE}"
writeConfigKey "layout" "qwerty" "${USER_CONFIG_FILE}"
writeConfigKey "keymap" "" "${USER_CONFIG_FILE}"
writeConfigKey "zimage-hash" "" "${USER_CONFIG_FILE}"
@@ -144,6 +147,9 @@ if [ -f /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz ]; then
zcat /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz | loadkeys
fi
# Enable Wake on Lan, ignore errors
ethtool -s eth0 wol g 2>/dev/null
# Decide if boot automatically
BOOT=1
if ! loaderIsConfigured; then
@@ -155,7 +161,9 @@ elif grep -q "IWANTTOCHANGETHECONFIG" /proc/cmdline; then
fi
# If is to boot automatically, do it
[ ${BOOT} -eq 1 ] && boot.sh
if [ ${BOOT} -eq 1 ]; then
boot.sh && exit 0
fi
# Wait for an IP
COUNT=0

View File

@@ -145,13 +145,13 @@ function buildMenu() {
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
# Delete synoinfo and reload model/build synoinfo
writeConfigKey "synoinfo" "{}" "${USER_CONFIG_FILE}"
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
writeConfigKey "synoinfo.${KEY}" "${VALUE}" "${USER_CONFIG_FILE}"
done < <(readModelMap "${MODEL}" "builds.${BUILD}.synoinfo")
# Check addons
PLATFORM="`readModelKey "${MODEL}" "platform"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
while IFS="=" read ADDON PARAM; do
while IFS=': ' read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
deleteConfigKey "addons.${ADDON}" "${USER_CONFIG_FILE}"
@@ -215,7 +215,7 @@ function addonMenu() {
# Read addons from user config
unset ADDONS
declare -A ADDONS
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
NEXT="a"
@@ -331,15 +331,14 @@ function addonMenu() {
function cmdlineMenu() {
unset CMDLINE
declare -A CMDLINE
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
echo "a \"Add/edit a cmdline item\"" > "${TMP_PATH}/menu"
echo "a \"Add/edit a cmdline item\"" > "${TMP_PATH}/menu"
echo "d \"Delete cmdline item(s)\"" >> "${TMP_PATH}/menu"
echo "c \"Define a custom MAC\"" >> "${TMP_PATH}/menu"
echo "s \"Show user cmdline\"" >> "${TMP_PATH}/menu"
echo "m \"Show model/build cmdline\"" >> "${TMP_PATH}/menu"
echo "u \"Show SATA(s) # ports and drives\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
# Loop menu
while true; do
@@ -415,40 +414,12 @@ function cmdlineMenu() {
;;
m)
ITEMS=""
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
ITEMS+="${KEY}: ${VALUE}\n"
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
dialog --backtitle "`backtitle`" --title "Model/build cmdline" \
--aspect 18 --msgbox "${ITEMS}" 0 0
;;
u) TEXT=""
NUMPORTS=0
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
TEXT+="\Zb${NAME}\Zn\nPorts: "
unset HOSTPORTS
declare -A HOSTPORTS
while read LINE; do
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
PORT=`echo ${ATAPORT} | sed 's/ata//'`
HOSTPORTS[${PORT}]=`echo ${LINE} | grep -o 'host[0-9]*$'`
done < <(ls -l /sys/class/scsi_host | fgrep "${PCI}")
while read PORT; do
ls -l /sys/block | fgrep -q "${PCI}/ata${PORT}" && ATTACH=1 || ATTACH=0
PCMD=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
[ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb"
[ ${DUMMY} -eq 1 ] && TEXT+="\Z1"
TEXT+="${PORT}\Zn "
NUMPORTS=$((${NUMPORTS}+1))
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
TEXT+="\n"
done
TEXT+="\nTotal of ports: ${NUMPORTS}\n"
TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected."
dialog --backtitle "`backtitle`" --colors --aspect 18 \
--msgbox "${TEXT}" 0 0
;;
e) return ;;
esac
done
@@ -456,20 +427,15 @@ function cmdlineMenu() {
###############################################################################
function synoinfoMenu() {
# Get dt flag from model
DT="`readModelKey "${MODEL}" "dt"`"
# Read synoinfo from user config
unset SYNOINFO
declare -A SYNOINFO
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
echo "a \"Add/edit a synoinfo item\"" > "${TMP_PATH}/menu"
echo "d \"Delete synoinfo item(s)\"" >> "${TMP_PATH}/menu"
if [ "${DT}" != "true" ]; then
echo "x \"Set maxdisks manually\"" >> "${TMP_PATH}/menu"
fi
echo "s \"Show synoinfo entries\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
@@ -516,15 +482,6 @@ function synoinfoMenu() {
done
DIRTY=1
;;
x)
MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
dialog --backtitle "`backtitle`" --title "Maxdisks" \
--inputbox "Type a value for maxdisks" 0 0 "${MAXDISKS}" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && continue
VALUE="`<"${TMP_PATH}/resp"`"
[ "${VALUE}" != "${MAXDISKS}" ] && writeConfigKey "maxdisks" "${VALUE}" "${USER_CONFIG_FILE}"
;;
s)
ITEMS=""
for KEY in ${!SYNOINFO[@]}; do
@@ -714,7 +671,7 @@ function make() {
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
# Check if all addon exists
while IFS="=" read ADDON PARAM; do
while IFS=': ' read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
@@ -763,6 +720,7 @@ function advancedMenu() {
fi
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
echo "t \"Try to recovery a DSM installed system\"" >> "${TMP_PATH}/menu"
echo "s \"Show SATA(s) # ports and drives\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --default-item ${NEXT} --backtitle "`backtitle`" --title "Advanced" \
@@ -782,7 +740,35 @@ function advancedMenu() {
;;
u) editUserConfig; NEXT="e" ;;
t) tryRecoveryDSM ;;
e) break ;;
s) TEXT=""
NUMPORTS=0
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
TEXT+="\Zb${NAME}\Zn\nPorts: "
unset HOSTPORTS
declare -A HOSTPORTS
while read LINE; do
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
PORT=`echo ${ATAPORT} | sed 's/ata//'`
HOSTPORTS[${PORT}]=`echo ${LINE} | grep -o 'host[0-9]*$'`
done < <(ls -l /sys/class/scsi_host | fgrep "${PCI}")
while read PORT; do
ls -l /sys/block | fgrep -q "${PCI}/ata${PORT}" && ATTACH=1 || ATTACH=0
PCMD=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
[ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb"
[ ${DUMMY} -eq 1 ] && TEXT+="\Z1"
TEXT+="${PORT}\Zn "
NUMPORTS=$((${NUMPORTS}+1))
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
TEXT+="\n"
done
TEXT+="\nTotal of ports: ${NUMPORTS}\n"
TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected."
dialog --backtitle "`backtitle`" --colors --aspect 18 \
--msgbox "${TEXT}" 0 0
;;
e) break ;;
esac
done
}
@@ -840,7 +826,7 @@ function selectModules() {
ALLMODULES=`getAllModules "${PLATFORM}" "${KVER}"`
unset USERMODULES
declare -A USERMODULES
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
# menu loop
@@ -968,11 +954,13 @@ function keymapMenu() {
KEYMAP=${resp}
writeConfigKey "layout" "${LAYOUT}" "${USER_CONFIG_FILE}"
writeConfigKey "keymap" "${KEYMAP}" "${USER_CONFIG_FILE}"
zcat /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz | loadkeys
loadkeys /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz
}
###############################################################################
function updateMenu() {
PLATFORM="`readModelKey "${MODEL}" "platform"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
while true; do
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
a "Update arpl" \
@@ -1024,13 +1012,20 @@ function updateMenu() {
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--infobox "Installing new files" 0 0
# Process update-list.yml
while IFS="=" read KEY VALUE; do
mv /tmp/`basename "${KEY}"` "${VALUE}"
done < <(readConfigMap "replace" "/tmp/update-list.yml")
while read F; do
[ -f "${F}" ] && rm -f "${F}"
[ -d "${F}" ] && rm -Rf "${F}"
done < <(readConfigArray "remove" "/tmp/update-list.yml")
while IFS=': ' read KEY VALUE; do
if [ "${KEY: -1}" = "/" ]; then
rm -Rf "${VALUE}"
mkdir -p "${VALUE}"
gzip -dc "/tmp/`basename "${KEY}"`.tgz" | tar xf - -C "${VALUE}"
else
mkdir -p "`dirname "${VALUE}"`"
mv "/tmp/`basename "${KEY}"`" "${VALUE}"
fi
done < <(readConfigMap "replace" "/tmp/update-list.yml")
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
[ $? -ne 0 ] && continue
@@ -1132,11 +1127,13 @@ function updateMenu() {
rm "${MODULES_PATH}/${P}.tgz"
mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz"
done
# Rebuild modules
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done < <(getAllModules "${PLATFORM}" "${KVER}")
# Rebuild modules if model/buildnumber is selected
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done < <(getAllModules "${PLATFORM}" "${KVER}")
fi
DIRTY=1
dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \
--msgbox "Modules updated with success!" 0 0
@@ -1150,8 +1147,9 @@ function updateMenu() {
###############################################################################
if [ "x$1" = "xb" -a -n "${MODEL}" -a -n "${BUILD}" -a loaderIsConfigured ]; then
install-addons.sh
make
boot
boot && exit 0 || sleep 5
fi
# Main loop
NEXT="m"
@@ -1195,7 +1193,7 @@ while true; do
i) synoinfoMenu; NEXT="v" ;;
v) advancedMenu; NEXT="d" ;;
d) make; NEXT="b" ;;
b) boot ;;
b) boot && exit 0 || sleep 5 ;;
k) keymapMenu ;;
c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \
--prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;;
@@ -1205,4 +1203,3 @@ while true; do
done
clear
echo -e "Call \033[1;32mmenu.sh\033[0m to return to menu"

View File

@@ -6,6 +6,8 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: igfx_off
HddEnableDynamicPower: 1
@@ -36,10 +38,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1520%2B_42218.pat"
hash: "06947c58f25bd591f7fa3c58ad9473777481bdd7a049b42d1cb585ca01b053ee"
ramdisk-hash: "f0a275587c51acdb4d58a7f0d82d70f31e54228d0fbf7575d5d425dae75d1969"
zimage-hash: "74d513aaa3e30d8aa4f80e202d94a68a552e9c0472f8470e133ad29080556f55"
md5-hash: "f56200a8be1aed4eb287a51b373adb1f"
hash: "b8864e2becd8ce5a6083db993564c8c0b982df8300a006b56695a0495a670aa3"
ramdisk-hash: "7679ab11e895302425533c64e0dded211b38b8af71f2dd268c47a68bc9f6818a"
zimage-hash: "70e93678f3932c35c5e884f950e50b36f8dc6366f96dd9a454c8d47ecbaee5de"
md5-hash: "d1ebc3c9a2b9e04980a85c4784904f91"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -6,12 +6,13 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
synoboot2:
syno_ttyS0: "serial,0x3f8"
@@ -38,10 +39,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1621%2B_42218.pat"
hash: "19f56827ba8bf0397d42cd1d6f83c447f092c2c1bbb70d8a2ad3fbd427e866df"
ramdisk-hash: "73512c7bceb34cf7f7f93c2703db60496da0e27274fc45e5aefa0366c9734d6e"
zimage-hash: "f4648d0dd6b29ef6149b0ff46afe1fe32f81730aa79af72f37ffd3647c76f586"
md5-hash: "f82cbabbfef3fdf2cba45da77d14959b"
hash: "396144fdcd94d441b4ad665099395cf24a14606742bee9438745ea30bf12b9ef"
ramdisk-hash: "127a12bab3835cdf5af4e7ad2a23e78f889408302c55e5052080671cff6da5b7"
zimage-hash: "0ab3bf0ff027fb94863ef8822df787194f2d21079ecc66c0b0d4e46d24598855"
md5-hash: "1fd1d6e733bb096f418f68e06f81022e"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -2,16 +2,16 @@ id: "DS2422+"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
synoboot2:
syno_ttyS0: "serial,0x3f8"
@@ -39,10 +39,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS2422%2B_42218.pat"
hash: "415c54934d483a2557500bc3a2e74588a0cec1266e1f0d9a82a7d3aace002471"
ramdisk-hash: "2b5b8dd90b2e6020ffccc2719d8bc16d9935421754a8c088d6b31dbca4e4ff7b"
zimage-hash: "38281a90036fffcb41cd17f05a6c7e9a1d5740a78c135980fb0c3a6d0ca1485f"
md5-hash: "9293156f98e642c181aed63b0b3df4c8"
hash: "5a6cfbc690facdfaef9fbcc55215eac38c73ca6a85965a910af11cede5e2cd5d"
ramdisk-hash: "57bcadf9699252aa68dac40b5c48f362169b51fda9f77a7f1b51e3336a551f8f"
zimage-hash: "e083a8aec10537582ed0dd6d79bc358d9aff828b3e256996ef1e4f4bf418dd5d"
md5-hash: "7fe3c9ae80396a2ea9ed9909b8746c4b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -2,18 +2,18 @@ id: "DS3615xs"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no"
esataportcfg: "0x0"
usbportcfg: "0x8700"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "bromolow"
@@ -39,10 +39,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3615xs_42218.pat"
hash: "dddd26891815ddca02d0d53c1d42e8b39058b398a4cc7b49b80c99f851cf0ef7"
ramdisk-hash: "4c90c3c7ee25b5fcc651552e80a9364d22823c863c834c5f43e3344a3a68af78"
zimage-hash: "d29b695612710376734cb5c5b5ae4f2d8afc49ffd640387e1c86010f6c7d2c8a"
md5-hash: "ea1c30f644bacae2e0b1ef914bc663db"
hash: "ae1aca3b178a00689b93e97cca680b56af3f453174b852e0047496120dee2ee3"
ramdisk-hash: "3a8c2fe60142d3eb3a7ed2381819faa1db2cda30ff163288dd0a6c85a25815c1"
zimage-hash: "354f0bb13c898a7b24f2942d8015f591f7acce1739e2060580c0f38c41addaf7"
md5-hash: "9f959ec4d16d5d7729374961fc2b9bed"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -2,18 +2,18 @@ id: "DS3617xs"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no"
esataportcfg: "0x00"
usbportcfg: "0x8700"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "broadwell"
@@ -39,10 +39,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3617xs_42218.pat"
hash: "d65ee4ed5971e38f6cdab00e1548183435b53ba49a5dca7eaed6f56be939dcd2"
ramdisk-hash: "1b2e86fbf4006f6aa40dcd674ad449feed8b0b8317a71e2bb8bb986a74e08c57"
zimage-hash: "28a75e0b680517d39374260eb981b8ca9ace8810b121a30b8036fa09cfcb77fc"
md5-hash: "8972088c38acd07aa92a8b573a1b7bc3"
hash: "f7e846e2a22b62613ac5e9d6e154df0213ba4ae64a6556297af627cd1e643e5c"
ramdisk-hash: "eaddd97c40a35bbcf4092417364ca4376925fb3eb322cad0cf602d4c7973d147"
zimage-hash: "8e0ab965c85b348dfc9dc17392b9cf0a117756f1d1bc4c0f0d19bb610350659d"
md5-hash: "b7d85926561ff125928b68e7fffa646b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -2,7 +2,6 @@ id: "DS3622xs+"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
esataportcfg: "0x00"
support_bde_internal_10g: "no"
support_oob_ctl: "no"
@@ -10,11 +9,12 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" # http://update7.synology.com/autoupdate/genRSS.php
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml" # https://update7.synology.com/autoupdate/genRSS.php
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json" # https://update7.synology.com/autoupdate/v2/getList
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "broadwellnk"
@@ -40,10 +40,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
hash: "f38329b8cdc5824a8f01fb1e377d3b1b6bd23da365142a01e2158beff5b8a424"
ramdisk-hash: "a95d4ab06189460f3b3d13a33e421887b5f3ea09a10535ae0d4c92beb7ff631d"
zimage-hash: "06964b68e5ccdedd4363dff3986f99686d3c9cb5225e8e4c3d840a1d9cd1330b"
md5-hash: "bc0235e45a8423f4c46dc0d9699759b5"
hash: "a222d37f369d71042057ccb592f40c7c81e9b988a95d69fa166c7c2a611da99c"
ramdisk-hash: "11ebadba5d831ad6f31258ab317ed1f7cbfe18243413f9f81291b894b5f7a591"
zimage-hash: "d6059bcd7160ed1f775a9323599ac8860b60ada32f0a4f3e5ca166c15a17784e"
md5-hash: "b9b452577b38adc82aca42e031be267b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -9,12 +9,13 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
#support_ssd_cache: yes
#support_ssd_cache: "yes"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "apollolake"
@@ -30,7 +31,7 @@ serial:
suffix: "numeric"
disks: 4
flags:
- "fma"
- "movbe"
builds:
42218:
ver: "7.0.1"
@@ -42,10 +43,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS918%2B_42218.pat"
hash: "a403809ab2cd476c944fdfa18cae2c2833e4af36230fa63f0cdee31a92bebba2"
ramdisk-hash: "4b7a7a271a3b2158d9193a4f0e75c59590949ad7b4e26d546f46cc2ee8504d51"
zimage-hash: "338ba514066da01d0c1f770418916b9b96f5355d88a7b55b398d2726db591fdb"
md5-hash: "71c028f92497e4722998e4208fe75774"
hash: "a662d11999c266dfa86c54f7ba01045c6644c191124195a22d056d618790dffe"
ramdisk-hash: "d27320b536da0ac82d7959e0492180b3a25ef78a3997f65cc4ccddc426b921bd"
zimage-hash: "7311b04f7462847f529cf966c7b332097354692485c8157643d89441e2a81cd0"
md5-hash: "0c8a0d2dc6f1d7e37ee63d74760808b8"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -6,6 +6,8 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: "igfx_off"
HddEnableDynamicPower: 1
@@ -38,10 +40,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat"
hash: "fe2a4648f76adeb65c3230632503ea36bbac64ee88b459eb9bfb5f3b8c8cebb3"
ramdisk-hash: "f7dd1317f24ec6b9bac839e37f66b59030218c7f97c06f73f1f54ed0f892c4aa"
zimage-hash: "346b68f662b50f47d3ee6c2bc9de6302e4b60436142c24ee88b620c7afd1ba06"
md5-hash: "7764ad4fca0a11ae0ebd7ccd4a49e1aa"
hash: "b9b77846e0983f50496276bec6bcdfcfadd4c1f9f0db8ed2ca5766f131ddf97f"
ramdisk-hash: "8607c34fff3a13c75dbc1a9c730de2b2cf649697d6244fd37047090d2e2ba897"
zimage-hash: "70e93678f3932c35c5e884f950e50b36f8dc6366f96dd9a454c8d47ecbaee5de"
md5-hash: "55a7e4ccbf6fcba9238a11976a4a7381"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -6,6 +6,8 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
synoboot2:
@@ -20,10 +22,7 @@ dom: 2
dt: true
serial:
prefix:
- "2030"
- "2040"
- "20C0"
- "2150"
- "2270"
middle: "TQR"
suffix: "alpha"
disks: 4

View File

@@ -7,11 +7,12 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: "igfx_off"
HddEnableDynamicPower: 1
vender_format_version: 2
syno_port_thaw: 1
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"

View File

@@ -4,17 +4,17 @@ synoinfo: &synoinfo
support_memory_compatibility: "no"
esataportcfg: "0x00"
support_bde_internal_10g: "no"
supportraidgroup: "no"
support_syno_hybrid_raid: "yes"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
supportnvme: "yes"
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "denverton"
@@ -28,7 +28,7 @@ serial:
middle: "RFR"
suffix: "alpha"
flags:
- "fma"
- "movbe"
disks: 4
builds:
42218:
@@ -41,10 +41,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3219_42218.pat"
hash: "3557df23ff6af9bbb0cf46872ba2fc09c344eb303a38e8283dbc9a46e5eae979"
ramdisk-hash: "6820f900bf2870660541b83f9741a0b70e05e8871bc41c006c9d688105c97f7c"
zimage-hash: "ef97f2d64f3f7f8c5e3f4e8fee613d385d7888826f56e119f1885a722c95c7cc"
md5-hash: "40917aaf18d069f862f9536ac5504385"
hash: "b3498a20aeb7c7c36deca0f4393172d4db7b51aa4fb87eaace83fe224d935e3b"
ramdisk-hash: "5b301519fe08200e4cb368b7d23e4ce460d5412428126b9496084ceae3f6d67e"
zimage-hash: "8b58e602317286bdd25481c4927a791507589ce0b7c29f1ad394d08b634d41a3"
md5-hash: "4345e7cff9ba4fe97793c254c87b3ed5"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -1,18 +1,20 @@
id: "DVA3221"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
support_memory_compatibility: "yes"
esataportcfg: "0x00"
support_bde_internal_10g: "no"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
supportnvme: "yes"
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "denverton"
@@ -27,7 +29,7 @@ serial:
middle: "SJR"
suffix: "alpha"
flags:
- "fma"
- "movbe"
disks: 4
builds:
42218:
@@ -40,10 +42,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3221_42218.pat"
hash: "01f101d7b310c857e54b0177068fb7250ff722dc9fa2472b1a48607ba40897ee"
ramdisk-hash: "0825958923a5e67d967389769cff5fb7a04a25b98a2826c4c1e8aa7b8146dc8b"
zimage-hash: "ef97f2d64f3f7f8c5e3f4e8fee613d385d7888826f56e119f1885a722c95c7cc"
md5-hash: "b8bd6562290d06dd3a7360f3af330bec"
hash: "6722c73c51070dde2f542659d7728c497fc846256da2c9cf017177476de0bb09"
ramdisk-hash: "86a7450cdc461049c4cefe3fe3a1f9d241ea3c484f72f5667d7cd27f2842c8d6"
zimage-hash: "8b58e602317286bdd25481c4927a791507589ce0b7c29f1ad394d08b634d41a3"
md5-hash: "e3455afd4644cb882cb2c9bede08c7bf"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -6,6 +6,8 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: igfx_off
SMBusHddDynamicPower: 1
@@ -36,10 +38,10 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_FS2500_42218.pat"
hash: "4d060be8afec548fdb042bc8095524f10ff200033cab74df37ae07f3de5eaa69"
ramdisk-hash: "cbe9099c57f23ba53415574b011580218fa55a0bdb83c4e4bba9e27100e5379d"
zimage-hash: "f6816165a52b1f53ce44a45878fe06641da34e9478947f826a236c1a6548f8fd"
md5-hash: "70550293c612c1fd9a8d1b7485173877"
hash: "3fbd5defbc0fef0d152494033f3e817c330525b70e356a9e9acd2b72d9806b59"
ramdisk-hash: "8d66ddfa947b38c0e407d4c5efd7558b1a9392e04fd83fe9f162e1aa546f8da8"
zimage-hash: "e083a8aec10537582ed0dd6d79bc358d9aff828b3e256996ef1e4f4bf418dd5d"
md5-hash: "9562d49a07f5481208b672ff777f3cbf"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -5,16 +5,15 @@ synoinfo: &synoinfo
support_bde_internal_10g: "no"
esataportcfg: "0x0"
support_led_brightness_adjustment: "no"
support_syno_hybrid_raid: "yes"
supportraidgroup: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
syno_hdd_detect: 0
syno_port_thaw: 1
vender_format_version: 2
elevator: elevator
platform: "broadwellnk"
@@ -23,8 +22,8 @@ beta: true
dom: 2
serial:
prefix:
- "0000"
middle: "XXX"
- "2250"
middle: "T2R"
suffix: "alpha"
disks: 16
dt: false
@@ -39,7 +38,7 @@ builds:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_RS4021xs%2B_42218.pat"
hash: "7afca3970ac7324d7431c1484d4249939bedd4c18ac34187f894c43119edf3a1"
hash: "2a32266b7bcf0b2582b5afd9e39dc444e7cb40eaf4ccfdbfedf4743af821f11c"
ramdisk-hash: "3aa9d810064747fca6d0a3ab4c979bd82b49fc0d166dfe714261c2a22145cc70"
zimage-hash: "17607e1739c8acc9903272ebd981bccb27b51057cdcb3cc446e5c5149db452d3"
md5-hash: "46d9eb6aba71dbd61ba0394e575b6d58"
@@ -61,9 +60,9 @@ builds:
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_RS4021xs%2B_42661.pat"
hash: "496b64e431dafa34cdebb92da8ac736bf1610fe157f03df7e6d11152d60991f5"
ramdisk-hash: "143e475fe73c0adb3377361402b4baad21448476e844e55e16d1ed51ffc4c971"
zimage-hash: "e073dd84054f652811e0ae1932af2c7cdbd5fb6e5f18f265097072b8af4605e8"
md5-hash: "ddbbbcf8ccb8d9d345df3e08debc66f6"
ramdisk-hash: "f2b99b4c05559376d34d30d6446c30a8b3f44f516e5a041299d03be9c7fd0095"
zimage-hash: "d6059bcd7160ed1f775a9323599ac8860b60ada32f0a4f3e5ca166c15a17784e"
md5-hash: "cbcb77548de26b6843ab31d7a7258b62"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"

View File

@@ -6,6 +6,8 @@ synoinfo: &synoinfo
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
synoboot2:

View File

@@ -32,6 +32,9 @@ MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
UNIQUE=`readModelKey "${MODEL}" "unique"`
if [ ${BUILD} -ne ${buildnumber} ]; then
echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m"
@@ -55,15 +58,15 @@ declare -A ADDONS
declare -A USERMODULES
# Read synoinfo and addons from config
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
# Read modules from user config
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
@@ -122,7 +125,7 @@ cp "${PATCH_PATH}/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
gzip -dc "${LKM_PATH}/rp-${PLATFORM}-${KVER}-${LKM}.ko.gz" > "${RAMDISK_PATH}/usr/lib/modules/rp.ko"
# Addons
MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
#MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
# Check if model needs Device-tree dynamic patch
DT="`readModelKey "${MODEL}" "dt"`"
@@ -130,20 +133,20 @@ echo -n "."
mkdir -p "${RAMDISK_PATH}/addons"
echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh"
echo 'echo "addons.sh called with params ${@}"' >> "${RAMDISK_PATH}/addons/addons.sh"
echo "export PLATFORM=${PLATFORM}" >> "${RAMDISK_PATH}/addons/addons.sh"
echo "export MODEL=${MODEL}" >> "${RAMDISK_PATH}/addons/addons.sh"
echo "export BUILD=${BUILD}" >> "${RAMDISK_PATH}/addons/addons.sh"
echo "export LAYOUT=${LAYOUT}" >> "${RAMDISK_PATH}/addons/addons.sh"
echo "export KEYMAP=${KEYMAP}" >> "${RAMDISK_PATH}/addons/addons.sh"
chmod +x "${RAMDISK_PATH}/addons/addons.sh"
# Required addons: eudev, dtbpatch/maxdisks, powersched
# Required addons: eudev, disks, wol
installAddon eudev
echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
if [ "${DT}" = "true" ]; then
installAddon dtbpatch
echo "/addons/dtbpatch.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
else
installAddon maxdisks
echo "/addons/maxdisks.sh \${1} ${MAXDISKS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
fi
installAddon powersched
echo "/addons/powersched.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
installAddon disks
echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
installAddon wol
echo "/addons/wol.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
# User addons
for ADDON in ${!ADDONS[@]}; do
PARAMS=${ADDONS[${ADDON}]}

View File

@@ -1 +1 @@
1.0-beta10
1.1-beta2a

View File

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

View File

@@ -14,6 +14,19 @@ insmod ext2
set default="boot"
set timeout="5"
set timeout_style="menu"
set vesa_mode=1
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ]; then
set default="${next_entry}"
unset next_entry
save_env next_entry
fi
if [ "${vesa_mode}" ]; then
set vesa_mode=${vesa_mode}
fi
function load_video {
if [ x$feature_all_video_module = xy ]; then
@@ -29,46 +42,37 @@ function load_video {
fi
}
if loadfont unicode ; then
load_video
if loadfont unicode; then
set gfxmode=auto
load_video
insmod gfxterm
#set gfxpayload=800x600
terminal_output gfxterm
fi
terminal_output gfxterm
#set menu_color_normal=cyan/blue
#set menu_color_highlight=white/blue
set menu_color_normal=light-green/blue
set menu_color_highlight=black/green
if serial --unit=0 --speed=115200; then
terminal_input --append serial_com0
terminal_output --append serial_com0
fi
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${default}" ]; then
set default="${default}"
fi
if [ "${next_entry}" ]; then
set default="${next_entry}"
set next_entry=
save_env next_entry
fi
if serial --unit=0 --speed=115200; then
terminal_input --append serial_com0
terminal_output --append serial_com0
fi
function set_gfxpayload {
if [ ${vesa_mode} -eq 1 ]; then
set gfxpayload=keep
else
set gfxpayload=text
fi
}
set TERM=tty2
search --set=root --label "ARPL3"
if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
if [ "${default}" = "direct" ]; then
set timeout="1"
menuentry 'Boot DSM kernel directly' --id direct {
load_video
set_gfxpayload
echo "Loading DSM kernel..."
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..."
@@ -77,7 +81,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
}
fi
menuentry 'Boot DSM' --id boot {
load_video
set_gfxpayload
echo "Loading kernel..."
linux /bzImage-arpl console=${TERM} net.ifnames=0
echo "Loading initramfs..."
@@ -85,22 +89,35 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
echo "Booting..."
}
menuentry 'Force re-install DSM' --id junior {
load_video
set_gfxpayload
echo "Loading kernel..."
linux /bzImage-arpl console=${TERM} net.ifnames=0 force_junior
echo "Loading initramfs..."
initrd /initrd-arpl
echo "Booting..."
}
else
set timeout="1"
fi
menuentry 'Configure loader' --id config {
load_video
set_gfxpayload
echo "Loading kernel..."
linux /bzImage-arpl console=${TERM} net.ifnames=0 IWANTTOCHANGETHECONFIG
echo "Loading initramfs..."
initrd /initrd-arpl
echo "Booting..."
}
if [ ${vesa_mode} = 1 ]; then
menuentry 'Change vesa to text video mode' --id videomode {
set vesa_mode=0
save_env vesa_mode
configfile ${prefix}/grub.cfg
}
else
menuentry 'Change text to vesa video mode' --id videomode {
set vesa_mode=1
save_env vesa_mode
reboot
configfile ${prefix}/grub.cfg
}
fi

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.

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