Compare commits

..

252 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
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
029b97b981 Merge pull request #372 from fbelavenuto/resolve-314
Resolving #314
2022-11-30 16:02:39 -03:00
Fabio Belavenuto
950166fc7d Resolving #314 2022-11-30 16:02:11 -03:00
Fabio Belavenuto
5afb934769 Merge pull request #371 from fbelavenuto/eudev-hwdb
Adding eudev with hwdb
2022-11-30 15:09:36 -03:00
Fabio Belavenuto
d1deb55921 Adding eudev with hwdb 2022-11-30 15:09:16 -03:00
Fabio Belavenuto
cc8c6a3812 Merge pull request #370 from fbelavenuto/rss-923
adding RSS for 923+ beta model
2022-11-30 14:14:13 -03:00
Fabio Belavenuto
523bbfbc50 adding RSS for 923+ beta model 2022-11-30 14:13:54 -03:00
Fabio Belavenuto
2d76ba320f Merge pull request #369 from fbelavenuto/old-eudev
Using old but functional eudev
2022-11-30 14:07:40 -03:00
Fabio Belavenuto
5495484c9a Using old but functional eudev 2022-11-30 14:07:26 -03:00
Fabio Belavenuto
26a6f25428 testing Sa6400 2022-11-30 13:50:27 -03:00
Fabio Belavenuto
7b67dd0456 Merge pull request #368 from fbelavenuto/beta6
Starting beta6 - fixing eudev and docker imgs
2022-11-30 13:43:06 -03:00
Fabio Belavenuto
aa0976ca4f Starting beta6 - fixing eudev and docker imgs 2022-11-30 13:39:07 -03:00
Fabio Belavenuto
f7c0b4fcd5 Merge pull request #366 from fbelavenuto/bin-update
Bin update
2022-11-30 09:07:02 -03:00
Fabio Belavenuto
08af5fd185 Bin update 2022-11-30 09:06:21 -03:00
Fabio Belavenuto
7ef9a87347 Merge pull request #364 from fbelavenuto/fix-toolkit
Fixing toolkit
2022-11-29 15:45:08 -03:00
Fabio Belavenuto
b21e1e4924 Fixing toolkit 2022-11-29 15:44:34 -03:00
Fabio Belavenuto
56c214c2a8 Merge pull request #363 from fbelavenuto/beta5
Starting beta5, update addons/modules
2022-11-29 12:34:41 -03:00
Fabio Belavenuto
d903e4237b Starting beta5, update addons/modules 2022-11-29 12:34:04 -03:00
Fabio Belavenuto
6f238af8c1 Merge pull request #358 from fbelavenuto/binaries
Update binaries
2022-11-28 11:12:18 -03:00
Fabio Belavenuto
3b490c9c86 Update binaries 2022-11-28 11:12:00 -03:00
Fabio Belavenuto
a0120f8d5d Merge pull request #357 from fbelavenuto/latest-binaries
Latest addons/modules/lkms
2022-11-28 10:53:54 -03:00
Fabio Belavenuto
e4622f92d7 Latest addons/modules/lkms 2022-11-28 10:47:08 -03:00
Fabio Belavenuto
3898e3c3d9 Merge pull request #356 from fbelavenuto/new-ds923+
Adding DS923+
2022-11-28 10:45:32 -03:00
Fabio Belavenuto
a8534dccf5 Adding DS923+ 2022-11-28 10:45:19 -03:00
Fabio Belavenuto
c00c94fdfd Merge pull request #355 from fbelavenuto/docker-toolkit
New docker image syno-toolkit
2022-11-28 10:44:19 -03:00
Fabio Belavenuto
f6dbd4b8cd New docker image syno-toolkit 2022-11-28 10:44:00 -03:00
Fabio Belavenuto
efb54e1345 Merge pull request #354 from fbelavenuto/351-the-installer-will-overwrite-dsm-loader-when-direct-boot-is-true
Fixing directboot DoM EFI variables
2022-11-28 09:01:36 -03:00
Fabio Belavenuto
d220958442 Fixing directboot DoM EFI variables 2022-11-28 09:01:16 -03:00
Fabio Belavenuto
d95a88f513 Merge pull request #349 from fbelavenuto/r1000
Adding r1000 platform into docker image
2022-11-25 16:38:59 -03:00
Fabio Belavenuto
36fca1cb0d Adding r1000 platform into docker image 2022-11-25 16:38:33 -03:00
Fabio Belavenuto
d91468ba66 Merge pull request #348 from fbelavenuto/r1000
Adding r1000 platform
2022-11-25 13:23:00 -03:00
Fabio Belavenuto
a136b3e3ec Adding r1000 platform 2022-11-25 13:22:21 -03:00
Fabio Belavenuto
ea43525e6b Update arpl_defconfig 2022-11-22 09:02:38 -03:00
Fabio Belavenuto
8fe46adb66 Merge pull request #342 from fbelavenuto/more-timeout
Changed IP timeout to 30 secs
2022-11-22 08:49:56 -03:00
Fabio Belavenuto
35d66d37cf Changed IP timeout to 30 secs 2022-11-22 08:49:40 -03:00
Fabio Belavenuto
55d3cf0bde Merge pull request #333 from fbelavenuto/i915
Added i915 addons
2022-11-18 17:21:11 -03:00
Fabio Belavenuto
8411febf6d Added i915 addons 2022-11-18 17:20:47 -03:00
Fabio Belavenuto
227e1f19a7 Merge pull request #332 from fbelavenuto/igc-1.2.8
Updated igc to 1.2.8
2022-11-18 16:48:21 -03:00
Fabio Belavenuto
2fadc03782 Updated igc to 1.2.8 2022-11-18 16:47:43 -03:00
Fabio Belavenuto
ab60d853bb Merge pull request #330 from fbelavenuto/dev
Adding latest addons, LKMs and modules
2022-11-17 13:01:32 -03:00
Fabio Belavenuto
30464e943c Adding latest addons, LKMs and modules 2022-11-17 13:00:51 -03:00
Fabio Belavenuto
08e783eb7f Merge pull request #328 from fbelavenuto/fixes
fix dirty flag when change LKM type
2022-11-17 11:56:45 -03:00
Fabio Belavenuto
887122e9d8 fix dirty flag when change LKM type 2022-11-17 11:55:50 -03:00
Fabio Belavenuto
076b09d315 Merge pull request #326 from fbelavenuto/fix-grub-cmdline-direct
Fix grup environment overflow
2022-11-16 09:53:38 -03:00
Fabio Belavenuto
0e071628dd Fix grup environment overflow 2022-11-16 09:52:22 -03:00
Fabio Belavenuto
6edde1245f Merge pull request #324 from fbelavenuto/support_led_brightness_adjustment
Added support_led_brightness_adjustment to no
2022-11-16 08:20:26 -03:00
Fabio Belavenuto
b2830395c1 Added support_led_brightness_adjustment to no 2022-11-16 08:20:11 -03:00
Fabio Belavenuto
cf8ab044ee Documentation 2022-11-07 13:43:43 -03:00
Fabio Belavenuto
b86dbb490b Merge pull request #308 from fbelavenuto/mods-addons
Adding lasts addons/modules
2022-11-07 13:11:15 -03:00
Fabio Belavenuto
ea0fba0033 Adding lasts addons/modules 2022-11-07 13:11:01 -03:00
Fabio Belavenuto
f141a527ef Merge pull request #299 from fbelavenuto/dsm-beta-bn
Removed buildnumber 42951, do not exists anymore in Synology servers
2022-11-03 10:13:59 -03:00
Fabio Belavenuto
bf1ac9f08c Removed buildnumber 42951, do not exists anymore in Synology servers 2022-11-03 10:13:28 -03:00
Fabio Belavenuto
38aeba975e Documentation 2022-10-31 13:24:34 -03:00
Fabio Belavenuto
5c6218f89d Merge pull request #290 from fbelavenuto/dev
Adding remove-pma addon
2022-10-31 12:28:23 -03:00
Fabio Belavenuto
3e93b672ae Adding remove-pma addon 2022-10-31 12:27:11 -03:00
Fabio Belavenuto
20307af292 Documentation 2022-10-27 13:37:46 -03:00
Fabio Belavenuto
a9313b93c6 Documentation 2022-10-26 15:20:39 -03:00
Fabio Belavenuto
1335ff30a2 Merge pull request #276 from fbelavenuto/update-bug
Fix bug
2022-10-26 14:23:50 -03:00
Fabio Belavenuto
ebc92d686a Fix bug 2022-10-26 14:23:33 -03:00
Fabio Belavenuto
5f7807f941 Merge pull request #275 from fbelavenuto/first-beta
First beta release, with new update system
2022-10-26 14:01:06 -03:00
Fabio Belavenuto
7b15e734a6 First beta release, with new update system 2022-10-26 14:00:47 -03:00
Fabio Belavenuto
7f76a8c85a Merge pull request #274 from fbelavenuto/update
Bug fix
2022-10-26 13:52:20 -03:00
Fabio Belavenuto
f2fd6dd4fb Bug fix 2022-10-26 13:51:55 -03:00
Fabio Belavenuto
c7cc1ed8f6 Merge pull request #273 from fbelavenuto/update
Fix little bug
2022-10-26 13:49:02 -03:00
Fabio Belavenuto
caa131b4de Fix little bug 2022-10-26 13:48:41 -03:00
Fabio Belavenuto
689effd9d1 Merge pull request #272 from fbelavenuto/update
Testing new update method
2022-10-26 13:40:06 -03:00
Fabio Belavenuto
a989fb307f Testing new update method 2022-10-26 13:39:41 -03:00
Fabio Belavenuto
02563f4f1b Merge pull request #271 from fbelavenuto/update
More tests
2022-10-26 13:23:41 -03:00
Fabio Belavenuto
649b594600 More tests 2022-10-26 13:22:55 -03:00
Fabio Belavenuto
cbc550799d Merge pull request #270 from fbelavenuto/update
more testing
2022-10-26 13:08:50 -03:00
Fabio Belavenuto
d9db774dce more testing 2022-10-26 13:08:23 -03:00
Fabio Belavenuto
b6efcc6589 Merge pull request #269 from fbelavenuto/update
More testing
2022-10-26 12:49:12 -03:00
Fabio Belavenuto
0edc57af1d More testing 2022-10-26 12:48:46 -03:00
Fabio Belavenuto
d22a70a407 Merge pull request #268 from fbelavenuto/update
Testing new update method
2022-10-26 12:36:09 -03:00
Fabio Belavenuto
6a492b1cea Testing new update method 2022-10-26 12:35:11 -03:00
Fabio Belavenuto
e89c326598 Merge pull request #266 from fbelavenuto/powersched
Adding power schedule addon and RTC modules
2022-10-25 15:27:01 -03:00
Fabio Belavenuto
0568615f1f Adding power schedule addon and RTC modules
Removing null update URLs
2022-10-25 15:25:53 -03:00
Fabio Belavenuto
341a94e0ff Merge pull request #249 from fbelavenuto/dev
Adding VMDK dynamic img
2022-10-14 16:59:57 -03:00
Fabio Belavenuto
3606fb645e Adding VMDK dynamic img 2022-10-14 16:59:40 -03:00
Fabio Belavenuto
f9831c066e Merge pull request #246 from fbelavenuto/110-compatibility-hp-g7-n54l
Added function to boot directly to DSM from Grub
2022-10-13 13:45:34 -03:00
Fabio Belavenuto
c1920c76ab Added function to boot directly to DSM from Grub 2022-10-13 13:45:09 -03:00
Fabio Belavenuto
98c7c67b23 Merge pull request #240 from fbelavenuto/delete-i915
Removing i915 addon
2022-10-10 10:57:35 -03:00
Fabio Belavenuto
18ee7e55ab Removing i915 addon 2022-10-10 10:57:23 -03:00
Fabio Belavenuto
25b62d3e6c Merge pull request #239 from fbelavenuto/ixgbe-pocopico
Using ixgbe from pocopico
2022-10-10 10:32:09 -03:00
Fabio Belavenuto
858c8ea847 Merge pull request #238 from fbelavenuto/revert-237-fw-place
Revert "Movel place of firmwares"
2022-10-10 10:31:49 -03:00
Fabio Belavenuto
6b5ad4be4e Revert "Movel place of firmwares" 2022-10-10 10:31:41 -03:00
Fabio Belavenuto
7a1eb5cbdb Using ixgbe from pocopico 2022-10-10 10:30:35 -03:00
Fabio Belavenuto
1ac0ddaee5 Merge pull request #237 from fbelavenuto/fw-place
Movel place of firmwares
2022-10-10 10:14:45 -03:00
Fabio Belavenuto
1712f61995 Movel place of firmwares 2022-10-10 10:14:32 -03:00
Fabio Belavenuto
0bbedf2bbc Merge pull request #236 from fbelavenuto/grub-no-gfx
Grub with no fonts - text mode ony
2022-10-10 10:04:27 -03:00
Fabio Belavenuto
deb2cd1884 Grub with no fonts - text mode ony 2022-10-10 10:04:12 -03:00
Fabio Belavenuto
eed06af75f Merge pull request #221 from fbelavenuto/grub-1st-bug
Fix grub first stage (UEFI)
2022-10-05 09:31:53 -03:00
Fabio Belavenuto
e4332d44fa Fix grub first stage (UEFI) 2022-10-05 09:31:36 -03:00
Fabio Belavenuto
2fb04769ba Merge pull request #219 from fbelavenuto/bug-netif_num
Fixing bug checking netif_num
2022-10-04 14:31:07 -03:00
Fabio Belavenuto
1a7f847334 Fixing bug checking netif_num 2022-10-04 14:30:52 -03:00
Fabio Belavenuto
cd44a7eb64 Merge pull request #218 from fbelavenuto/select-modules
Adding option to configure modules to use in DSM
2022-10-04 14:05:30 -03:00
Fabio Belavenuto
2313062eec Adding option to configure modules to use in DSM 2022-10-04 14:04:58 -03:00
Fabio Belavenuto
52eab13d15 Merge pull request #204 from fbelavenuto/columns-bug
Fix $COLUMNS visual bug
2022-09-29 16:33:51 -03:00
Fabio Belavenuto
a19a1dd1a5 Fix $COLUMNS visual bug 2022-09-29 16:33:15 -03:00
Fabio Belavenuto
08fca3caa3 Merge pull request #196 from fbelavenuto/dbgutils
Adding patches for dbgutils save log resource
2022-09-26 13:54:53 -03:00
Fabio Belavenuto
4616fede0b Adding patches for dbgutils save log resource 2022-09-26 13:54:21 -03:00
Fabio Belavenuto
70272bdc98 Merge pull request #194 from the-leaf/main
add lib/firmware
2022-09-26 08:31:27 -03:00
the-leaf
3c5b8d43a2 add lib/firmware 2022-09-24 23:15:55 +07:00
1095 changed files with 3639 additions and 1267 deletions

View File

@@ -14,23 +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
@@ -39,30 +80,37 @@ 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: |
VERSION=`<VERSION`
echo "::set-output name=VERSION::${VERSION}"
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
# Remove old files
rm -rf .buildroot/output/target/opt/arpl
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"
@@ -76,6 +124,7 @@ jobs:
# Copy files
echo "Copying files"
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
echo "${VERSION}" > files/board/arpl/p1/ARPL-VERSION
cp -Ru files/* .buildroot/
cd .buildroot
echo "Generating default config"
@@ -84,7 +133,7 @@ jobs:
echo "Building..."
make BR2_EXTERNAL=../external
cd -
#qemu-img convert -O vmdk arpl.img arpl.vmdk
qemu-img convert -O vmdk arpl.img arpl-dyn.vmdk
qemu-img convert -O vmdk -o adapter_type=lsilogic arpl.img -o subformat=monolithicFlat arpl.vmdk
# Zip image and generate checksum
@@ -92,9 +141,23 @@ jobs:
shell: bash
run: |
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.img.zip" arpl.img
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk.zip" arpl*.vmdk
(cd .buildroot/output/images && sha256sum bzImage rootfs.cpio.xz) >> sha256sum
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
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
@@ -112,7 +175,6 @@ jobs:
with:
files: |
arpl-${{ steps.build.outputs.VERSION }}.img.zip
arpl-${{ steps.build.outputs.VERSION }}.vmdk.zip
.buildroot/output/images/bzImage
.buildroot/output/images/rootfs.cpio.xz
sha256sum
arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip
arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip
update.zip

8
.gitignore vendored
View File

@@ -5,7 +5,11 @@ arpl*.vmdk
*.zip
.buildroot
test*.sh
docker/Dockerfile
docker/cache
docker/syno-compiler/Dockerfile
cache
*.bak
*.o
/files/board/arpl/p3/addons
/files/board/arpl/p3/lkms
/files/board/arpl/p3/modules
/tests

View File

@@ -5,3 +5,4 @@ broadwellnk 4.4.180
denverton 4.4.180
geminilake 4.4.180
v1000 4.4.180
r1000 4.4.180

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,35 +1,97 @@
# 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.
It is still in alpha stage, with little documentation, but it is functional. I'm Brazilian and my English is not good, so I apologize for my translations.
I'm Brazilian and my English is not good, so I apologize for my translations.
I tried to make the system as user-friendly as possible, to make life easier. The loader automatically detects which device is being used, SATADom or USB, detecting its VID and PID correctly. redpill-lkm has been edited to allow booting the kernel without setting the variables related to network interfaces so the loader (and user) doesn't have to worry about that. The Jun's code that makes the zImage and Ramdisk patch is embedded, if there is a change in "zImage" or "rd.gz" by some smallupdate, the loader re-applies the patches. The most important kernel modules are built into the DSM ramdisk image for automatic peripheral detection.
I tried to make the system as user-friendly as possible, to make life easier. The loader automatically detects which device is being used, SATADoM or USB, detecting its VID and PID correctly. redpill-lkm has been edited to allow booting the kernel without setting the variables related to network interfaces so the loader (and user) doesn't have to worry about that. The Jun's code that makes the zImage and Ramdisk patch is embedded, if there is a change in "zImage" or "rd.gz" by some smallupdate, the loader re-applies the patches. The most important kernel modules are built into the DSM ramdisk image for automatic peripheral detection.
# Important
# Important considerations
## It is highly recommended to use an SSD for the loader in the case of the option via DoM or a fast USB flash drive
- Some users have experienced an excessively long time to boot. In this case is highly recommended to use an SSD for the loader in the case of the option via DoM or a fast USB flash drive;
## You must have at least 4GB of RAM, both in baremetal and VMs
- You must have at least 4GB of RAM, both in baremetal and VMs;
## The DSM kernel is compatible with SATA ports, not SAS/SCSI/etc. For device-tree models only SATA ports work. For the other models, another type of disks may work.
- The DSM kernel is compatible with SATA ports, not SAS/SCSI/etc. For device-tree models only SATA ports work. For the other models, another type of disks may work;
- It is possible to use HBA cards, however SMART and serial numbers are only functional on DS3615xs, DS3617xs and DS3622xs+ models.
# Use
To use this project, download the latest image available and burn it to a USB stick or SATA disk-on-module. Set the PC to boot from the burned media and follow the informations on the screen. When booting, the user can call the "menu.sh" command from the computer itself, access via SSH or use the virtual terminal (ttyd) by typing the address provided on the screen (http://(ip):7681). The loader will automatically increase the size of the last partition and use this space as cache if it is larger than 2GiB.
## General
The menu system is dynamic and I hope it is intuitive enough that the user can use it without any problems. Its allows you to choose a model, the existing buildnumber for the chosen model, type or randomly create a serial number, add/remove addons, add/remove/view "cmdline" and "synoinfo" entries, choose the LKM version, create the loader, boot, manually edit the configuration file, choose a keymap, update and exit.
To use this project, download the latest image available and burn it to a USB stick or SATA disk-on-module. Set the PC to boot from the burned media and follow the informations on the screen.
Changing addons and synoinfo entries require re-creating the loader, cmdline entries do not.
The loader will automatically increase the size of the last partition and use this space as cache if it is larger than 2GiB.
## Acessing loader
### Via terminal
Call the "menu.sh" command from the computer itself.
### Via web
From another machine into same network, type the address provided on the screen `http://<ip>:7681` in browser.
### Via ssh
From another machine into same network, use a ssh client, username `root` and password `Redp1lL-1s-4weSomE`
## Using loader
The menu system is dynamic and I hope it is intuitive enough that the user can use it without any problems.
There is no need to configure the VID/PID (if using a USB stick) or define the MAC Addresses of the network interfaces. If the user wants to modify the MAC Address of any interface, uses the "Change MAC" into "cmdline" menu.
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.
## Quickstart guide
After booting the loader, the following screen should appear. Type menu.sh and press `<ENTER>`:
![](doc/first-screen.png)
If you prefer, you can access it via the web:
![](doc/ttyd.png)
Select the "model" option and choose the model you prefer:
![](doc/model.png)
Select the "Buildnumber" option and choose the first option:
![](doc/buildnumber.png)
Go to "Serial" menu and choose "Generate a random serial number".
Select the "Build" option and wait for the loader to be generated:
![](doc/making.png)
Select the "Boot" option and wait for the DSM to boot:
![](doc/DSM%20boot.png)
The DSM kernel does not display messages on the screen, so it is necessary to continue the process of configuring DSM through the browser by accessing the address `http://<ip>`.
There are several tutorials on how to configure DSM over the internet, which will not be covered here.
# Tutorials
An ARPL user (Rikkie) created a tutorial to install ARPL on a proxmox server:
https://hotstuff.asia/2023/01/03/xpenology-with-arpl-on-proxmox-the-easy-way/
# Troubles/questions/etc
Please search the forums at https://xpenology.com/forum if your question/problem has been discussed and resolved. If you can't find a solution, use github issues.
# Thanks
All code was based on the work of TTG, pocopico, jumkey and others involved in continuing TTG's original redpill-load project.

12
TODO
View File

@@ -1,6 +1,10 @@
A fazer
- Checar se tem como atualizar microcode via addon/modules/whatever...
- Estudar acrescentar modo simples e avançado do menu
- Checar NVME no modelo DS920+, DS918+
- Checar módulo tg3 no próprio loader (BCM57780 [14e4:1692]) (#31)
- "Sensitive data" (#312)
- Checar drivers para MMC/SD/eMMC
- Checar drivers para chelsio T420, T520 e T580
- Melhorar função getAllModules()
Concluidos:
- Generalizar código dos addons
@@ -31,3 +35,7 @@ Concluidos:
- Descobrir como é o serial do DS2422+
- Retirar o ttyd da memória quando o root do dsm dar boot
- Adicionar mais binários para o addon dbgutils (nano, strace, etc)
- Checar se tem como atualizar microcode via addon/modules/whatever... (NOP)
- Estudar acrescentar modo simples e avançado do menu (NOP)
- J4125, HP G7 N40L desligando (#110 #160)
- Ver se vale a pena colocar uma opção para configurações extras, como escolher qual módulo realtek usar (R8168 ou R8169)

View File

@@ -1 +1 @@
0.4-alpha11
1.1-beta2a

BIN
doc/DSM boot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
doc/buildnumber.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
doc/first-screen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
doc/making.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
doc/model.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
doc/ttyd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,80 +0,0 @@
#!/usr/bin/env bash
###############################################################################
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`
###############################################################################
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"
# Read platforms/kerver version
echo "Reading platforms"
declare -A PLATFORMS
while read PLATFORM KVER; do
PLATFORMS[${PLATFORM}]="${KVER}"
done <../PLATFORMS
# Download toolkits
mkdir -p cache
for PLATFORM in ${!PLATFORMS[@]}; do
KVER="${PLATFORMS[${PLATFORM}]}"
echo -n "Checking cache/${TOOLKIT_VER}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
if [ ! -f "cache/${TOOLKIT_VER}/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/${TOOLKIT_VER}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"
else
echo "OK"
fi
echo -n "Checking cache/${TOOLKIT_VER}/${PLATFORM}-toolchain.txz... "
if [ ! -f "cache/${TOOLKIT_VER}/${PLATFORM}-toolchain.txz" ]; then
URL=${URLS["${PLATFORM}"]}
echo "Downloading ${URL}"
curl -L "${URL}" -o "cache/${TOOLKIT_VER}/${PLATFORM}-toolchain.txz"
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|@@@TOOLKIT_VER@@@|${TOOLKIT_VER}|g" Dockerfile
}
# 7.0
TOOLKIT_VER="7.0"
TOOLCHAIN_VER="7.0-41890"
GCCLIB_VER="gcc750_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.1
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} --tag fbelavenuto/syno-compiler:latest

View File

@@ -1,9 +1,10 @@
FROM alpine:3.14 AS stage
ARG PLATFORMS="@@@PLATFORMS@@@"
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
ARG GCCLIB_VER="@@@GCCLIB_VER@@@"
# Copy downloaded toolkits
ADD cache/$TOOLKIT_VER /cache
ADD cache /cache
# Extract toolkits
RUN for V in ${PLATFORMS}; do \
echo "${V}" | while IFS=':' read PLATFORM KVER; do \
@@ -12,30 +13,38 @@ 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
RUN apt update --yes && \
apt install --yes --no-install-recommends --no-install-suggests \
apt install --yes --no-install-recommends --no-install-suggests --allow-unauthenticated \
ca-certificates nano curl bc kmod git gettext texinfo autopoint gawk sudo \
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"]

118
docker/syno-compiler/build.sh Executable file
View File

@@ -0,0 +1,118 @@
#!/usr/bin/env bash
CACHE_DIR="cache"
#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() {
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`
###############################################################################
function prepare() {
# Download toolkits
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="${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
# 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
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
#TOOLKIT_VER="7.0"
#TOOLCHAIN_VER="7.0-41890"
#GCCLIB_VER="gcc750_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.1
# 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
docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER} --tag fbelavenuto/syno-compiler:latest

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -e
set -eo pipefail
###############################################################################
function export-vars() {
@@ -9,20 +9,25 @@ function export-vars() {
echo "Use: export-vars <platform>"
exit 1
fi
export PLATFORM="${1}"
export KSRC="/opt/${1}/build"
export CROSS_COMPILE="/opt/${1}/bin/x86_64-pc-linux-gnu-"
export CFLAGS="-I/opt/${1}/include"
export LDFLAGS="-I/opt/${1}/lib"
export LD_LIBRARY_PATH="/opt/${1}/lib"
export ARCH=x86_64
export PATH="/opt/${1}/bin:${PATH}"
export CC="x86_64-pc-linux-gnu-gcc"
export LD="x86_64-pc-linux-gnu-ld"
echo "export PATH=\"/opt/${1}/bin:${PATH}\"" | \
sudo tee /etc/profile.d/path.sh >/dev/null
sudo chmod +x /etc/profile.d/path.sh
}
###############################################################################
function shell() {
cp /opt/${2}/build/System.map /input
cp -fv /opt/${2}/build/.config /opt/${2}/source/
cp -fv /opt/${2}/build/System.map /opt/${2}/source/
cp -fv /opt/${2}/build/Module.symvers /opt/${2}/source/
export-vars $2
shift 2
bash -l $@
@@ -46,11 +51,15 @@ function compile-module {
echo "Platform ${1} not found."
exit 1
fi
unset VALID
echo -e "Compiling module for \033[7m${PLATFORM}-${KVER}\033[0m..."
cp -R /input /tmp
export-vars ${PLATFORM}
make -C "/opt/${PLATFORM}/build" M="/tmp/input" \
${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m modules
PARMS="${PLATFORM^^}-Y=y ${PLATFORM^^}-M=m"
if [ -f "/tmp/input/defines.${1}" ]; then
PARMS+=" `cat "/tmp/input/defines.${1}" | xargs`"
fi
make -j`nproc` -C "/opt/${PLATFORM}/build" M="/tmp/input" ${PARMS} modules
while read F; do
strip -g "${F}"
echo "Copying `basename ${F}`"

Binary file not shown.

View File

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

View File

@@ -15,7 +15,7 @@ BOARD_PATH="${CONFIG_DIR}/board/arpl"
echo "Creating image file"
# Create image zeroed
dd if="/dev/zero" of="${IMAGE_FILE}" bs=1M count=500 conv=sync 2>/dev/null
dd if="/dev/zero" of="${IMAGE_FILE}" bs=1M count=1024 conv=sync 2>/dev/null
# Copy grub stage1 to image
dd if="${BOARD_PATH}/grub.bin" of="${IMAGE_FILE}" conv=notrunc,sync 2>/dev/null
# Create partitions on image

View File

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

View File

@@ -7,13 +7,14 @@ set -e
# Sanity check
loaderIsConfigured || die "Loader is not configured!"
# Print text centralized, if variable ${COLUMNS} is defined
# Print text centralized
clear
[ -z "${COLUMNS}" ] && COLUMNS=50
TITLE="Welcome to Automated Redpill Loader v${ARPL_VERSION}"
printf "\033[1;44m%*s\n" $COLUMNS ""
printf "\033[1;44m%*s\033[A\n" $COLUMNS ""
printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE}+$COLUMNS)/2)) "${TITLE}"
printf "\033[1;44m%*s\033[0m\n" $COLUMNS ""
printf "\033[1;44m%*s\n" ${COLUMNS} ""
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
TITLE="BOOTING..."
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
@@ -25,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
@@ -37,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
@@ -64,17 +65,17 @@ CMDLINE['pid']="${PID}"
CMDLINE['sn']="${SN}"
# Read cmdline
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
while IFS="=" read KEY VALUE; do
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
# Check if machine has EFI
[ -d /sys/firmware/efi ] && EFI=1 || EFI=0
# Read EFI bug value
EFI_BUG="`readModelKey "${MODEL}" "builds.${BUILD}.efi-bug"`"
[ "${MODEL}" = "DS3615" ] && EFI_BUG=1 || EFI_BUG=0
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2`
@@ -88,7 +89,7 @@ fi
# Validate netif_num
NETIF_NUM=${CMDLINE["netif_num"]}
MACS=0
for N in `seq 1 4`; do
for N in `seq 1 9`; do
[ -n "${CMDLINE["mac${N}"]}" ] && MACS=$((${MACS}+1))
done
if [ ${NETIF_NUM} -ne ${MACS} ]; then
@@ -99,17 +100,20 @@ 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_LINE+="console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15"
CMDLINE_DIRECT="${CMDLINE_LINE}"
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
for KEY in ${!CMDLINE[@]}; do
VALUE="${CMDLINE[${KEY}]}"
CMDLINE_LINE+=" ${KEY}"
CMDLINE_DIRECT+=" ${KEY}"
[ -n "${VALUE}" ] && CMDLINE_LINE+="=${VALUE}"
[ -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"
# Wait for an IP
@@ -120,7 +124,7 @@ while true; do
if [ -n "${IP}" ]; then
echo -e ": \033[1;32m${IP}\033[0m"
break
elif [ ${COUNT} -eq 15 ]; then
elif [ ${COUNT} -eq 30 ]; then
echo -e ": \033[1;31mERROR\033[0m"
break
fi
@@ -129,18 +133,23 @@ while true; do
echo -n "."
done
DIRECT="`readConfigKey "directboot" "${USER_CONFIG_FILE}"`"
if [ "${DIRECT}" = "true" ]; then
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
echo -e "\033[1;33mReboot to boot directly in DSM\033[0m"
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
reboot
exit 0
fi
echo -e "\033[1;37mLoading DSM kernel...\033[0m"
# Executes DSM kernel via KEXEC
history -w
sync
if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
echo -e "\033[1;33mWarning, running kexec with --noefi param, strange things will happen!!\033[0m"
kexec --noefi -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
else
kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
fi
/sbin/swapoff -a >/dev/null 2>&1 || true
/bin/umount -a -r >/dev/null 2>&1 || true
echo -e "\033[1;37mBooting...\033[0m"
kexec -e -a >"${LOG_FILE}" 2>&1 || dieLog
poweroff
exit 0

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="0.4-alpha11"
ARPL_VERSION="1.1-beta2a"
# Define paths
TMP_PATH="/tmp"
@@ -8,6 +8,7 @@ RAMDISK_PATH="${TMP_PATH}/ramdisk"
LOG_FILE="${TMP_PATH}/log.txt"
USER_CONFIG_FILE="${BOOTLOADER_PATH}/user-config.yml"
GRUB_PATH="${BOOTLOADER_PATH}/grub"
ORI_ZIMAGE_FILE="${SLPART_PATH}/zImage"
ORI_RDGZ_FILE="${SLPART_PATH}/rd.gz"

View File

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

View File

@@ -0,0 +1,22 @@
###############################################################################
# Return list of all modules available
# 1 - Platform
# 2 - Kernel Version
function getAllModules() {
PLATFORM=${1}
KVER=${2}
# Unzip modules for temporary folder
rm -rf "${TMP_PATH}/modules"
mkdir -p "${TMP_PATH}/modules"
gzip -dc "${MODULES_PATH}/${PLATFORM}-${KVER}.tgz" | tar xf - -C "${TMP_PATH}/modules"
# Get list of all modules
for F in `ls ${TMP_PATH}/modules/*.ko`; do
X=`basename ${F}`
M=${X:0:-3}
DESC=`modinfo ${F} | awk -F':' '/description:/{ print $2}' | awk '{sub(/^[ ]+/,""); print}'`
[ -z "${DESC}" ] && DESC="${X}"
echo "${M} \"${DESC}\""
done
rm -rf "${TMP_PATH}/modules"
}

View File

@@ -37,6 +37,7 @@ fsck.ext2 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
mkdir -p ${BOOTLOADER_PATH}
mkdir -p ${SLPART_PATH}
mkdir -p ${CACHE_PATH}
mkdir -p ${DSMROOT_PATH}
# Mount the partitions
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"
@@ -49,7 +50,10 @@ ln -s "${CACHE_PATH}/ssh" "/etc/ssh"
# Link bash history to cache volume
rm -rf ~/.bash_history
ln -s ${CACHE_PATH}/.bash_history ~/.bash_history
touch ~/.bash_history
if ! grep -q "menu.sh" ~/.bash_history; then
echo "menu.sh " >> ~/.bash_history
fi
# Check if exists directories into P3 partition, if yes remove and link it
if [ -d "${CACHE_PATH}/model-configs" ]; then
rm -rf "${MODEL_CONFIG_PATH}"
@@ -68,11 +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}"
@@ -82,6 +87,7 @@ if [ ! -f "${USER_CONFIG_FILE}" ]; then
writeConfigKey "addons" "{}" "${USER_CONFIG_FILE}"
writeConfigKey "addons.misc" "" "${USER_CONFIG_FILE}"
writeConfigKey "addons.acpid" "" "${USER_CONFIG_FILE}"
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
# Initialize with real MAC
writeConfigKey "cmdline.netif_num" "1" "${USER_CONFIG_FILE}"
writeConfigKey "cmdline.mac1" "${MACF}" "${USER_CONFIG_FILE}"
@@ -141,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
@@ -152,13 +161,15 @@ 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
echo -n "Waiting IP."
while true; do
if [ ${COUNT} -eq 15 ]; then
if [ ${COUNT} -eq 30 ]; then
echo "ERROR"
break
fi

View File

@@ -2,13 +2,14 @@
. /opt/arpl/include/functions.sh
. /opt/arpl/include/addons.sh
. /opt/arpl/include/modules.sh
# Check partition 3 space, if < 2GiB uses ramdisk
RAMCACHE=0
# Check partition 3 space, if < 2GiB is necessary clean cache folder
CLEARCACHE=0
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194304 ]; then
RAMCACHE=1
CLEARCACHE=1
fi
# Get actual IP
@@ -22,6 +23,7 @@ BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
DIRECTBOOT="`readConfigKey "directboot" "${USER_CONFIG_FILE}"`"
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
###############################################################################
@@ -59,89 +61,107 @@ function backtitle() {
###############################################################################
# Shows available models to user choose one
function modelMenu() {
RESTRICT=1
FLGBETA=0
while true; do
echo "" > "${TMP_PATH}/menu"
FLGNEX=0
while read M; do
M="`basename ${M}`"
M="${M::-4}"
PLATFORM=`readModelKey "${M}" "platform"`
DT="`readModelKey "${M}" "dt"`"
BETA="`readModelKey "${M}" "beta"`"
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
# Check id model is compatible with CPU
COMPATIBLE=1
if [ ${RESTRICT} -eq 1 ]; then
for F in `readModelArray "${M}" "flags"`; do
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
COMPATIBLE=0
FLGNEX=1
break
fi
done
if [ -z "${1}" ]; then
RESTRICT=1
FLGBETA=0
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
--infobox "Reading models" 0 0
while true; do
echo "" > "${TMP_PATH}/menu"
FLGNEX=0
while read M; do
M="`basename ${M}`"
M="${M::-4}"
PLATFORM=`readModelKey "${M}" "platform"`
DT="`readModelKey "${M}" "dt"`"
BETA="`readModelKey "${M}" "beta"`"
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
# Check id model is compatible with CPU
COMPATIBLE=1
if [ ${RESTRICT} -eq 1 ]; then
for F in `readModelArray "${M}" "flags"`; do
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
COMPATIBLE=0
FLGNEX=1
break
fi
done
fi
[ "${DT}" = "true" ] && DT="-DT" || DT=""
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ "${resp}" = "f" ]; then
RESTRICT=0
continue
fi
[ "${DT}" = "true" ] && DT="-DT" || DT=""
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ "${resp}" = "f" ]; then
RESTRICT=0
continue
fi
if [ "${resp}" = "b" ]; then
FLGBETA=1
continue
fi
# If user change model, clean buildnumber and S/N
if [ "${MODEL}" != "${resp}" ]; then
MODEL=${resp}
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
BUILD=""
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
SN=""
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
# Delete old files
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
DIRTY=1
fi
break
done
if [ "${resp}" = "b" ]; then
FLGBETA=1
continue
fi
break
done
else
resp="${1}"
fi
# If user change model, clean buildnumber and S/N
if [ "${MODEL}" != "${resp}" ]; then
MODEL=${resp}
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
BUILD=""
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
SN=""
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
# Delete old files
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
DIRTY=1
fi
}
###############################################################################
# Shows available buildnumbers from a model to user choose one
function buildMenu() {
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
dialog --clear --no-items --backtitle "`backtitle`" \
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ -z "${1}" ]; then
dialog --clear --no-items --backtitle "`backtitle`" \
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
else
if ! arrayExistItem "${1}" ${ITEMS}; then return; fi
resp="${1}"
fi
if [ "${BUILD}" != "${resp}" ]; then
dialog --backtitle "`backtitle`" --title "Build Number" \
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
BUILD=${resp}
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}"
fi
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
# Rebuild modules
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done < <(getAllModules "${PLATFORM}" "${KVER}")
# Remove old files
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
DIRTY=1
@@ -195,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"
@@ -311,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 an 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
@@ -395,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
@@ -436,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 an synoinfo item\"" > "${TMP_PATH}/menu"
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"
@@ -496,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
@@ -526,28 +503,34 @@ function extractDsmFiles() {
RAMDISK_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.ramdisk-hash"`"
ZIMAGE_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.zimage-hash"`"
if [ ${RAMCACHE} -eq 0 ]; then
OUT_PATH="${CACHE_PATH}/dl"
echo "Cache in disk"
else
OUT_PATH="${TMP_PATH}/dl"
echo "Cache in ram"
# 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 "${OUT_PATH}"
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="${OUT_PATH}/${PAT_FILE}"
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"
OLDPAT_PATH="${OUT_PATH}/DS3622xs+-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
@@ -589,6 +572,8 @@ function extractDsmFiles() {
;;
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
@@ -597,23 +582,34 @@ function extractDsmFiles() {
# 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 ramdisk from PAT
# 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
@@ -663,16 +659,19 @@ function extractDsmFiles() {
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
while IFS=': ' read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
@@ -707,14 +706,193 @@ function make() {
}
###############################################################################
# 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
# Advanced menu
function advancedMenu() {
NEXT="l"
while true; do
rm "${TMP_PATH}/menu"
if [ -n "${BUILD}" ]; then
echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu"
echo "o \"Modules\"" >> "${TMP_PATH}/menu"
fi
if loaderIsConfigured; then
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"" >> "${TMP_PATH}/menu"
fi
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
echo "t \"Try to recovery a DSM installed system\"" >> "${TMP_PATH}/menu"
echo "s \"Show SATA(s) # ports and drives\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --default-item ${NEXT} --backtitle "`backtitle`" --title "Advanced" \
--colors --menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && break
case `<"${TMP_PATH}/resp"` in
l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev'
writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}"
DIRTY=1
NEXT="o"
;;
o) selectModules; NEXT="r" ;;
r) [ "${DIRECTBOOT}" = "false" ] && DIRECTBOOT='true' || DIRECTBOOT='false'
writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}"
NEXT="u"
;;
u) editUserConfig; NEXT="e" ;;
t) tryRecoveryDSM ;;
s) TEXT=""
NUMPORTS=0
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
TEXT+="\Zb${NAME}\Zn\nPorts: "
unset HOSTPORTS
declare -A HOSTPORTS
while read LINE; do
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
PORT=`echo ${ATAPORT} | sed 's/ata//'`
HOSTPORTS[${PORT}]=`echo ${LINE} | grep -o 'host[0-9]*$'`
done < <(ls -l /sys/class/scsi_host | fgrep "${PCI}")
while read PORT; do
ls -l /sys/block | fgrep -q "${PCI}/ata${PORT}" && ATTACH=1 || ATTACH=0
PCMD=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
[ ${ATTACH} -eq 1 ] && TEXT+="\Z2\Zb"
[ ${DUMMY} -eq 1 ] && TEXT+="\Z1"
TEXT+="${PORT}\Zn "
NUMPORTS=$((${NUMPORTS}+1))
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
TEXT+="\n"
done
TEXT+="\nTotal of ports: ${NUMPORTS}\n"
TEXT+="\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected."
dialog --backtitle "`backtitle`" --colors --aspect 18 \
--msgbox "${TEXT}" 0 0
;;
e) break ;;
esac
done
}
###############################################################################
# Try to recovery a DSM already installed
function tryRecoveryDSM() {
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
--infobox "Trying to recovery a DSM installed system" 0 0
if findAndMountDSMRoot; then
MODEL=""
BUILD=""
if [ -f "${DSMROOT_PATH}/.syno/patch/VERSION" ]; then
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep unique`
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep base`
if [ -n "${unique}" ] ; then
while read F; do
M="`basename ${F}`"
M="${M::-4}"
UNIQUE=`readModelKey "${M}" "unique"`
[ "${unique}" = "${UNIQUE}" ] || continue
# Found
modelMenu "${M}"
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
if [ -n "${MODEL}" ]; then
buildMenu ${base}
if [ -n "${BUILD}" ]; then
cp "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
cp "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
MSG="Found a installation:\nModel: ${MODEL}\nBuildnumber: ${BUILD}"
SN=`_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf"`
if [ -n "${SN}" ]; then
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
MSG+="\nSerial: ${SN}"
fi
dialog --backtitle "`backtitle`" --title "Try recovery DSM" \
--aspect 18 --msgbox "${MSG}" 0 0
fi
fi
fi
fi
else
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
--msgbox "Unfortunately I couldn't mount the DSM partition!" 0 0
fi
boot.sh
}
###############################################################################
# Permit user select the modules to include
function selectModules() {
PLATFORM="`readModelKey "${MODEL}" "platform"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
dialog --backtitle "`backtitle`" --title "Modules" --aspect 18 \
--infobox "Reading modules" 0 0
ALLMODULES=`getAllModules "${PLATFORM}" "${KVER}"`
unset USERMODULES
declare -A USERMODULES
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
# menu loop
while true; do
dialog --backtitle "`backtitle`" --menu "Choose a option" 0 0 0 \
s "Show selected modules" \
a "Select all modules" \
d "Deselect all modules" \
c "Choose modules to include" \
e "Exit" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && break
case "`<${TMP_PATH}/resp`" in
s) ITEMS=""
for KEY in ${!USERMODULES[@]}; do
ITEMS+="${KEY}: ${USERMODULES[$KEY]}\n"
done
dialog --backtitle "`backtitle`" --title "User modules" \
--msgbox "${ITEMS}" 0 0
;;
a) dialog --backtitle "`backtitle`" --title "Modules" \
--infobox "Selecting all modules" 0 0
unset USERMODULES
declare -A USERMODULES
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
USERMODULES["${ID}"]=""
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done <<<${ALLMODULES}
;;
d) dialog --backtitle "`backtitle`" --title "Modules" \
--infobox "Deselecting all modules" 0 0
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
unset USERMODULES
declare -A USERMODULES
;;
c)
rm -f "${TMP_PATH}/opts"
while read ID DESC; do
arrayExistItem "${ID}" "${!USERMODULES[@]}" && ACT="on" || ACT="off"
echo "${ID} ${DESC} ${ACT}" >> "${TMP_PATH}/opts"
done <<<${ALLMODULES}
dialog --backtitle "`backtitle`" --title "Modules" --aspect 18 \
--checklist "Select modules to include" 0 0 0 \
--file "${TMP_PATH}/opts" 2>${TMP_PATH}/resp
[ $? -ne 0 ] && continue
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && continue
dialog --backtitle "`backtitle`" --title "Modules" \
--infobox "Writing to user config" 0 0
unset USERMODULES
declare -A USERMODULES
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
for ID in ${resp}; do
USERMODULES["${ID}"]=""
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done
;;
e)
break
;;
esac
done
}
###############################################################################
@@ -743,6 +921,17 @@ function editUserConfig() {
DIRTY=1
}
###############################################################################
# Calls boot.sh to boot into DSM kernel/ramdisk
function boot() {
[ ${DIRTY} -eq 1 ] && dialog --backtitle "`backtitle`" --title "Alert" \
--yesno "Config changed, would you like to rebuild the loader?" 0 0
if [ $? -eq 0 ]; then
make || return
fi
boot.sh
}
###############################################################################
# Shows available keymaps to user choose one
function keymapMenu() {
@@ -765,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" \
@@ -797,39 +988,48 @@ function updateMenu() {
fi
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--infobox "Downloading last version ${TAG}" 0 0
# Download checksum
STATUS=`curl --insecure -s -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl/releases/download/${TAG}/sha256sum" -o /tmp/sha256sum`
# Download update file
STATUS=`curl --insecure -w "%{http_code}" -L \
"https://github.com/fbelavenuto/arpl/releases/download/${TAG}/update.zip" -o /tmp/update.zip`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--msgbox "Error downloading checksums" 0 0
--msgbox "Error downloading update file" 0 0
continue
fi
STATUS=`curl --insecure -s -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl/releases/download/${TAG}/bzImage" -o /tmp/bzImage`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
unzip -oq /tmp/update.zip -d /tmp
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--msgbox "Error downloading bzImage" 0 0
--msgbox "Error extracting update file" 0 0
continue
fi
STATUS=`curl --insecure -s -w "%{http_code}" -L "https://github.com/fbelavenuto/arpl/releases/download/${TAG}/rootfs.cpio.xz" -o /tmp/rootfs.cpio.xz`
if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--msgbox "Error downloading rootfs.cpio.xz" 0 0
continue
fi
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--infobox "Installing new files" 0 0
# Check checksums
(cd /tmp && sha256sum --status -c sha256sum)
if [ $? -ne 0 ]; then
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--msgbox "Checksum do not match!" 0 0
continue
fi
mv /tmp/bzImage "${ARPL_BZIMAGE_FILE}"
mv /tmp/rootfs.cpio.xz "${ARPL_RAMDISK_FILE}"
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--infobox "Installing new files" 0 0
# Process update-list.yml
while read F; do
[ -f "${F}" ] && rm -f "${F}"
[ -d "${F}" ] && rm -Rf "${F}"
done < <(readConfigArray "remove" "/tmp/update-list.yml")
while IFS=': ' read KEY VALUE; do
if [ "${KEY: -1}" = "/" ]; then
rm -Rf "${VALUE}"
mkdir -p "${VALUE}"
gzip -dc "/tmp/`basename "${KEY}"`.tgz" | tar xf - -C "${VALUE}"
else
mkdir -p "`dirname "${VALUE}"`"
mv "/tmp/`basename "${KEY}"`" "${VALUE}"
fi
done < <(readConfigMap "replace" "/tmp/update-list.yml")
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
[ $? -ne 0 ] && continue
reboot
arpl-reboot.sh config
exit
;;
@@ -857,6 +1057,7 @@ function updateMenu() {
unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1
dialog --backtitle "`backtitle`" --title "Update addons" --aspect 18 \
--infobox "Installing new addons" 0 0
rm -Rf "${ADDONS_PATH}/"*
for PKG in `ls /tmp/addons/*.addon`; do
ADDON=`basename ${PKG} | sed 's|.addon||'`
rm -rf "${ADDONS_PATH}/${ADDON}"
@@ -926,6 +1127,13 @@ function updateMenu() {
rm "${MODULES_PATH}/${P}.tgz"
mv "/tmp/${P}.tgz" "${MODULES_PATH}/${P}.tgz"
done
# Rebuild modules if model/buildnumber is selected
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}"
done < <(getAllModules "${PLATFORM}" "${KVER}")
fi
DIRTY=1
dialog --backtitle "`backtitle`" --title "Update Modules" --aspect 18 \
--msgbox "Modules updated with success!" 0 0
@@ -939,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"
@@ -953,17 +1162,25 @@ while true; do
echo "a \"Addons\"" >> "${TMP_PATH}/menu"
echo "x \"Cmdline menu\"" >> "${TMP_PATH}/menu"
echo "i \"Synoinfo menu\"" >> "${TMP_PATH}/menu"
echo "l \"Switch LKM version: \Z4${LKM}\Zn\"" >> "${TMP_PATH}/menu"
fi
fi
echo "v \"Advanced menu\"" >> "${TMP_PATH}/menu"
if [ -n "${MODEL}" ]; then
if [ -n "${BUILD}" ]; then
echo "d \"Build the loader\"" >> "${TMP_PATH}/menu"
fi
fi
loaderIsConfigured && echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
if loaderIsConfigured; then
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
fi
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
[ ${RAMCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ] && echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
if [ ${CLEARCACHE} -eq 1 -a -d "${CACHE_PATH}/dl" ]; then
echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
fi
echo "p \"Update menu\"" >> "${TMP_PATH}/menu"
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --clear --default-item ${NEXT} --backtitle "`backtitle`" --colors \
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \
--menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && break
@@ -973,14 +1190,10 @@ while true; do
s) serialMenu; NEXT="a" ;;
a) addonMenu; NEXT="x" ;;
x) cmdlineMenu; NEXT="i" ;;
i) synoinfoMenu; NEXT="l" ;;
l) [ "${LKM}" = "dev" ] && LKM='prod' || LKM='dev'
writeConfigKey "lkm" "${LKM}" "${USER_CONFIG_FILE}"
NEXT="d"
;;
i) synoinfoMenu; NEXT="v" ;;
v) advancedMenu; NEXT="d" ;;
d) make; NEXT="b" ;;
b) boot ;;
u) editUserConfig; NEXT="u" ;;
b) boot && exit 0 || sleep 5 ;;
k) keymapMenu ;;
c) dialog --backtitle "`backtitle`" --title "Cleaning" --aspect 18 \
--prgbox "rm -rfv \"${CACHE_PATH}/dl\"" 0 0 ;;
@@ -990,4 +1203,3 @@ while true; do
done
clear
echo -e "Call \033[1;32mmenu.sh\033[0m to return to menu"

View File

@@ -2,11 +2,12 @@ id: "DS1520+"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: igfx_off
HddEnableDynamicPower: 1
@@ -14,14 +15,15 @@ cmdline: &cmdline
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "geminilake"
unique: "synology_geminilake_1520+"
beta: true
dom: 2
serial:
prefix:
- "0000"
middle: "XXX"
- "2060"
middle: "RYR"
suffix: "alpha"
disks: 6
dt: true
@@ -30,27 +32,26 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1520%2B_42218.pat"
hash: "06947c58f25bd591f7fa3c58ad9473777481bdd7a049b42d1cb585ca01b053ee"
ramdisk-hash: "f0a275587c51acdb4d58a7f0d82d70f31e54228d0fbf7575d5d425dae75d1969"
zimage-hash: "74d513aaa3e30d8aa4f80e202d94a68a552e9c0472f8470e133ad29080556f55"
md5-hash: "f56200a8be1aed4eb287a51b373adb1f"
hash: "b8864e2becd8ce5a6083db993564c8c0b982df8300a006b56695a0495a670aa3"
ramdisk-hash: "7679ab11e895302425533c64e0dded211b38b8af71f2dd268c47a68bc9f6818a"
zimage-hash: "70e93678f3932c35c5e884f950e50b36f8dc6366f96dd9a454c8d47ecbaee5de"
md5-hash: "d1ebc3c9a2b9e04980a85c4784904f91"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
42661:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -64,34 +65,13 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS1520%2B_42951.pat"
hash: "32063eb34a0e29402c7774d60bb3b7247f894c60e676a437de00cd21b9b68cdb"
ramdisk-hash: "1afd618cd6799087320343a48a3992594730e2e807110f2770a4cf3f708f8ccd"
zimage-hash: "bbfa903358576e5545c3c3c021c292637360f0925de5e59cb3e785f92db71fd3"
md5-hash: "5fd40dc13c83ff14bc10fd43a7d19606"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -105,4 +85,5 @@ builds:
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

@@ -2,21 +2,22 @@ id: "DS1621+"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000"
unique: "synology_v1000_1621+"
dom: 2
@@ -32,27 +33,26 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1621%2B_42218.pat"
hash: "19f56827ba8bf0397d42cd1d6f83c447f092c2c1bbb70d8a2ad3fbd427e866df"
ramdisk-hash: "73512c7bceb34cf7f7f93c2703db60496da0e27274fc45e5aefa0366c9734d6e"
zimage-hash: "f4648d0dd6b29ef6149b0ff46afe1fe32f81730aa79af72f37ffd3647c76f586"
md5-hash: "f82cbabbfef3fdf2cba45da77d14959b"
hash: "396144fdcd94d441b4ad665099395cf24a14606742bee9438745ea30bf12b9ef"
ramdisk-hash: "127a12bab3835cdf5af4e7ad2a23e78f889408302c55e5052080671cff6da5b7"
zimage-hash: "0ab3bf0ff027fb94863ef8822df787194f2d21079ecc66c0b0d4e46d24598855"
md5-hash: "1fd1d6e733bb096f418f68e06f81022e"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
42661:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -66,34 +66,13 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS1621%2B_42951.pat"
hash: "127bc3a5405761915f8a4669c925defd39b31b9740064af357ff2db928314ac9"
ramdisk-hash: "12553531c3e8820241babc6b5176ea6f417368e80740c086b6897a67c8783f6e"
zimage-hash: "d28951da0eb41286fbe37ffdfc880271787573d68226e5d26321819cf2d2e6e2"
md5-hash: "4e52301c56ae5e7b03ff9ea1f8392d43"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -107,4 +86,5 @@ builds:
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

@@ -2,21 +2,21 @@ id: "DS2422+"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000"
unique: "synology_v1000_2422+"
dom: 2
@@ -33,26 +33,25 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS2422%2B_42218.pat"
hash: "415c54934d483a2557500bc3a2e74588a0cec1266e1f0d9a82a7d3aace002471"
ramdisk-hash: "2b5b8dd90b2e6020ffccc2719d8bc16d9935421754a8c088d6b31dbca4e4ff7b"
zimage-hash: "38281a90036fffcb41cd17f05a6c7e9a1d5740a78c135980fb0c3a6d0ca1485f"
md5-hash: "9293156f98e642c181aed63b0b3df4c8"
hash: "5a6cfbc690facdfaef9fbcc55215eac38c73ca6a85965a910af11cede5e2cd5d"
ramdisk-hash: "57bcadf9699252aa68dac40b5c48f362169b51fda9f77a7f1b51e3336a551f8f"
zimage-hash: "e083a8aec10537582ed0dd6d79bc358d9aff828b3e256996ef1e4f4bf418dd5d"
md5-hash: "7fe3c9ae80396a2ea9ed9909b8746c4b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
42661:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -66,34 +65,13 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS2422%2B_42951.pat"
hash: "ff2e444040f8105079260396649466d791fc8c6613c52ed78d993a784547476d"
ramdisk-hash: "a3a7571bf0220dfe53f750a554c1b570ce4a66792b0dc1c9f2d093f5d7d212b5"
zimage-hash: "d28951da0eb41286fbe37ffdfc880271787573d68226e5d26321819cf2d2e6e2"
md5-hash: "40da0cb929793e3d165f5958d4a5533b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -107,4 +85,5 @@ builds:
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

@@ -2,19 +2,20 @@ id: "DS3615xs"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no"
esataportcfg: "0x0"
usbportcfg: "0x8700"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
small_info_path: "https://example.com/null"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "bromolow"
unique: "synology_bromolow_3615xs"
serial:
@@ -32,20 +33,20 @@ builds:
ver: "7.0.1"
kver: "3.10.108"
rd-compressed: false
efi-bug: yes
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3615xs_42218.pat"
hash: "dddd26891815ddca02d0d53c1d42e8b39058b398a4cc7b49b80c99f851cf0ef7"
ramdisk-hash: "4c90c3c7ee25b5fcc651552e80a9364d22823c863c834c5f43e3344a3a68af78"
zimage-hash: "d29b695612710376734cb5c5b5ae4f2d8afc49ffd640387e1c86010f6c7d2c8a"
md5-hash: "ea1c30f644bacae2e0b1ef914bc663db"
hash: "ae1aca3b178a00689b93e97cca680b56af3f453174b852e0047496120dee2ee3"
ramdisk-hash: "3a8c2fe60142d3eb3a7ed2381819faa1db2cda30ff163288dd0a6c85a25815c1"
zimage-hash: "354f0bb13c898a7b24f2942d8015f591f7acce1739e2060580c0f38c41addaf7"
md5-hash: "9f959ec4d16d5d7729374961fc2b9bed"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -53,7 +54,6 @@ builds:
ver: "7.1.0"
kver: "3.10.108"
rd-compressed: false
efi-bug: yes
cmdline:
<<: *cmdline
synoinfo:
@@ -67,36 +67,14 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "3.10.108"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS3615xs_42951.pat"
hash: "f1de39322babe5664a30e0d16b9ce3d73aeb30742cb7b8def09f40d1577fc5a2"
ramdisk-hash: "0e353b4a8b1f8efa40e6f853a8d16553dfdf1ebc10bcabbe8dfa7803343c26ef"
zimage-hash: "6c535aa513dedc6c2a2b43158e1298c9ea67bf5f909cc19a904e24b51028820b"
md5-hash: "1f6831d8706d8337f06a6028037fe120"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "3.10.108"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -110,5 +88,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -2,20 +2,20 @@ id: "DS3617xs"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
supportraidgroup: "no"
supportssdcache: "no"
esataportcfg: "0x00"
usbportcfg: "0x8700"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "broadwell"
unique: "synology_broadwell_3617xs"
dom: 1
@@ -33,20 +33,20 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3617xs_42218.pat"
hash: "d65ee4ed5971e38f6cdab00e1548183435b53ba49a5dca7eaed6f56be939dcd2"
ramdisk-hash: "1b2e86fbf4006f6aa40dcd674ad449feed8b0b8317a71e2bb8bb986a74e08c57"
zimage-hash: "28a75e0b680517d39374260eb981b8ca9ace8810b121a30b8036fa09cfcb77fc"
md5-hash: "8972088c38acd07aa92a8b573a1b7bc3"
hash: "f7e846e2a22b62613ac5e9d6e154df0213ba4ae64a6556297af627cd1e643e5c"
ramdisk-hash: "eaddd97c40a35bbcf4092417364ca4376925fb3eb322cad0cf602d4c7973d147"
zimage-hash: "8e0ab965c85b348dfc9dc17392b9cf0a117756f1d1bc4c0f0d19bb610350659d"
md5-hash: "b7d85926561ff125928b68e7fffa646b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -54,7 +54,6 @@ builds:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -68,36 +67,14 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS3617xs_42951.pat"
hash: "d879a5be878c59492e4059a833f17d826ed33fb46552b54759e9c37c6ed17a21"
ramdisk-hash: "82148561e561e5a3cb5d88cac47515db6d8426771d8965b1b91b7eab6d1e4a10"
zimage-hash: "7f354665843d73779ba28a1c610c7fb31526b717ce354d459d7e28b2d05257ab"
md5-hash: "d6c61c7c84320ccc684b76ae6219e650"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -111,5 +88,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -2,21 +2,21 @@ 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"
support_led_brightness_adjustment: "no"
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
small_info_path: "https://example.com/null" # https://update7.synology.com/smallupdate
security_version_server: "https://example.com/smallupdate" # https://update7.synology.com/securityVersion
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "broadwellnk"
unique: "synology_broadwellnk_3622xs+"
dom: 1
@@ -34,20 +34,20 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat"
hash: "f38329b8cdc5824a8f01fb1e377d3b1b6bd23da365142a01e2158beff5b8a424"
ramdisk-hash: "a95d4ab06189460f3b3d13a33e421887b5f3ea09a10535ae0d4c92beb7ff631d"
zimage-hash: "06964b68e5ccdedd4363dff3986f99686d3c9cb5225e8e4c3d840a1d9cd1330b"
md5-hash: "bc0235e45a8423f4c46dc0d9699759b5"
hash: "a222d37f369d71042057ccb592f40c7c81e9b988a95d69fa166c7c2a611da99c"
ramdisk-hash: "11ebadba5d831ad6f31258ab317ed1f7cbfe18243413f9f81291b894b5f7a591"
zimage-hash: "d6059bcd7160ed1f775a9323599ac8860b60ada32f0a4f3e5ca166c15a17784e"
md5-hash: "b9b452577b38adc82aca42e031be267b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -55,7 +55,6 @@ builds:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -69,36 +68,14 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS3622xs%2B_42951.pat"
hash: "11f34ae65b13f7feace40e6a7c2399150ef2b4f4eb3a6dcec0be52fca265f151"
ramdisk-hash: "469d76399eb94fee0cb135c6e178cdea797290671f6bf0ae896d7387f66dc952"
zimage-hash: "9134fc61aea7f687d62728470b8847e640693c444e0afd130882b728ab553fea"
md5-hash: "b34b7b7d21af459ae0ba6ea1f9974de6"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -112,5 +89,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -3,20 +3,21 @@ synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
esataportcfg: "0x00"
support_led_brightness_adjustment: ""
support_led_brightness_adjustment: "no"
support_leds_lp3943: ""
buzzeroffen: "0xffff"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
#support_ssd_cache: "yes"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
vender_format_version: 2
syno_port_thaw: 1
syno_hdd_detect: 0
elevator: elevator
platform: "apollolake"
unique: "synology_apollolake_918+"
dom: 2
@@ -30,26 +31,26 @@ serial:
suffix: "numeric"
disks: 4
flags:
- "fma"
- "movbe"
builds:
42218:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS918%2B_42218.pat"
hash: "a403809ab2cd476c944fdfa18cae2c2833e4af36230fa63f0cdee31a92bebba2"
ramdisk-hash: "4b7a7a271a3b2158d9193a4f0e75c59590949ad7b4e26d546f46cc2ee8504d51"
zimage-hash: "338ba514066da01d0c1f770418916b9b96f5355d88a7b55b398d2726db591fdb"
md5-hash: "71c028f92497e4722998e4208fe75774"
hash: "a662d11999c266dfa86c54f7ba01045c6644c191124195a22d056d618790dffe"
ramdisk-hash: "d27320b536da0ac82d7959e0492180b3a25ef78a3997f65cc4ccddc426b921bd"
zimage-hash: "7311b04f7462847f529cf966c7b332097354692485c8157643d89441e2a81cd0"
md5-hash: "0c8a0d2dc6f1d7e37ee63d74760808b8"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -57,7 +58,6 @@ builds:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -71,36 +71,14 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS918%2B_42951.pat"
hash: "4035aeea248be9c952298a875050625a2485caf46bcd2f9f1c3b21cc8194304b"
ramdisk-hash: "0eb6433108d8ca1ac1c9b7bf5c35c54c1c0b400f4fcca2c5e95194494fc26686"
zimage-hash: "bb0657c7111a31eaf27e51957ce6f83c6ed48b863666d1ea0a25ed52df3a4020"
md5-hash: "fbdd1584dfcb1898df5f66a886a6e9b7"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -114,5 +92,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -2,11 +2,12 @@ id: "DS920+"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: "igfx_off"
HddEnableDynamicPower: 1
@@ -14,6 +15,7 @@ cmdline: &cmdline
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
vender_format_version: 2
elevator: elevator
platform: "geminilake"
unique: "synology_geminilake_920+"
dom: 2
@@ -32,27 +34,26 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat"
hash: "fe2a4648f76adeb65c3230632503ea36bbac64ee88b459eb9bfb5f3b8c8cebb3"
ramdisk-hash: "f7dd1317f24ec6b9bac839e37f66b59030218c7f97c06f73f1f54ed0f892c4aa"
zimage-hash: "346b68f662b50f47d3ee6c2bc9de6302e4b60436142c24ee88b620c7afd1ba06"
md5-hash: "7764ad4fca0a11ae0ebd7ccd4a49e1aa"
hash: "b9b77846e0983f50496276bec6bcdfcfadd4c1f9f0db8ed2ca5766f131ddf97f"
ramdisk-hash: "8607c34fff3a13c75dbc1a9c730de2b2cf649697d6244fd37047090d2e2ba897"
zimage-hash: "70e93678f3932c35c5e884f950e50b36f8dc6366f96dd9a454c8d47ecbaee5de"
md5-hash: "55a7e4ccbf6fcba9238a11976a4a7381"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
42661:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -66,34 +67,13 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DS920%2B_42951.pat"
hash: "412b94e64fb46bc7732de55bec0892e6ee51529364ae2aa2473d04aa48b9a3bd"
ramdisk-hash: "1026791ed6b9387fc0fcaec68c4606be35d29582ed7501a2fdf02d62c017e368"
zimage-hash: "bbfa903358576e5545c3c3c021c292637360f0925de5e59cb3e785f92db71fd3"
md5-hash: "9fcb2a54b13f4e6acc3947c2165a464b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -107,4 +87,5 @@ builds:
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

@@ -0,0 +1,48 @@
id: "DS923+"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
vender_format_version: 2
elevator: elevator
platform: "r1000"
unique: "synology_r1000_923+"
beta: true
dom: 2
dt: true
serial:
prefix:
- "2270"
middle: "TQR"
suffix: "alpha"
disks: 4
builds:
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS923%2B_42962.pat"
hash: "e33b47df446ce0bd99c5613767c9dba977915e25acfb5ccb9f5650b14459458f"
ramdisk-hash: "0aa3f1b2d00f887aaf0d0e2c8b51ec97bb545bf5f99c40f33d3eaabc32a5ac03"
zimage-hash: "1e54804c84e0b4e7f71eff5b5ec8aad9c6ba8fb4fc200ad92251d7d29155a651"
md5-hash: "fdff6232dacf9bd3b189506f51577128"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"

View File

@@ -3,19 +3,20 @@ synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
buzzeroffen: "0xffff"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: "igfx_off"
HddEnableDynamicPower: 1
vender_format_version: 2
syno_port_thaw: 1
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "geminilake"
unique: "synology_geminilake_dva1622"
dom: 2
@@ -34,7 +35,6 @@ builds:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -48,34 +48,13 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DVA1622_42951.pat"
hash: "2771636333fe1f1f08ad7e80100c0c1224edf1290cea2df848e8d019992b1271"
ramdisk-hash: "920336ce890b099b4192cc41e1773e501392b9611cc09c8f96a4e8ed8ddfdfad"
zimage-hash: "bbfa903358576e5545c3c3c021c292637360f0925de5e59cb3e785f92db71fd3"
md5-hash: "6e119d8eb2c0a175a56b0bbba1f43372"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -89,4 +68,5 @@ builds:
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

@@ -4,20 +4,19 @@ synoinfo: &synoinfo
support_memory_compatibility: "no"
esataportcfg: "0x00"
support_bde_internal_10g: "no"
supportraidgroup: "no"
support_syno_hybrid_raid: "yes"
internalportcfg: "0xfffff"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
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"
unique: "synology_denverton_dva3219"
beta: true
@@ -29,27 +28,27 @@ serial:
middle: "RFR"
suffix: "alpha"
flags:
- "fma"
- "movbe"
disks: 4
builds:
42218:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3219_42218.pat"
hash: "3557df23ff6af9bbb0cf46872ba2fc09c344eb303a38e8283dbc9a46e5eae979"
ramdisk-hash: "6820f900bf2870660541b83f9741a0b70e05e8871bc41c006c9d688105c97f7c"
zimage-hash: "ef97f2d64f3f7f8c5e3f4e8fee613d385d7888826f56e119f1885a722c95c7cc"
md5-hash: "40917aaf18d069f862f9536ac5504385"
hash: "b3498a20aeb7c7c36deca0f4393172d4db7b51aa4fb87eaace83fe224d935e3b"
ramdisk-hash: "5b301519fe08200e4cb368b7d23e4ce460d5412428126b9496084ceae3f6d67e"
zimage-hash: "8b58e602317286bdd25481c4927a791507589ce0b7c29f1ad394d08b634d41a3"
md5-hash: "4345e7cff9ba4fe97793c254c87b3ed5"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -57,7 +56,6 @@ builds:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -71,36 +69,14 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DVA3219_42951.pat"
hash: "74fc31feb6788ace9ae2ea162e77fb273ae503acecf58abcaa8d60380be2d4ab"
ramdisk-hash: "cbaee3c024e6c4752aca2a8e37d8e0bbaae6740c19c633a5fb2d1ecf2e8fb253"
zimage-hash: "fb4f70d6f67f77b99973113208590363efcdc6c5856c3a5efb85abd75d750260"
md5-hash: "309b02195fb52239ee6fdfafdf157cd1"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -114,5 +90,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -1,20 +1,22 @@
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
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"
unique: "synology_denverton_dva3221"
dom: 2
@@ -27,27 +29,27 @@ serial:
middle: "SJR"
suffix: "alpha"
flags:
- "fma"
- "movbe"
disks: 4
builds:
42218:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3221_42218.pat"
hash: "01f101d7b310c857e54b0177068fb7250ff722dc9fa2472b1a48607ba40897ee"
ramdisk-hash: "0825958923a5e67d967389769cff5fb7a04a25b98a2826c4c1e8aa7b8146dc8b"
zimage-hash: "ef97f2d64f3f7f8c5e3f4e8fee613d385d7888826f56e119f1885a722c95c7cc"
md5-hash: "b8bd6562290d06dd3a7360f3af330bec"
hash: "6722c73c51070dde2f542659d7728c497fc846256da2c9cf017177476de0bb09"
ramdisk-hash: "86a7450cdc461049c4cefe3fe3a1f9d241ea3c484f72f5667d7cd27f2842c8d6"
zimage-hash: "8b58e602317286bdd25481c4927a791507589ce0b7c29f1ad394d08b634d41a3"
md5-hash: "e3455afd4644cb882cb2c9bede08c7bf"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -55,7 +57,6 @@ builds:
ver: "7.1.0"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -69,36 +70,14 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_DVA3221_42951.pat"
hash: "c16020a308e71eab73a5acfce5290d13e1a1a0960fa7887acad3f9b4a71e56eb"
ramdisk-hash: "491f8863b8a1ee36837dcb7e145f793ca840793d3da2c1e67ce8c5f4df096e80"
zimage-hash: "fb4f70d6f67f77b99973113208590363efcdc6c5856c3a5efb85abd75d750260"
md5-hash: "59c68430cb9cd20322cb287334a4017b"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -112,5 +91,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -2,11 +2,12 @@ id: "FS2500"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
intel_iommu: igfx_off
SMBusHddDynamicPower: 1
@@ -14,6 +15,7 @@ cmdline: &cmdline
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
elevator: elevator
platform: "v1000"
unique: "synology_v1000_fs2500"
beta: true
@@ -30,27 +32,26 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_FS2500_42218.pat"
hash: "4d060be8afec548fdb042bc8095524f10ff200033cab74df37ae07f3de5eaa69"
ramdisk-hash: "cbe9099c57f23ba53415574b011580218fa55a0bdb83c4e4bba9e27100e5379d"
zimage-hash: "f6816165a52b1f53ce44a45878fe06641da34e9478947f826a236c1a6548f8fd"
md5-hash: "70550293c612c1fd9a8d1b7485173877"
hash: "3fbd5defbc0fef0d152494033f3e817c330525b70e356a9e9acd2b72d9806b59"
ramdisk-hash: "8d66ddfa947b38c0e407d4c5efd7558b1a9392e04fd83fe9f162e1aa546f8da8"
zimage-hash: "e083a8aec10537582ed0dd6d79bc358d9aff828b3e256996ef1e4f4bf418dd5d"
md5-hash: "9562d49a07f5481208b672ff777f3cbf"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
42661:
ver: "7.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -64,34 +65,13 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_FS2500_42951.pat"
hash: "a878c928d7133c3bf3e10e8d3fb43ca7449a57f01d240a3c80de51cdd43af5c3"
ramdisk-hash: "a248103b1b47f800753b627394af8768698b74944d156cb6e40c80cd6ba8556f"
zimage-hash: "d28951da0eb41286fbe37ffdfc880271787573d68226e5d26321819cf2d2e6e2"
md5-hash: "7b48e21c1f2090bb01d5f14a8e16a435"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -105,4 +85,5 @@ builds:
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

@@ -2,27 +2,28 @@ id: "RS4021xs+"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
support_bde_internal_10g: "no"
esataportcfg: "0x0"
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"
small_info_path: "https://example.com/null"
security_version_server: "https://example.com/smallupdate"
support_bde_internal_10g: "no"
esataportcfg: "0x0"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
syno_hdd_powerup_seq: 0
HddHotplug: 0
syno_hdd_detect: 0
syno_port_thaw: 1
vender_format_version: 2
elevator: elevator
platform: "broadwellnk"
unique: "synology_broadwellnk_rs4021xs+"
beta: true
dom: 2
serial:
prefix:
- "0000"
middle: "XXX"
- "2250"
middle: "T2R"
suffix: "alpha"
disks: 16
dt: false
@@ -31,20 +32,20 @@ builds:
ver: "7.0.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_RS4021xs%2B_42218.pat"
hash: "7afca3970ac7324d7431c1484d4249939bedd4c18ac34187f894c43119edf3a1"
hash: "2a32266b7bcf0b2582b5afd9e39dc444e7cb40eaf4ccfdbfedf4743af821f11c"
ramdisk-hash: "3aa9d810064747fca6d0a3ab4c979bd82b49fc0d166dfe714261c2a22145cc70"
zimage-hash: "17607e1739c8acc9903272ebd981bccb27b51057cdcb3cc446e5c5149db452d3"
md5-hash: "46d9eb6aba71dbd61ba0394e575b6d58"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -52,7 +53,6 @@ builds:
ver: "7.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -60,42 +60,20 @@ 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"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42951:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
rc: true
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42951/DSM_RS4021xs%2B_42951.pat"
hash: "7c9e076f3007662f63e34fd478fc48f32dee766f1ddc712f25ae91a2e56e078c"
ramdisk-hash: "c4d23a068a66499c50c9772fc5c90cc38dfcba5c45dcab085eda5d07d720046b"
zimage-hash: "9134fc61aea7f687d62728470b8847e640693c444e0afd130882b728ab553fea"
md5-hash: "e2d11981bba84b2eb6ba62b8bf2d2d28"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"
42962:
ver: "7.1.1"
kver: "4.4.180"
rd-compressed: false
efi-bug: no
cmdline:
<<: *cmdline
synoinfo:
@@ -109,5 +87,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -0,0 +1,48 @@
id: "SA6400"
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
support_led_brightness_adjustment: "no"
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
support_syno_hybrid_raid:
supportraidgroup:
cmdline: &cmdline
SMBusHddDynamicPower: 1
synoboot2:
syno_ttyS0: "serial,0x3f8"
syno_ttyS1: "serial,0x2f8"
vender_format_version: 2
scsi_mod.use_blk_mq: 1
platform: "epyc7002"
unique: "synology_epyc7002_sa6400"
beta: true
dom: 2
serial:
prefix:
- "0000"
middle: "XXX"
suffix: "alpha"
disks: 16
dt: true
builds:
42962:
ver: "7.1.1"
kver: "5.10.55"
rd-compressed: false
cmdline:
<<: *cmdline
synoinfo:
<<: *synoinfo
pat:
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_SA6400_42962.pat"
hash: "83fc408380ebb1381224261de6220b873d7b62a99e715557509ae9553f618a71"
ramdisk-hash: "d4efe45fc4dd71758fe365f7eb39d24982d1440b00986259cab9a03577982f68"
zimage-hash: "d5b8af848fc585695e35bd1c4f4c953fd8e54435b2799face4f8f350bac6df93"
md5-hash: "fdbbea86e280a8f754339a064f9ad2df"
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-etc-rc.patch"
- "ramdisk-42951-post-init-script.patch"

View File

@@ -0,0 +1 @@
kmod

View File

@@ -1,5 +1,3 @@
diff --git a/etc/passwd b/etc/passwd
index 6a0344d..cf95fbd 100644
--- a/etc/passwd
+++ b/etc/passwd
@@ -1,4 +1,4 @@

View File

@@ -0,0 +1,9 @@
--- a/etc/rc
+++ b/etc/rc
@@ -469,5 +469,5 @@
echo "============ Date ============"
date
echo "=============================="
-
+/addons/addons.sh rcExit
exit 0

View File

@@ -9,11 +9,11 @@
UmountRoot()
{
grep "^${RootDevice}" /proc/mounts && /bin/umount -f ${Mnt}
@@ -59,6 +61,7 @@
@@ -59,5 +61,6 @@
fi
UmountRoot
+ /addons/addons.sh jrExit
UmountRoot
exit $1
}

View File

@@ -13,6 +13,12 @@ echo -n "Patching Ramdisk"
# Remove old rd.gz patched
rm -f "${MOD_RDGZ_FILE}"
# Check disk space left
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'`
[ ${SPACELEFT} -le 268435456 ] && rm -rf "${CACHE_PATH}/dl"
# Unzipping ramdisk
echo -n "."
rm -rf "${RAMDISK_PATH}" # Force clean
@@ -25,6 +31,10 @@ mkdir -p "${RAMDISK_PATH}"
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
UNIQUE=`readModelKey "${MODEL}" "unique"`
if [ ${BUILD} -ne ${buildnumber} ]; then
echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m"
@@ -45,15 +55,21 @@ RD_COMPRESSED="`readModelKey "${MODEL}" "builds.${BUILD}.rd-compressed"`"
declare -A SYNOINFO
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
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
# Patches
while read f; do
echo -n "."
@@ -66,6 +82,8 @@ echo -n "."
for KEY in ${!SYNOINFO[@]}; do
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
done
# Add serial number to synoinfo.conf, to help to recovery a installed DSM
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
# Patch /sbin/init.post
echo -n "."
@@ -74,9 +92,11 @@ sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e
rm "${TMP_PATH}/rp.txt"
touch "${TMP_PATH}/rp.txt"
for KEY in ${!SYNOINFO[@]}; do
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
done
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
rm "${TMP_PATH}/rp.txt"
@@ -84,15 +104,17 @@ echo -n "."
# Extract modules to ramdisk
rm -rf "${TMP_PATH}/modules"
mkdir -p "${TMP_PATH}/modules"
gzip -dc "${CACHE_PATH}/modules/${PLATFORM}-${KVER}.tgz" | tar xf - -C "${TMP_PATH}/modules"
gzip -dc "${MODULES_PATH}/${PLATFORM}-${KVER}.tgz" | tar xf - -C "${TMP_PATH}/modules"
for F in `ls "${TMP_PATH}/modules/"*.ko`; do
M=`basename ${F}`
# Skip existent modules
# [ -f "${RAMDISK_PATH}/usr/lib/modules/${M}" ] || mv "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}"
cp "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}"
if arrayExistItem "${M:0:-3}" "${!USERMODULES[@]}"; then
cp -f "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}"
else
rm -f "${RAMDISK_PATH}/usr/lib/modules/${M}"
fi
done
mkdir -p "${RAMDISK_PATH}/usr/lib/firmware"
gzip -dc "${CACHE_PATH}/modules/firmware.tgz" | tar xf - -C "${RAMDISK_PATH}/usr/lib/firmware"
gzip -dc "${MODULES_PATH}/firmware.tgz" | tar xf - -C "${RAMDISK_PATH}/usr/lib/firmware"
# Clean
rm -rf "${TMP_PATH}/modules"
@@ -103,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"`"
@@ -111,18 +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 eudev and dtbpatch/maxdisks
# 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 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,21 +1,11 @@
#!/bin/sh
# Based on code and ideas from @jumkey
. /opt/arpl/include/functions.sh
#zImage_head 16494
#payload(
# vmlinux.bin x
# padding 0xf00000-x
# vmlinux.bin size 4
#) 0xf00004
#zImage_tail(
# unknown 72
# run_size 4
# unknown 30
# vmlinux.bin size 4
# unknown 114460
#) 114570
#crc32 4
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
# Adapted from: scripts/Makefile.lib
# Usage: size_append FILE [FILE2] [FILEn]...
@@ -51,12 +41,40 @@ size_le () {
SCRIPT_DIR=`dirname $0`
VMLINUX_MOD=${1}
ZIMAGE_MOD=${2}
gzip -cd "${SCRIPT_DIR}/zImage_template.gz" > "${ZIMAGE_MOD}"
KVER_MAJOR=${KVER:0:1}
if [ $KVER_MAJOR -eq 4 ] || [ $KVER_MAJOR -eq 3 ]; then
# Kernel version 4.x or 3.x (bromolow)
#zImage_head 16494
#payload(
# vmlinux.bin x
# padding 0xf00000-x
# vmlinux.bin size 4
#) 0xf00004
#zImage_tail(
# unknown 72
# run_size 4
# unknown 30
# vmlinux.bin size 4
# unknown 114460
#) 114570
#crc32 4
gzip -cd "${SCRIPT_DIR}/bzImage-template-v4.gz" > "${ZIMAGE_MOD}"
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
size_le $RUN_SIZE | dd of=$ZIMAGE_MOD bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
else
# Kernel version 5.x
gzip -cd "${SCRIPT_DIR}/bzImage-template-v5.gz" > "${ZIMAGE_MOD}"
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=14561 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34463421 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34479132 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
# RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
# size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=34626904 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
fi

View File

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

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