mirror of
https://github.com/fbelavenuto/arpl.git
synced 2025-12-24 14:52:05 +08:00
Compare commits
458 Commits
v0.2-alpha
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b77082df1 | ||
|
|
1abe8cb1f1 | ||
|
|
e5e20e2e72 | ||
|
|
d4e51ee86d | ||
|
|
b4beb63ea6 | ||
|
|
5792f05140 | ||
|
|
b021c4945e | ||
|
|
c01cdc8f2b | ||
|
|
194de75e85 | ||
|
|
edce7eb162 | ||
|
|
3322466ee6 | ||
|
|
76f14d95c7 | ||
|
|
e4dbea741a | ||
|
|
109ff30564 | ||
|
|
f6bc5b08ab | ||
|
|
269b9b0158 | ||
|
|
5ee1f2d995 | ||
|
|
8d0cf083e0 | ||
|
|
57ee20788a | ||
|
|
ae539cf5b6 | ||
|
|
9405793720 | ||
|
|
988367ad86 | ||
|
|
a4d04d5653 | ||
|
|
c42ce3120f | ||
|
|
9dd15f25e0 | ||
|
|
93c0303aba | ||
|
|
b2c215fb9a | ||
|
|
4fc5161239 | ||
|
|
1b7304ef44 | ||
|
|
230cbc986b | ||
|
|
746d0361b4 | ||
|
|
7acfb99fca | ||
|
|
3c84a9fa29 | ||
|
|
1012d4563a | ||
|
|
920b9994b1 | ||
|
|
b91aec94a7 | ||
|
|
97356dff47 | ||
|
|
6fe5a26531 | ||
|
|
f99a7fe44b | ||
|
|
7584ad59f2 | ||
|
|
79eaeb2c40 | ||
|
|
8908747db7 | ||
|
|
d5d752b93c | ||
|
|
b5010aff8c | ||
|
|
57daf6e645 | ||
|
|
06d85768bf | ||
|
|
f2667baa64 | ||
|
|
4e33c6fe69 | ||
|
|
5c4abf005d | ||
|
|
7d9a6bd91b | ||
|
|
8df97f2cf7 | ||
|
|
1cc8488d44 | ||
|
|
630cd019db | ||
|
|
68ceba090d | ||
|
|
10a3390eda | ||
|
|
14dee10280 | ||
|
|
e0d6f5487e | ||
|
|
e3c79978fb | ||
|
|
af04acef77 | ||
|
|
abc533f6e5 | ||
|
|
bd34a24665 | ||
|
|
6a49f24473 | ||
|
|
994c0e21f1 | ||
|
|
9ce8f6deb7 | ||
|
|
d61c3a9f3a | ||
|
|
d8ad963a02 | ||
|
|
d71c4215a1 | ||
|
|
c5e81b59b4 | ||
|
|
d4c2e8dbca | ||
|
|
178374e498 | ||
|
|
85778bbf58 | ||
|
|
ed8f511766 | ||
|
|
7b02fc8d25 | ||
|
|
034b40dad9 | ||
|
|
ad6d6f69cb | ||
|
|
ef8fc415ac | ||
|
|
0ef66dc098 | ||
|
|
936dccb19d | ||
|
|
188ebcc0dd | ||
|
|
269d3a3efe | ||
|
|
b52afda06b | ||
|
|
2e7e5c3757 | ||
|
|
a8b6217264 | ||
|
|
bb302f2bae | ||
|
|
6edf6cc290 | ||
|
|
31c16c7b9a | ||
|
|
a3ecb56543 | ||
|
|
e66f415ce0 | ||
|
|
fb6c441159 | ||
|
|
290cb8f888 | ||
|
|
3f4b033e33 | ||
|
|
04fd54c754 | ||
|
|
56d0da1a63 | ||
|
|
8d73e73937 | ||
|
|
532e4c27f4 | ||
|
|
d93b15bd8e | ||
|
|
36a7930252 | ||
|
|
43fc67d1a4 | ||
|
|
a1c6610faa | ||
|
|
8fe236521c | ||
|
|
b019ede88d | ||
|
|
2c1a45f356 | ||
|
|
8875aa160b | ||
|
|
3a13b66c7a | ||
|
|
309e33f012 | ||
|
|
6e784213c6 | ||
|
|
6d5177bb43 | ||
|
|
d5b61ed71a | ||
|
|
a32c9a4a94 | ||
|
|
9ffb0db2ae | ||
|
|
8ddc54360d | ||
|
|
791b95a246 | ||
|
|
87e79ec5b2 | ||
|
|
8fb27bb625 | ||
|
|
8dffd613f9 | ||
|
|
bb08cc6d80 | ||
|
|
550cc2cbbd | ||
|
|
d100d2f667 | ||
|
|
44217fc266 | ||
|
|
55cbc83924 | ||
|
|
413c0c85ef | ||
|
|
c5d5eb5658 | ||
|
|
f7e6573703 | ||
|
|
811a6c6dde | ||
|
|
a954e10ae4 | ||
|
|
f5978543aa | ||
|
|
a261f827b4 | ||
|
|
d7bc78bd59 | ||
|
|
a30a131c65 | ||
|
|
60ea3e7ba2 | ||
|
|
87c351c111 | ||
|
|
17a35c1dc7 | ||
|
|
6e3ae602bc | ||
|
|
2edab6d5dd | ||
|
|
39522773e5 | ||
|
|
8a36f91e90 | ||
|
|
5ef0c6bdcf | ||
|
|
094ad9c715 | ||
|
|
3010935eda | ||
|
|
e74366f17c | ||
|
|
9e2644c293 | ||
|
|
66ff2e6ace | ||
|
|
04935c7a14 | ||
|
|
0ba4c0332f | ||
|
|
d194e501a8 | ||
|
|
e5ee612511 | ||
|
|
2c6f55070d | ||
|
|
a03716086b | ||
|
|
1abd0fa4b7 | ||
|
|
c3dbe8fce7 | ||
|
|
8b9e4c7cec | ||
|
|
40537993ff | ||
|
|
e1c6bd55c9 | ||
|
|
23820c56c3 | ||
|
|
9d0eb20e8a | ||
|
|
dfe345fe76 | ||
|
|
675324c25b | ||
|
|
71dc04fc1d | ||
|
|
328dcbbd59 | ||
|
|
db1001f2ad | ||
|
|
029b97b981 | ||
|
|
950166fc7d | ||
|
|
5afb934769 | ||
|
|
d1deb55921 | ||
|
|
cc8c6a3812 | ||
|
|
523bbfbc50 | ||
|
|
2d76ba320f | ||
|
|
5495484c9a | ||
|
|
26a6f25428 | ||
|
|
7b67dd0456 | ||
|
|
aa0976ca4f | ||
|
|
f7c0b4fcd5 | ||
|
|
08af5fd185 | ||
|
|
7ef9a87347 | ||
|
|
b21e1e4924 | ||
|
|
56c214c2a8 | ||
|
|
d903e4237b | ||
|
|
6f238af8c1 | ||
|
|
3b490c9c86 | ||
|
|
a0120f8d5d | ||
|
|
e4622f92d7 | ||
|
|
3898e3c3d9 | ||
|
|
a8534dccf5 | ||
|
|
c00c94fdfd | ||
|
|
f6dbd4b8cd | ||
|
|
efb54e1345 | ||
|
|
d220958442 | ||
|
|
d95a88f513 | ||
|
|
36fca1cb0d | ||
|
|
d91468ba66 | ||
|
|
a136b3e3ec | ||
|
|
ea43525e6b | ||
|
|
8fe46adb66 | ||
|
|
35d66d37cf | ||
|
|
55d3cf0bde | ||
|
|
8411febf6d | ||
|
|
227e1f19a7 | ||
|
|
2fadc03782 | ||
|
|
ab60d853bb | ||
|
|
30464e943c | ||
|
|
08e783eb7f | ||
|
|
887122e9d8 | ||
|
|
076b09d315 | ||
|
|
0e071628dd | ||
|
|
6edde1245f | ||
|
|
b2830395c1 | ||
|
|
cf8ab044ee | ||
|
|
b86dbb490b | ||
|
|
ea0fba0033 | ||
|
|
f141a527ef | ||
|
|
bf1ac9f08c | ||
|
|
38aeba975e | ||
|
|
5c6218f89d | ||
|
|
3e93b672ae | ||
|
|
20307af292 | ||
|
|
a9313b93c6 | ||
|
|
1335ff30a2 | ||
|
|
ebc92d686a | ||
|
|
5f7807f941 | ||
|
|
7b15e734a6 | ||
|
|
7f76a8c85a | ||
|
|
f2fd6dd4fb | ||
|
|
c7cc1ed8f6 | ||
|
|
caa131b4de | ||
|
|
689effd9d1 | ||
|
|
a989fb307f | ||
|
|
02563f4f1b | ||
|
|
649b594600 | ||
|
|
cbc550799d | ||
|
|
d9db774dce | ||
|
|
b6efcc6589 | ||
|
|
0edc57af1d | ||
|
|
d22a70a407 | ||
|
|
6a492b1cea | ||
|
|
e89c326598 | ||
|
|
0568615f1f | ||
|
|
341a94e0ff | ||
|
|
3606fb645e | ||
|
|
f9831c066e | ||
|
|
c1920c76ab | ||
|
|
98c7c67b23 | ||
|
|
18ee7e55ab | ||
|
|
25b62d3e6c | ||
|
|
858c8ea847 | ||
|
|
6b5ad4be4e | ||
|
|
7a1eb5cbdb | ||
|
|
1ac0ddaee5 | ||
|
|
1712f61995 | ||
|
|
0bbedf2bbc | ||
|
|
deb2cd1884 | ||
|
|
eed06af75f | ||
|
|
e4332d44fa | ||
|
|
2fb04769ba | ||
|
|
1a7f847334 | ||
|
|
cd44a7eb64 | ||
|
|
2313062eec | ||
|
|
52eab13d15 | ||
|
|
a19a1dd1a5 | ||
|
|
08fca3caa3 | ||
|
|
4616fede0b | ||
|
|
70272bdc98 | ||
|
|
3c5b8d43a2 | ||
|
|
0a01291188 | ||
|
|
fe8258b8a8 | ||
|
|
ebf1bf2e24 | ||
|
|
15194a396c | ||
|
|
a62bba0eff | ||
|
|
6253ab9b20 | ||
|
|
8fe3c41ce4 | ||
|
|
e097941014 | ||
|
|
67f1ee8066 | ||
|
|
f74d889ce3 | ||
|
|
9ac8279c2b | ||
|
|
f5220d1468 | ||
|
|
7898b54980 | ||
|
|
2ad2825c46 | ||
|
|
8b9b1439b3 | ||
|
|
da89a97182 | ||
|
|
19ec462570 | ||
|
|
8cc750a527 | ||
|
|
c5ec8f7d24 | ||
|
|
82acaabe26 | ||
|
|
dc7076709c | ||
|
|
eeec01864f | ||
|
|
dc102f5af7 | ||
|
|
d4c342c0fd | ||
|
|
8fff3377be | ||
|
|
bb130cdc23 | ||
|
|
6c2f0b936e | ||
|
|
fe7fbf4821 | ||
|
|
e669a94738 | ||
|
|
6d9c217b7d | ||
|
|
0777beadc1 | ||
|
|
04e5e5dc21 | ||
|
|
db33698894 | ||
|
|
87f72b50cc | ||
|
|
35bd08a9c4 | ||
|
|
e7303130d6 | ||
|
|
4f2014ee14 | ||
|
|
3382821c81 | ||
|
|
f283cc3f54 | ||
|
|
78dfc09716 | ||
|
|
5433835e6c | ||
|
|
1f6e32b72a | ||
|
|
16145061de | ||
|
|
4b580607cb | ||
|
|
0da9003ae7 | ||
|
|
fbee3249b4 | ||
|
|
3aed6125cb | ||
|
|
6e1af3af75 | ||
|
|
eecd98193c | ||
|
|
be0ff18843 | ||
|
|
67c8467966 | ||
|
|
666b223dc6 | ||
|
|
4d2c544ac7 | ||
|
|
47b3188ee7 | ||
|
|
1e614c6673 | ||
|
|
be256177b5 | ||
|
|
b5e7e82a67 | ||
|
|
156444f29e | ||
|
|
4a73f8ae78 | ||
|
|
193c95e1fc | ||
|
|
6a6b223972 | ||
|
|
90c39bc9f5 | ||
|
|
10ca9420d5 | ||
|
|
aba8878500 | ||
|
|
98c92c03d9 | ||
|
|
ffd09dfa75 | ||
|
|
34362117da | ||
|
|
1cf68bce40 | ||
|
|
d6ebcd1fbc | ||
|
|
d3f720092f | ||
|
|
0303c3b28f | ||
|
|
f421824af3 | ||
|
|
93ac809711 | ||
|
|
69af175bea | ||
|
|
2e960e564b | ||
|
|
aa43b3669a | ||
|
|
f4e380831a | ||
|
|
aa85152cc2 | ||
|
|
376f1080f9 | ||
|
|
2cde38923c | ||
|
|
9c680d59f0 | ||
|
|
a9d4085587 | ||
|
|
178956c781 | ||
|
|
4dde9e8b0b | ||
|
|
26c2d52565 | ||
|
|
1ad8f4ee62 | ||
|
|
f76ad57835 | ||
|
|
2fd551ac60 | ||
|
|
6dcd73e940 | ||
|
|
f245ccb104 | ||
|
|
7ab80a64f7 | ||
|
|
6d2925492d | ||
|
|
21a76c1155 | ||
|
|
260f61f01a | ||
|
|
d0ca839d2c | ||
|
|
bddddb89fc | ||
|
|
14eeae6816 | ||
|
|
3dc34b9fb9 | ||
|
|
1243320769 | ||
|
|
4eb0732eaa | ||
|
|
b78e3735e2 | ||
|
|
9fa97f9730 | ||
|
|
f654b72a19 | ||
|
|
6ac2dea20a | ||
|
|
f19de0b526 | ||
|
|
8b735d438d | ||
|
|
b444432de7 | ||
|
|
e75c252e1d | ||
|
|
700f25fbbc | ||
|
|
18cc6326b8 | ||
|
|
96cd58db64 | ||
|
|
412f2fb1c5 | ||
|
|
8f85596b57 | ||
|
|
d6f8467334 | ||
|
|
d99aa39809 | ||
|
|
fe7d707d7f | ||
|
|
bb14a64b42 | ||
|
|
dcb2037465 | ||
|
|
41612dc08a | ||
|
|
3af65ffe91 | ||
|
|
12984cec6a | ||
|
|
486ec72229 | ||
|
|
b3fb638d69 | ||
|
|
71e44bc7a3 | ||
|
|
09dba3251b | ||
|
|
1682713fed | ||
|
|
e678c2aa53 | ||
|
|
2bceaea550 | ||
|
|
ae78abc404 | ||
|
|
71df9e5a92 | ||
|
|
a74537aa02 | ||
|
|
16716b2172 | ||
|
|
027a412b65 | ||
|
|
4ea6b9ad5c | ||
|
|
c0209e0aae | ||
|
|
2c3ad3e7fb | ||
|
|
74f09ffcd9 | ||
|
|
acd413ab61 | ||
|
|
415ee7e75d | ||
|
|
2fe9b3237e | ||
|
|
81c0e00b76 | ||
|
|
1b766e4974 | ||
|
|
690af5115d | ||
|
|
a6ec7c0c46 | ||
|
|
37fe50a1c5 | ||
|
|
ce5f427837 | ||
|
|
5dc0b6e705 | ||
|
|
ea67f64d31 | ||
|
|
722c03a506 | ||
|
|
678c7b6591 | ||
|
|
8f7318f90f | ||
|
|
7b2a7b210a | ||
|
|
14362aae17 | ||
|
|
0e16f96fad | ||
|
|
159b7172b0 | ||
|
|
75c637a6e4 | ||
|
|
a3bb685def | ||
|
|
42010a1dc0 | ||
|
|
a456c2b21e | ||
|
|
917c5f7280 | ||
|
|
8b530f12d1 | ||
|
|
604728ecec | ||
|
|
de224baf98 | ||
|
|
6ee0672e74 | ||
|
|
ff422707b7 | ||
|
|
9edb1cfe0f | ||
|
|
755a3d6a39 | ||
|
|
a17dc55a17 | ||
|
|
b35a71f023 | ||
|
|
b9a02143b1 | ||
|
|
8091c22402 | ||
|
|
da93438455 | ||
|
|
b35496d053 | ||
|
|
4ee4c14090 | ||
|
|
2269b4b209 | ||
|
|
4a1d78056c | ||
|
|
0b7c7fd816 | ||
|
|
84c405cdf7 | ||
|
|
9560f40603 | ||
|
|
8718027acb | ||
|
|
69151c65b2 | ||
|
|
7f464a94e1 | ||
|
|
6df00babb3 | ||
|
|
a21392c97e | ||
|
|
d1070d37c3 | ||
|
|
db464ec087 | ||
|
|
8093df3040 | ||
|
|
45f36ca380 | ||
|
|
9c372a2320 | ||
|
|
b44fe819d0 | ||
|
|
3512ca422a | ||
|
|
bbc44d9ba7 | ||
|
|
df1905b17d | ||
|
|
14e8ac2a5c | ||
|
|
2225b6afd7 | ||
|
|
fd6c9db110 |
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: fbelavenuto
|
||||
135
.github/workflows/main.yml
vendored
135
.github/workflows/main.yml
vendored
@@ -1,52 +1,77 @@
|
||||
name: Build image
|
||||
|
||||
# Controls when the workflow will run
|
||||
on:
|
||||
|
||||
# Push
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
tags:
|
||||
- v*
|
||||
# pull_request:
|
||||
|
||||
# When a release is published
|
||||
# release:
|
||||
# types: [published]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- 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
|
||||
@@ -54,31 +79,38 @@ jobs:
|
||||
cp -Ru files/* .buildroot
|
||||
cd .buildroot
|
||||
echo "Generating default config"
|
||||
make arpl_defconfig
|
||||
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"
|
||||
@@ -92,23 +124,40 @@ 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"
|
||||
make arpl_defconfig
|
||||
make BR2_EXTERNAL=../external arpl_defconfig
|
||||
echo "Version: ${VERSION}"
|
||||
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
|
||||
# Zip image and generate checksum
|
||||
- name: Pack
|
||||
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
|
||||
|
||||
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
|
||||
@@ -116,8 +165,8 @@ jobs:
|
||||
name: Images
|
||||
path: |
|
||||
arpl.img
|
||||
arpl.vmdk
|
||||
retention-days: 1
|
||||
arpl*.vmdk
|
||||
retention-days: 5
|
||||
|
||||
# Publish a release if is a tag
|
||||
- name: Release
|
||||
@@ -126,6 +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
|
||||
arpl-${{ steps.build.outputs.VERSION }}.vmdk-dyn.zip
|
||||
arpl-${{ steps.build.outputs.VERSION }}.vmdk-flat.zip
|
||||
update.zip
|
||||
|
||||
15
.gitignore
vendored
15
.gitignore
vendored
@@ -1,10 +1,15 @@
|
||||
!.gitkeep
|
||||
.vscode
|
||||
arpl.img
|
||||
arpl.vmdk
|
||||
arpl*.img
|
||||
arpl*.vmdk
|
||||
*.zip
|
||||
.buildroot
|
||||
test.sh
|
||||
docker/Dockerfile
|
||||
docker/cache
|
||||
test*.sh
|
||||
docker/syno-compiler/Dockerfile
|
||||
cache
|
||||
*.bak
|
||||
*.o
|
||||
/files/board/arpl/p3/addons
|
||||
/files/board/arpl/p3/lkms
|
||||
/files/board/arpl/p3/modules
|
||||
/tests
|
||||
|
||||
@@ -5,3 +5,4 @@ broadwellnk 4.4.180
|
||||
denverton 4.4.180
|
||||
geminilake 4.4.180
|
||||
v1000 4.4.180
|
||||
r1000 4.4.180
|
||||
|
||||
98
README-Zh.md
Normal file
98
README-Zh.md
Normal file
@@ -0,0 +1,98 @@
|
||||
# 自动化 Redpill 安装程序
|
||||
|
||||
这个特别的项目是为了方便我进行与Redpill相关的测试而创建的,我决定与其他用户共享。
|
||||
|
||||
原作者是巴西人,英语不太好,中文Readme版本基于原文润色翻译。
|
||||
|
||||
我尽可能让这个系统尽可能地人性化,以简化操作。安装程序会自动检测正在使用的设备是SATA接口还是USB,并准确地识别其VID和PID。为了允许内核在不设置与网络接口相关的变量的情况下启动,redpill-lkm已被修改。因此,你在使用这个安装程序时不需要再担心这个问题。感谢Jun的代码,用于生成zImage和Ramdisk补丁,已经集成在其中。如果“zImage”或“rd.gz”有任何小的更新,安装程序会重新应用这些补丁。最重要的内核模块已内置于DSM ramdisk镜像中,以实现自动外设检测。
|
||||
|
||||
# 重要注意事项
|
||||
|
||||
- 一些用户曾经遇到过启动时间过长的问题。在这种情况下,强烈建议使用SSD作为去启动盘,如果选择通过外接设备启动,请使用一个高速的USB闪存驱动器。
|
||||
|
||||
- 必须拥有至少4GB的RAM,无论是在裸机还是虚拟机中。
|
||||
|
||||
- DSM内核与SATA端口兼容,不支持SAS/SCSI等。对于Device-tree模式,只有SATA端口可以工作。对于其他模式,可能支持其他类型的磁盘。
|
||||
|
||||
- HBA卡可以使用,但显示SMART和序列号仅在DS3615xs、DS3617xs和DS3622xs+型号上有效。
|
||||
|
||||
# 使用方法
|
||||
|
||||
## 通用指导
|
||||
|
||||
要使用这个项目,下载最新可用的镜像文件,并将其烧录到USB闪存盘或SATA硬盘模块上。设置PC从烧录的媒体启动,并按照屏幕上的信息操作。
|
||||
|
||||
如果最后一个分区的大小超过2GiB,加载器会自动增加其大小并用这个空间作为缓存。
|
||||
|
||||
## 启动安装程序
|
||||
|
||||
### 通过终端
|
||||
|
||||
直接在计算机上调用"menu.sh"命令。
|
||||
|
||||
### 通过网页
|
||||
|
||||
从同一网络中的另一台机器,通过浏览器输入屏幕上显示的地址`http://<ip>:7681`。
|
||||
|
||||
### 通过ssh
|
||||
|
||||
在同一网络中的另一台机器上,使用SSH客户端,用户名: `root` 和密码: `Redp1lL-1s-4weSomE`
|
||||
|
||||
## 使用安装程序
|
||||
|
||||
安装时菜单系统是动态展示的,我希望它直观到用户可以毫无问题地使用。
|
||||
|
||||
无需配置VID/PID(如果使用USB闪存盘)或定义网络接口的MAC地址。如果用户想修改任何接口的MAC地址,可以在"cmdline"菜单中使用"Change MAC"选项。
|
||||
|
||||
如果选择了一个使用Device-tree系统来定义硬盘的型号,则无需进行任何配置。对于没有使用Device-tree的型号,需要手动完成配置,在"cmdline"菜单中有一个选项可以显示SATA控制器、DUMMY端口和正在使用的端口,以协助创建"SataPortMap"、"DiskIdxMap"和"sata_remap"(如果需要)。
|
||||
|
||||
另一个重要的点是,安装程序会检测CPU是否支持MOVBE指令,受体不支持该指令时对应群晖型号不会显示。因此,如果DS918+和DVA3221型号没有显示,那是因为CPU不支持MOVBE指令。你可以取消这个限制,并自行承担风险进行测试。
|
||||
|
||||
我开发了一个简单的补丁,用于不再显示没有Device-tree型号上的DUMMY端口错误,用户可以安装时无需担心这个问题。
|
||||
|
||||
## 快速入门指导
|
||||
|
||||
启动加载器后,应该会出现以下屏幕。输入 menu.sh 并按下 `<ENTER>`:
|
||||
|
||||

|
||||
|
||||
如果你愿意,也可以通过网页进行访问:
|
||||
|
||||

|
||||
|
||||
选择“型号(model)”选项,并选择你偏好的群晖型号:
|
||||
|
||||

|
||||
|
||||
选择“版本号(Buildnumber)”选项,并选择第一个选项:
|
||||
|
||||

|
||||
|
||||
进入“序列号(Serial)”菜单,并选择“生成一个随机序列号(Generate a random Serial number)”。
|
||||
|
||||
选择“构建(Build)”选项,等待加载器生成:
|
||||
|
||||

|
||||
|
||||
选择“启动(Boot)”选项,等待DSM启动:
|
||||
|
||||

|
||||
|
||||
由于DSM内核不会在屏幕上显示消息,因此需要通过浏览器访问地址`http://<ip>`来继续配置DSM的过程。
|
||||
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项目的人的工作。
|
||||
|
||||
未来将添加更多信息。
|
||||
116
README.md
116
README.md
@@ -1,28 +1,124 @@
|
||||
# Automated Redpill Loader
|
||||
|
||||
Project archived, please use: https://github.com/RROrg/rr
|
||||
|
||||
[中文说明](./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 update, the loader re-applies the patches. Builds 42218 and 42661 up to update5 are working. Automatic updates should still be disabled as we are not sure if this technique will work forever.
|
||||
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.
|
||||
|
||||
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.
|
||||
# Important considerations
|
||||
|
||||
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, randomly type or create a serial number, add/remove addons with a hardware detection option, 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.
|
||||
- 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;
|
||||
|
||||
Addons and "synoinfo" entries require re-creating the loader, "cmdline" entries do not. You can view the "cmdline" and "synoinfo" entries defined for the chosen model, with user-defined entries having higher priority.
|
||||
- You must have at least 4GB of RAM, both in baremetal and VMs;
|
||||
|
||||
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, he must manually add "cmdline" entries in the corresponding menu (set "netif_num" according to "mac1..4" entries).
|
||||
- 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;
|
||||
|
||||
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".
|
||||
- It is possible to use HBA cards, however SMART and serial numbers are only functional on DS3615xs, DS3617xs and DS3622xs+ models.
|
||||
|
||||
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.
|
||||
# Use
|
||||
|
||||
## General
|
||||
|
||||
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.
|
||||
|
||||
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 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.
|
||||
|
||||
Addons can be downloaded and added to the loader.
|
||||
## Use proxy
|
||||
The proxy only support for terminal。
|
||||
|
||||
For example, if you have one clashx (the default port is 7890) in the lan,follow the steps:
|
||||
|
||||
1. Enabel 'Allow connent from Lan' (clashx only)
|
||||
|
||||

|
||||
|
||||
2. Get the proxy (the computer which runing clashx) ip address
|
||||
3. open arpl termianl (you can access arpl via ssh)
|
||||
```
|
||||
declare -x https_proxy="http://ipaddress:7890/"
|
||||
declare -x http_proxy="http://ipaddress:7890/"
|
||||
declare -x all_proxy="socks5:://ipaddress:7890/"
|
||||
```
|
||||
|
||||
**Change the ipaddress** to your proxy host.
|
||||
|
||||
4. Call the "menu.sh"
|
||||
|
||||
And then the proxy is effective。
|
||||
|
||||
## Quickstart guide
|
||||
|
||||
After booting the loader, the following screen should appear. Type menu.sh and press `<ENTER>`:
|
||||
|
||||

|
||||
|
||||
If you prefer, you can access it via the web:
|
||||
|
||||

|
||||
|
||||
Select the "model" option and choose the model you prefer:
|
||||
|
||||

|
||||
|
||||
Select the "Buildnumber" option and choose the first option:
|
||||
|
||||

|
||||
|
||||
Go to "Serial" menu and choose "Generate a random serial number".
|
||||
|
||||
Select the "Build" option and wait for the loader to be generated:
|
||||
|
||||

|
||||
|
||||
Select the "Boot" option and wait for the DSM to boot:
|
||||
|
||||

|
||||
|
||||
The DSM kernel does not display messages on the screen, so it is necessary to continue the process of configuring DSM through the browser by accessing the address `http://<ip>`.
|
||||
There are several tutorials on how to configure DSM over the internet, which will not be covered here.
|
||||
|
||||
# Tutorials
|
||||
|
||||
An ARPL user (Rikkie) created a tutorial to install ARPL on a proxmox server:
|
||||
https://hotstuff.asia/2023/01/03/xpenology-with-arpl-on-proxmox-the-easy-way/
|
||||
|
||||
# Troubles/questions/etc
|
||||
|
||||
Please search the forums at https://xpenology.com/forum if your question/problem has been discussed and resolved. If you can't find a solution, use github issues.
|
||||
|
||||
# Thanks
|
||||
|
||||
All code was based on the work of TTG, pocopico, jumkey and others involved in continuing TTG's original redpill-load project.
|
||||
|
||||
More information will be added in the future.
|
||||
|
||||
|
||||
21
TODO
21
TODO
@@ -1,5 +1,10 @@
|
||||
A fazer
|
||||
- Descobrir como é o serial do DS2422+
|
||||
- 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
|
||||
@@ -22,5 +27,15 @@ Concluidos:
|
||||
- Arrumar detecção de discos/maxdisks. 918 tem só 4 discos e dá problema com proxmox
|
||||
- Melhorar opções de HD, talvez criar um menu a parte
|
||||
- Implementar update do bzimage e ramdisk online
|
||||
|
||||
https://kb.synology.com/en-me/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have
|
||||
- Mudar addons para colocar pacote completo na partição 3 e detectar dinâmicamente durante o boot do júnior
|
||||
- Acertar flag DIRTY ao atualizar módulos, etc
|
||||
- Consertar MAC custom
|
||||
- Mudar synoinfo para ler do modelo e preencher no user_config, para usuário poder deletar entradas do modelo
|
||||
- Validar netif_num e macX
|
||||
- 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)
|
||||
|
||||
@@ -12,11 +12,8 @@ tasks:
|
||||
cmds:
|
||||
- ./build.sh
|
||||
|
||||
compile-lkms:
|
||||
compile-kpatch:
|
||||
dir: kpatch
|
||||
cmds:
|
||||
- ./compile-lkm.sh
|
||||
|
||||
compile-addons:
|
||||
dir: addons
|
||||
cmds:
|
||||
- ./compile-addons.sh {{.CLI_ARGS}}
|
||||
- make clean all
|
||||
- mv kpatch ../files/board/arpl/overlayfs/opt/arpl/
|
||||
|
||||
BIN
doc/DSM boot.png
Normal file
BIN
doc/DSM boot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
doc/buildnumber.png
Normal file
BIN
doc/buildnumber.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
BIN
doc/first-screen.png
Normal file
BIN
doc/first-screen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
BIN
doc/making.png
Normal file
BIN
doc/making.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
BIN
doc/model.png
Normal file
BIN
doc/model.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
BIN
doc/ttyd.png
Normal file
BIN
doc/ttyd.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -1,35 +0,0 @@
|
||||
FROM alpine:3.14 AS stage
|
||||
ARG PLATFORMS="@@@PLATFORMS@@@"
|
||||
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
|
||||
|
||||
# Copy downloaded toolkits
|
||||
ADD cache /cache
|
||||
# Extract toolkits
|
||||
RUN for V in ${PLATFORMS}; do \
|
||||
echo "${V}" | while IFS=':' read PLATFORM KVER; do \
|
||||
echo "Extracting ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" && \
|
||||
mkdir "/opt/${PLATFORM}" && \
|
||||
tar -xaf "/cache/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" -C "/opt/${PLATFORM}" --strip-components=10 \
|
||||
"usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0/build" && \
|
||||
echo -e "${PLATFORM}\t${KVER}" >> /opt/platforms; \
|
||||
done; \
|
||||
done
|
||||
|
||||
# Final image
|
||||
FROM debian:8-slim
|
||||
ENV SHELL=/bin/bash \
|
||||
ARCH=x86_64
|
||||
|
||||
RUN apt update --yes && \
|
||||
apt install --yes --no-install-recommends --no-install-suggests \
|
||||
build-essential nano make && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=stage /opt /opt
|
||||
COPY files/ /
|
||||
|
||||
WORKDIR /input
|
||||
VOLUME /input /output
|
||||
|
||||
ENTRYPOINT ["/opt/do.sh"]
|
||||
@@ -1,46 +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`
|
||||
|
||||
# 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
|
||||
TOOLKIT_VER="7.0"
|
||||
for PLATFORM in ${!PLATFORMS[@]}; do
|
||||
echo -n "Checking cache/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... "
|
||||
if [ ! -f "cache/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/ds.${PLATFORM}-${TOOLKIT_VER}.dev.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
|
||||
|
||||
# Build
|
||||
echo "Building... Drink a coffee and wait!"
|
||||
docker image rm fbelavenuto/syno-compiler >/dev/null 2>&1
|
||||
docker buildx build . --load --tag fbelavenuto/syno-compiler
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function compile-module {
|
||||
# Validate
|
||||
if [ -z "${1}" ]; then
|
||||
echo "Use: compile-module <platform>"
|
||||
exit 1
|
||||
fi
|
||||
VALID=0
|
||||
while read PLATFORM KVER; do
|
||||
if [ "${PLATFORM}" = "${1}" ]; then
|
||||
VALID=1
|
||||
break
|
||||
fi
|
||||
done </opt/platforms
|
||||
if [ $VALID -eq 0 ]; then
|
||||
echo "Platform ${PLATFORM} not found."
|
||||
exit 1
|
||||
fi
|
||||
echo "Compiling module for ${PLATFORM}-${KVER}..."
|
||||
cp -R /input /tmp
|
||||
make -C "/opt/${PLATFORM}" M="/tmp/input" PLATFORM=${PLATFORM^^} modules
|
||||
while read F; do
|
||||
strip -g "${F}"
|
||||
echo "Copying `basename ${F}`"
|
||||
cp "${F}" "/output"
|
||||
done < <(find /tmp/input -name \*.ko)
|
||||
}
|
||||
|
||||
function compile-lkm {
|
||||
PLATFORM=${1}
|
||||
if [ -z "${PLATFORM}" ]; then
|
||||
echo "Use: compile-lkm <platform>"
|
||||
exit 1
|
||||
fi
|
||||
cp -R /input /tmp
|
||||
make -C "/tmp/input" LINUX_SRC="/opt/${PLATFORM}" dev-v7
|
||||
strip -g "/tmp/input/redpill.ko"
|
||||
mv "/tmp/input/redpill.ko" "/output/redpill-dev.ko"
|
||||
make -C "/tmp/input" LINUX_SRC="/opt/${PLATFORM}" clean
|
||||
make -C "/tmp/input" LINUX_SRC="/opt/${PLATFORM}" prod-v7
|
||||
strip -g "/tmp/input/redpill.ko"
|
||||
mv "/tmp/input/redpill.ko" "/output/redpill-prod.ko"
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Use: <command> (<params>)"
|
||||
exit 1
|
||||
fi
|
||||
case $1 in
|
||||
bash) bash -l ;;
|
||||
compile-module) compile-module $2 ;;
|
||||
compile-lkm) compile-lkm $2 ;;
|
||||
*) echo "Command not recognized: $1" ;;
|
||||
esac
|
||||
50
docker/syno-compiler/Dockerfile.template
Normal file
50
docker/syno-compiler/Dockerfile.template
Normal file
@@ -0,0 +1,50 @@
|
||||
FROM alpine:3.14 AS stage
|
||||
ARG PLATFORMS="@@@PLATFORMS@@@"
|
||||
ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@"
|
||||
ARG GCCLIB_VER="@@@GCCLIB_VER@@@"
|
||||
|
||||
# Copy downloaded toolkits
|
||||
ADD cache /cache
|
||||
# Extract toolkits
|
||||
RUN for V in ${PLATFORMS}; do \
|
||||
echo "${V}" | while IFS=':' read PLATFORM KVER; do \
|
||||
echo -e "${PLATFORM}\t${KVER}" >> /opt/platforms && \
|
||||
echo "Extracting ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" && \
|
||||
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}-${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:9-slim
|
||||
ENV SHELL=/bin/bash \
|
||||
ARCH=x86_64
|
||||
|
||||
RUN apt update --yes && \
|
||||
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 --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 --chown=1000:1000 /opt /opt
|
||||
COPY files/ /
|
||||
|
||||
USER arpl
|
||||
WORKDIR /input
|
||||
VOLUME /input /output
|
||||
|
||||
ENTRYPOINT ["/opt/do.sh"]
|
||||
118
docker/syno-compiler/build.sh
Executable file
118
docker/syno-compiler/build.sh
Executable 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
|
||||
128
docker/syno-compiler/files/opt/do.sh
Executable file
128
docker/syno-compiler/files/opt/do.sh
Executable file
@@ -0,0 +1,128 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
###############################################################################
|
||||
function export-vars() {
|
||||
# Validate
|
||||
if [ -z "${1}" ]; then
|
||||
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 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 -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 $@
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
function compile-module {
|
||||
# Validate
|
||||
if [ -z "${1}" ]; then
|
||||
echo "Use: compile-module <platform>"
|
||||
exit 1
|
||||
fi
|
||||
VALID=0
|
||||
while read PLATFORM KVER; do
|
||||
if [ "${PLATFORM}" = "${1}" ]; then
|
||||
VALID=1
|
||||
break
|
||||
fi
|
||||
done </opt/platforms
|
||||
if [ $VALID -eq 0 ]; then
|
||||
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}
|
||||
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}`"
|
||||
cp "${F}" "/output"
|
||||
done < <(find /tmp/input -name \*.ko)
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
function compile-lkm {
|
||||
PLATFORM=${1}
|
||||
if [ -z "${PLATFORM}" ]; then
|
||||
echo "Use: compile-lkm <platform>"
|
||||
exit 1
|
||||
fi
|
||||
cp -R /input /tmp
|
||||
export-vars ${PLATFORM}
|
||||
export LINUX_SRC="/opt/${PLATFORM}/build"
|
||||
make -C "/tmp/input" dev-v7
|
||||
strip -g "/tmp/input/redpill.ko"
|
||||
mv "/tmp/input/redpill.ko" "/output/redpill-dev.ko"
|
||||
make -C "/tmp/input" clean
|
||||
make -C "/tmp/input" prod-v7
|
||||
strip -g "/tmp/input/redpill.ko"
|
||||
mv "/tmp/input/redpill.ko" "/output/redpill-prod.ko"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# function compile-drivers {
|
||||
# while read platform kver; do
|
||||
# SRC_PATH="/opt/${platform}"
|
||||
# echo "Compiling for ${platform}-${kver}"
|
||||
# cd /opt/linux-${kver}/drivers
|
||||
# while read dir; do
|
||||
# if [ -f "${dir}/Makefile" ]; then
|
||||
# echo "Driver `basename ${dir}`"
|
||||
# grep "CONFIG_.*/.*" "${dir}/Makefile" | sed 's/.*\(CONFIG_[^)]*\).*/\1=n/g' > /tmp/env
|
||||
# grep "CONFIG_.*\.o.*" "${dir}/Makefile" | sed 's/.*\(CONFIG_[^)]*\).*/\1=m/g' >> /tmp/env
|
||||
# make -C "${SRC_PATH}" M=$(readlink -f "${dir}") clean
|
||||
# cat /tmp/env | xargs -d '\n' make -C "${SRC_PATH}" M=$(readlink -f "${dir}") modules $@
|
||||
# fi
|
||||
# done < <(find -type d)
|
||||
# DST_PATH="/output/compiled-mods/${platform}-${kver}"
|
||||
# mkdir -p "${DST_PATH}"
|
||||
# while read f; do
|
||||
# strip -g "${f}"
|
||||
# mv "${f}" "${DST_PATH}"
|
||||
# done < <(find -name \*.ko)
|
||||
# done </opt/platforms
|
||||
# }
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Use: <command> (<params>)"
|
||||
echo "Commands: bash | shell <platform> | compile-module <platform> | compile-lkm <platform>"
|
||||
exit 1
|
||||
fi
|
||||
case $1 in
|
||||
bash) shift && bash -l $@ ;;
|
||||
shell) shell $@ ;;
|
||||
compile-module) compile-module $2 ;;
|
||||
compile-lkm) compile-lkm $2 ;;
|
||||
# compile-drivers) compile-drivers ;;
|
||||
*) echo "Command not recognized: $1" ;;
|
||||
esac
|
||||
2
external/Config.in
vendored
2
external/Config.in
vendored
@@ -1,2 +1,2 @@
|
||||
source "$BR2_EXTERNAL_ARPL_PATH/r8125/Config.in"
|
||||
source "$BR2_EXTERNAL_ARPL_PATH/r8168/Config.in"
|
||||
source "$BR2_EXTERNAL_ARPL_PATH/r8125/Config.in"
|
||||
|
||||
Binary file not shown.
@@ -17,8 +17,18 @@ CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
# CONFIG_RD_GZIP is not set
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
# CONFIG_RD_ZSTD is not set
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_KCMP=y
|
||||
CONFIG_EMBEDDED=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_SMP=y
|
||||
@@ -31,8 +41,6 @@ CONFIG_NUMA=y
|
||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
||||
# CONFIG_MTRR_SANITIZER is not set
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_STUB=y
|
||||
CONFIG_EFI_MIXED=y
|
||||
CONFIG_HZ_1000=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_CRASH_DUMP=y
|
||||
@@ -42,17 +50,19 @@ CONFIG_PM_TRACE_RTC=y
|
||||
CONFIG_ACPI_VIDEO=y
|
||||
CONFIG_ACPI_DOCK=y
|
||||
CONFIG_ACPI_BGRT=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_X86_ACPI_CPUFREQ=y
|
||||
CONFIG_X86_POWERNOW_K8=y
|
||||
CONFIG_INTEL_IDLE=y
|
||||
CONFIG_IA32_EMULATION=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
CONFIG_KPROBES=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
# CONFIG_GCC_PLUGINS is not set
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
# CONFIG_BLK_DEBUG_FS is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_NET=y
|
||||
@@ -79,7 +89,8 @@ CONFIG_TCP_CONG_ADVANCED=y
|
||||
# CONFIG_TCP_CONG_WESTWOOD is not set
|
||||
# CONFIG_TCP_CONG_HTCP is not set
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_IPV6=m
|
||||
# CONFIG_IPV6_SIT is not set
|
||||
CONFIG_NETLABEL=y
|
||||
CONFIG_NETFILTER=y
|
||||
# CONFIG_NETFILTER_ADVANCED is not set
|
||||
@@ -92,7 +103,6 @@ CONFIG_NF_NAT=y
|
||||
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
|
||||
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
|
||||
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
|
||||
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
|
||||
CONFIG_NETFILTER_XT_MATCH_POLICY=y
|
||||
CONFIG_NETFILTER_XT_MATCH_STATE=y
|
||||
@@ -101,6 +111,8 @@ CONFIG_IP_NF_FILTER=y
|
||||
CONFIG_IP_NF_TARGET_REJECT=y
|
||||
CONFIG_IP_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP_NF_MANGLE=y
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_EMATCH=y
|
||||
CONFIG_NET_CLS_ACT=y
|
||||
@@ -110,120 +122,213 @@ CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_HOTPLUG_PCI=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=y
|
||||
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
|
||||
CONFIG_VMWARE_VMCI=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_SPI_ATTRS=y
|
||||
CONFIG_SCSI_SAS_ATA=y
|
||||
CONFIG_BLK_DEV_3W_XXXX_RAID=m
|
||||
CONFIG_SCSI_HPSA=m
|
||||
CONFIG_SCSI_3W_9XXX=m
|
||||
CONFIG_SCSI_3W_SAS=m
|
||||
CONFIG_SCSI_ACARD=m
|
||||
CONFIG_SCSI_AACRAID=m
|
||||
CONFIG_SCSI_AIC7XXX=m
|
||||
CONFIG_SCSI_AIC79XX=m
|
||||
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
|
||||
CONFIG_SCSI_AIC94XX=m
|
||||
CONFIG_SCSI_MVSAS=m
|
||||
CONFIG_SCSI_MVUMI=m
|
||||
CONFIG_SCSI_DPT_I2O=m
|
||||
CONFIG_SCSI_ADVANSYS=m
|
||||
CONFIG_SCSI_ARCMSR=m
|
||||
CONFIG_SCSI_ESAS2R=m
|
||||
CONFIG_MEGARAID_NEWGEN=y
|
||||
CONFIG_MEGARAID_MM=m
|
||||
CONFIG_MEGARAID_MAILBOX=m
|
||||
CONFIG_MEGARAID_LEGACY=m
|
||||
CONFIG_MEGARAID_SAS=m
|
||||
CONFIG_SCSI_MPT2SAS=m
|
||||
CONFIG_SCSI_MPT3SAS=m
|
||||
CONFIG_SCSI_MPI3MR=m
|
||||
CONFIG_SCSI_SMARTPQI=m
|
||||
CONFIG_SCSI_UFSHCD=m
|
||||
CONFIG_SCSI_UFSHCD_PCI=m
|
||||
CONFIG_SCSI_UFS_DWC_TC_PCI=m
|
||||
CONFIG_SCSI_UFSHCD_PLATFORM=m
|
||||
CONFIG_SCSI_UFS_CDNS_PLATFORM=m
|
||||
CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m
|
||||
CONFIG_SCSI_HPTIOP=m
|
||||
CONFIG_SCSI_BUSLOGIC=m
|
||||
CONFIG_SCSI_MYRB=m
|
||||
CONFIG_SCSI_MYRS=m
|
||||
CONFIG_VMWARE_PVSCSI=m
|
||||
CONFIG_SCSI_SNIC=m
|
||||
CONFIG_SCSI_DMX3191D=m
|
||||
CONFIG_SCSI_ISCI=m
|
||||
CONFIG_SCSI_IPS=m
|
||||
CONFIG_SCSI_INITIO=m
|
||||
CONFIG_SCSI_INIA100=m
|
||||
CONFIG_SCSI_STEX=m
|
||||
CONFIG_SCSI_SYM53C8XX_2=m
|
||||
CONFIG_SCSI_IPR=m
|
||||
CONFIG_SCSI_QLOGIC_1280=m
|
||||
CONFIG_SCSI_QLA_ISCSI=m
|
||||
CONFIG_QEDI=m
|
||||
CONFIG_SCSI_DC395x=m
|
||||
CONFIG_SCSI_AM53C974=m
|
||||
CONFIG_SCSI_WD719X=m
|
||||
CONFIG_SCSI_PMCRAID=m
|
||||
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_ATA_PIIX=y
|
||||
CONFIG_SATA_MV=m
|
||||
CONFIG_SATA_NV=m
|
||||
CONFIG_SATA_SIL=m
|
||||
CONFIG_SATA_SIS=m
|
||||
CONFIG_SATA_ULI=m
|
||||
CONFIG_SATA_VIA=m
|
||||
CONFIG_PATA_AMD=y
|
||||
CONFIG_PATA_OLDPIIX=y
|
||||
CONFIG_PATA_SCH=y
|
||||
CONFIG_ATA_GENERIC=y
|
||||
CONFIG_SATA_MV=y
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=y
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
CONFIG_DM_MIRROR=y
|
||||
CONFIG_DM_RAID=m
|
||||
CONFIG_DM_ZERO=y
|
||||
CONFIG_FUSION=y
|
||||
CONFIG_FUSION_SPI=m
|
||||
CONFIG_FUSION_SAS=m
|
||||
CONFIG_FUSION_CTL=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_TEAM=m
|
||||
CONFIG_MACVLAN=m
|
||||
CONFIG_IPVLAN=m
|
||||
CONFIG_VXLAN=m
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_VIRTIO_NET=m
|
||||
CONFIG_ET131X=m
|
||||
CONFIG_SLICOSS=m
|
||||
CONFIG_ACENIC=m
|
||||
CONFIG_ENA_ETHERNET=m
|
||||
CONFIG_AMD_XGBE=m
|
||||
CONFIG_AQTION=m
|
||||
CONFIG_ATL1=m
|
||||
CONFIG_ATL1E=m
|
||||
CONFIG_ATL1C=m
|
||||
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
|
||||
CONFIG_BNA=m
|
||||
CONFIG_MACB=m
|
||||
CONFIG_THUNDER_NIC_PF=m
|
||||
CONFIG_THUNDER_NIC_VF=m
|
||||
CONFIG_LIQUIDIO=m
|
||||
CONFIG_LIQUIDIO_VF=m
|
||||
CONFIG_CHELSIO_T1=m
|
||||
CONFIG_CHELSIO_T1_1G=y
|
||||
CONFIG_CHELSIO_T3=m
|
||||
CONFIG_CHELSIO_T4=m
|
||||
CONFIG_CHELSIO_T4VF=m
|
||||
CONFIG_NET_TULIP=y
|
||||
CONFIG_ENIC=m
|
||||
CONFIG_CX_ECAT=m
|
||||
CONFIG_DNET=m
|
||||
CONFIG_DL2K=m
|
||||
CONFIG_SUNDANCE=m
|
||||
CONFIG_BE2NET=m
|
||||
CONFIG_HINIC=m
|
||||
CONFIG_E100=y
|
||||
CONFIG_E1000=y
|
||||
CONFIG_E1000E=y
|
||||
CONFIG_E1000=m
|
||||
CONFIG_E1000E=m
|
||||
CONFIG_IGB=m
|
||||
CONFIG_IGBVF=m
|
||||
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
|
||||
CONFIG_S2IO=m
|
||||
CONFIG_VXGE=m
|
||||
CONFIG_FORCEDETH=m
|
||||
CONFIG_NFP=m
|
||||
CONFIG_NI_XGE_MANAGEMENT_ENET=m
|
||||
CONFIG_HAMACHI=m
|
||||
CONFIG_YELLOWFIN=m
|
||||
CONFIG_QLA3XXX=m
|
||||
CONFIG_QLCNIC=m
|
||||
CONFIG_NETXEN_NIC=m
|
||||
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_USB_NET_DRIVERS is not set
|
||||
CONFIG_PCS_XPCS=m
|
||||
CONFIG_USB_NET_DRIVERS=m
|
||||
CONFIG_USB_CATC=m
|
||||
CONFIG_USB_KAWETH=m
|
||||
CONFIG_USB_PEGASUS=m
|
||||
CONFIG_USB_RTL8150=m
|
||||
CONFIG_USB_RTL8152=m
|
||||
CONFIG_USB_LAN78XX=m
|
||||
CONFIG_USB_USBNET=m
|
||||
CONFIG_USB_NET_CDC_EEM=m
|
||||
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
|
||||
CONFIG_USB_NET_CDC_MBIM=m
|
||||
CONFIG_USB_NET_DM9601=m
|
||||
CONFIG_USB_NET_SR9700=m
|
||||
CONFIG_USB_NET_SR9800=m
|
||||
CONFIG_USB_NET_SMSC75XX=m
|
||||
CONFIG_USB_NET_SMSC95XX=m
|
||||
CONFIG_USB_NET_GL620A=m
|
||||
CONFIG_USB_NET_PLUSB=m
|
||||
CONFIG_USB_NET_MCS7830=m
|
||||
CONFIG_USB_NET_RNDIS_HOST=m
|
||||
CONFIG_USB_NET_CX82310_ETH=m
|
||||
CONFIG_USB_NET_KALMIA=m
|
||||
CONFIG_USB_NET_QMI_WWAN=m
|
||||
CONFIG_USB_NET_INT51X1=m
|
||||
CONFIG_USB_IPHETH=m
|
||||
CONFIG_USB_SIERRA_NET=m
|
||||
CONFIG_USB_VL600=m
|
||||
CONFIG_USB_NET_CH9200=m
|
||||
CONFIG_USB_NET_AQC111=m
|
||||
CONFIG_USB_RTL8153_ECM=m
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_VMXNET3=m
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
@@ -244,21 +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_DRM_VIRTIO_GPU=m
|
||||
CONFIG_FB=y
|
||||
CONFIG_FIRMWARE_EDID=y
|
||||
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
|
||||
@@ -294,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
|
||||
@@ -315,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
|
||||
@@ -329,9 +457,8 @@ CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_TMPFS_INODE64=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
@@ -364,7 +491,6 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_STACK_USAGE=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_SCHEDSTATS=y
|
||||
|
||||
@@ -15,17 +15,17 @@ BOARD_PATH="${CONFIG_DIR}/board/arpl"
|
||||
|
||||
echo "Creating image file"
|
||||
# Create image zeroed
|
||||
dd if="/dev/zero" of="${IMAGE_FILE}" bs=1M count=250 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
|
||||
echo -e "n\np\n\n\n+100M\nt\n\n0b\nn\np\n\n\n+100M\nn\np\n\n\n\nw" | fdisk "${IMAGE_FILE}" >/dev/null
|
||||
echo -e "n\np\n\n\n+50M\na\nt\n\n0b\nn\np\n\n\n+50M\nn\np\n\n\n\nw" | fdisk "${IMAGE_FILE}" >/dev/null
|
||||
|
||||
# Force umount, ignore errors
|
||||
sudo umount "${BINARIES_DIR}/p1" 2>/dev/null || true
|
||||
sudo umount "${BINARIES_DIR}/p3" 2>/dev/null || true
|
||||
# Force unsetup of loop device
|
||||
sudSetupo losetup -d "/dev/loop8" 2>/dev/null || true
|
||||
sudo losetup -d "/dev/loop8" 2>/dev/null || true
|
||||
# Setup the loop8 loop device
|
||||
sudo losetup -P "/dev/loop8" "${IMAGE_FILE}"
|
||||
# Format partitions
|
||||
@@ -40,8 +40,8 @@ sudo mount /dev/loop8p1 "${BINARIES_DIR}/p1"
|
||||
sudo mount /dev/loop8p3 "${BINARIES_DIR}/p3"
|
||||
|
||||
echo "Copying files"
|
||||
sudo cp "${BINARIES_DIR}/bzImage" "${BINARIES_DIR}/p1/bzImage-arpl"
|
||||
sudo cp "${BINARIES_DIR}/rootfs.cpio.xz" "${BINARIES_DIR}/p1/initrd-arpl"
|
||||
sudo cp "${BINARIES_DIR}/bzImage" "${BINARIES_DIR}/p3/bzImage-arpl"
|
||||
sudo cp "${BINARIES_DIR}/rootfs.cpio.xz" "${BINARIES_DIR}/p3/initrd-arpl"
|
||||
sudo cp -R "${BOARD_PATH}/p1/"* "${BINARIES_DIR}/p1"
|
||||
sudo cp -R "${BOARD_PATH}/p3/"* "${BINARIES_DIR}/p3"
|
||||
sync
|
||||
|
||||
33
files/board/arpl/overlayfs/etc/init.d/S41dhcpcd
Executable file
33
files/board/arpl/overlayfs/etc/init.d/S41dhcpcd
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Start/stop dhcpcd
|
||||
#
|
||||
|
||||
DAEMON=/usr/sbin/dhcpcd
|
||||
CONFIG=/etc/dhcpcd.conf
|
||||
PIDFILE=/var/run/dhcpcd/pid
|
||||
|
||||
[ -f $CONFIG ] || exit 0
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting dhcpcd..."
|
||||
start-stop-daemon -S -x "$DAEMON" -p "$PIDFILE" -- -f "$CONFIG"
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping dhcpcd..."
|
||||
start-stop-daemon -K -x "$DAEMON" -p "$PIDFILE" -o
|
||||
;;
|
||||
reload|force-reload)
|
||||
echo "Reloading dhcpcd configuration..."
|
||||
"$DAEMON" -s reload
|
||||
;;
|
||||
restart)
|
||||
"$0" stop
|
||||
sleep 1 # Prevent race condition: ensure dhcpcd stops before start.
|
||||
"$0" start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
|
||||
exit 1
|
||||
esac
|
||||
@@ -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
|
||||
|
||||
20
files/board/arpl/overlayfs/etc/samba/smb.conf
Normal file
20
files/board/arpl/overlayfs/etc/samba/smb.conf
Normal file
@@ -0,0 +1,20 @@
|
||||
[global]
|
||||
workgroup = WORKGROUP
|
||||
server role = standalone server
|
||||
obey pam restrictions = yes
|
||||
map to guest = Bad User
|
||||
usershare allow guests = yes
|
||||
dfree command = /usr/bin/df
|
||||
|
||||
[arpl]
|
||||
browseable = yes
|
||||
public = yes
|
||||
path = /mnt
|
||||
guest ok = yes
|
||||
printable = no
|
||||
read only = no
|
||||
writable = yes
|
||||
create mask = 0600
|
||||
directory mask = 0700
|
||||
force user = root
|
||||
force group = root
|
||||
@@ -7,14 +7,16 @@ 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} ""
|
||||
TITLE="BOOTING..."
|
||||
if [ -z "${COLUMNS}" ]; then
|
||||
echo -e "\033[1;33m${TITLE}\033[0m"
|
||||
else
|
||||
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
|
||||
fi
|
||||
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}"
|
||||
|
||||
# Check if DSM zImage changed, patch it if necessary
|
||||
ZIMAGE_HASH="`readConfigKey "zimage-hash" "${USER_CONFIG_FILE}"`"
|
||||
@@ -24,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
|
||||
|
||||
@@ -36,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
|
||||
|
||||
@@ -47,6 +49,9 @@ MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
|
||||
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
|
||||
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
|
||||
|
||||
echo -e "Model: \033[1;36m${MODEL}\033[0m"
|
||||
echo -e "Build: \033[1;36m${BUILD}\033[0m"
|
||||
|
||||
declare -A CMDLINE
|
||||
|
||||
# Fixed values
|
||||
@@ -60,72 +65,91 @@ 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`
|
||||
if [ "${BUS}" = "ata" ]; then
|
||||
SIZE=$((`df -BM | awk '/\/mnt\/p3/{print$2}' | tr 'M' ' '`+300))
|
||||
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
|
||||
SIZE=$((`cat /sys/block/${LOADER_DEVICE_NAME}/size`/2048+10))
|
||||
# Read SATADoM type
|
||||
DOM="`readModelKey "${MODEL}" "dom"`"
|
||||
fi
|
||||
|
||||
# Validate netif_num
|
||||
NETIF_NUM=${CMDLINE["netif_num"]}
|
||||
MACS=0
|
||||
for N in `seq 1 9`; do
|
||||
[ -n "${CMDLINE["mac${N}"]}" ] && MACS=$((${MACS}+1))
|
||||
done
|
||||
if [ ${NETIF_NUM} -ne ${MACS} ]; then
|
||||
echo -e "\033[1;33m*** netif_num is not equal to macX amount, set netif_num to ${MACS} ***\033[0m"
|
||||
CMDLINE["netif_num"]=${MACS}
|
||||
fi
|
||||
|
||||
# Prepare command line
|
||||
CMDLINE_LINE=""
|
||||
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
|
||||
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
|
||||
[ ${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'`
|
||||
|
||||
# Inform user
|
||||
echo -e "Model: \033[1;36m${MODEL}\033[0m"
|
||||
echo -e "Build: \033[1;36m${BUILD}\033[0m"
|
||||
#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
|
||||
COUNT=0
|
||||
echo -n "IP: "
|
||||
echo -n "IP"
|
||||
while true; do
|
||||
IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
|
||||
if [ -n "${IP}" ]; then
|
||||
echo -e "\033[1;32m${IP}\033[0m"
|
||||
echo -e ": \033[1;32m${IP}\033[0m"
|
||||
break
|
||||
elif [ ${COUNT} -eq 8 ]; then
|
||||
echo -e "\033[1;31mERROR\033[0m"
|
||||
elif [ ${COUNT} -eq 30 ]; then
|
||||
echo -e ": \033[1;31mERROR\033[0m"
|
||||
break
|
||||
fi
|
||||
COUNT=$((${COUNT}+1))
|
||||
sleep 1
|
||||
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 -a
|
||||
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
|
||||
|
||||
BIN
files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz
Normal file
BIN
files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz
Normal file
Binary file not shown.
@@ -1,245 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* This file contains usual common functions used by patchers
|
||||
*
|
||||
* Most of the functions here are written to be C-like without utilizing any of the PHP's magic. This functionality is
|
||||
* ultimately intended to be rewritten into a dynamic patcher in C. Making this code compatible wtih simple C (e.g.
|
||||
* by not using fancy regexes) will make it slower in PHP but MUCH easier to rewrite into C later on.
|
||||
*/
|
||||
|
||||
function perr(string $txt, $die = false)
|
||||
{
|
||||
fwrite(STDERR, $txt);
|
||||
if ($die) {
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
function getELFSectionAddr(string $elf, string $section, int $pos)
|
||||
{
|
||||
$secAddr = exec(
|
||||
sprintf('readelf -S \'%1$s\' | grep -E \'\s%2$s\s\' | awk -F\'%2$s\' \'{ print $2 }\' | awk \'{ print $%3$d }\'', $elf, str_replace('.', '\.', $section), $pos)
|
||||
);
|
||||
if (!$secAddr) {
|
||||
perr("$section section not found in $elf file\n", true);
|
||||
}
|
||||
|
||||
$secAddr = hexdec(substr($secAddr, -8));
|
||||
perr("Found $section at " . decTo32bUFhex($secAddr) . " in $elf\n");
|
||||
|
||||
return $secAddr;
|
||||
}
|
||||
|
||||
function getELFStringLoc(string $elf, string $text)
|
||||
{
|
||||
$strAddr = exec(
|
||||
sprintf(
|
||||
'readelf -p \'.rodata\' \'%s\' | grep \'%s\' | grep -oE \'\[(\s+)?.+\]\' | grep -oE \'[a-f0-9]+\'',
|
||||
$elf, $text
|
||||
)
|
||||
);
|
||||
|
||||
if (!$strAddr) {
|
||||
perr("$text string not found in $elf file's .rodata section\n", true);
|
||||
}
|
||||
|
||||
$secAddr = hexdec(substr($strAddr, -8));
|
||||
perr("Found \"$text\" at " . decTo32bUFhex($secAddr) . " in $elf\n");
|
||||
|
||||
return $secAddr;
|
||||
}
|
||||
|
||||
function getArgFilePath(int $argn)
|
||||
{
|
||||
global $argv;
|
||||
|
||||
$file = realpath($argv[$argn]);
|
||||
if (!is_file($file) || !$file) {
|
||||
perr("Expected a readable file in argument $argn - found none\n", true);
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts decimal value to 32-bit little-endian hex value
|
||||
*/
|
||||
function decTo32bLEhex(int $dec)
|
||||
{
|
||||
$hex = str_pad(dechex($dec), 32 / 8 * 2, 'f', STR_PAD_LEFT); //32-bit hex
|
||||
|
||||
return implode('', array_reverse(str_split($hex, 2))); //make it little-endian
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts decimal value to 32-bit user-friendly (and big-endian) hex value
|
||||
*
|
||||
* This function should really be used for printing
|
||||
*/
|
||||
function decTo32bUFhex(int $dec)
|
||||
{
|
||||
return implode(' ', str_split(str_pad(dechex($dec), 32 / 8 * 2, 'f', STR_PAD_LEFT), 2));
|
||||
}
|
||||
|
||||
function rawToUFhex(string $raw)
|
||||
{
|
||||
$out = '';
|
||||
for($i=0, $iMax = strlen($raw); $i < $iMax; $i++) {
|
||||
$out .= sprintf('%02x', ord($raw[$i]));
|
||||
|
||||
if ($i+1 !== $iMax) {
|
||||
$out .= ' ';
|
||||
}
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert hex values to their binary/raw counterparts as-is
|
||||
*/
|
||||
function hex2raw(string $hex)
|
||||
{
|
||||
$bin = '';
|
||||
for ($i = 0, $iMax = strlen($hex); $i < $iMax; $i += 2) {
|
||||
$bin .= chr(hexdec($hex[$i] . $hex[$i + 1]));
|
||||
}
|
||||
|
||||
return $bin;
|
||||
}
|
||||
|
||||
const DIR_FWD = 1;
|
||||
const DIR_RWD = -1;
|
||||
function findSequence($fp, string $bin, int $pos, int $dir, int $maxToCheck)
|
||||
{
|
||||
if ($maxToCheck === -1) {
|
||||
$maxToCheck = PHP_INT_MAX;
|
||||
}
|
||||
|
||||
$len = strlen($bin);
|
||||
do {
|
||||
fseek($fp, $pos);
|
||||
if (strcmp(fread($fp, $len), $bin) === 0) {
|
||||
return $pos;
|
||||
}
|
||||
|
||||
$pos = $pos + $dir;
|
||||
$maxToCheck--;
|
||||
} while (!feof($fp) && $pos != -1 && $maxToCheck != 0);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Locates a pattern of bytes $searchSeqNum in a $fp stream starting from $pos seeking up to $maxToCheck
|
||||
*
|
||||
* @param array $searchSeqNum An array containing n elements (where n=length of the searched sequence). Each element can
|
||||
* be a null (denoting "any byte"), singular hex/int value (e.g. 0xF5), or a range in a form
|
||||
* of a two-element array (e.g. [0xF0, 0xF7])
|
||||
*/
|
||||
function findSequenceWithWildcard($fp, array $searchSeqNum, int $pos, int $maxToCheck)
|
||||
{
|
||||
if ($maxToCheck === -1) {
|
||||
$maxToCheck = PHP_INT_MAX;
|
||||
}
|
||||
|
||||
$bufLen = count($searchSeqNum);
|
||||
if ($maxToCheck < $bufLen) {
|
||||
perr("maxToCheck cannot be smaller than search sequence!", true);
|
||||
}
|
||||
|
||||
//Convert all singular value to raw bytes while leaving arrays as numeric (performance reasons). As this loop is
|
||||
//executed once per pattern it can be sub-optimal but more careful with data validation
|
||||
$searchSeq = [];
|
||||
foreach ($searchSeqNum as $idx => $num) {
|
||||
if ($num === null) {
|
||||
$searchSeq[] = null;
|
||||
} elseif (is_array($num) && count($num) == 2 && is_int($num[0]) && is_int($num[1]) && $num[0] >= 0 &&
|
||||
$num[0] <= 255 && $num[1] >= 0 && $num[1] <= 255 && $num[0] < $num[1]) {
|
||||
$searchSeq[] = $num; //Leave them as numeric
|
||||
} elseif (is_int($num) && $num >= 0 && $num <= 255) {
|
||||
$searchSeq[] = chr($num);
|
||||
} else {
|
||||
perr("Found invalid search sequence at index $idx", true);
|
||||
}
|
||||
}
|
||||
|
||||
//$pos denotes start position but it's also used to mark where start of a potential pattern match was found
|
||||
fseek($fp, $pos);
|
||||
do { //This loop is optimized for speed
|
||||
$buf = fread($fp, $bufLen);
|
||||
if (!isset($buf[$bufLen-1])) {
|
||||
break; //Not enough data = no match
|
||||
}
|
||||
|
||||
$successfulLoops = 0;
|
||||
foreach ($searchSeq as $byteIdx => $seekByte) {
|
||||
if ($seekByte === null) { //any character
|
||||
++$successfulLoops;
|
||||
continue;
|
||||
}
|
||||
|
||||
//element in the array can be a range [(int)from,(int)to] or a literal SINGLE byte
|
||||
//if isset finds a second element it will mean for us that it's an array of 2 elements (as we don't expect
|
||||
//a string longer than a single byte)
|
||||
if (isset($seekByte[1])) {
|
||||
$curByteNum = ord($buf[$byteIdx]);
|
||||
if ($curByteNum < $seekByte[0] || $curByteNum > $seekByte[1]) {
|
||||
break;
|
||||
}
|
||||
} elseif($buf[$byteIdx] !== $seekByte) { //If the byte doesn't match literally we know it's not a match
|
||||
break;
|
||||
}
|
||||
|
||||
++$successfulLoops;
|
||||
}
|
||||
if ($successfulLoops === $bufLen) {
|
||||
return $pos;
|
||||
}
|
||||
|
||||
fseek($fp, ++$pos);
|
||||
$maxToCheck--;
|
||||
} while (!feof($fp) && $maxToCheck != 0);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return resource
|
||||
*/
|
||||
function getFileMemMapped(string $path)
|
||||
{
|
||||
$fp = fopen('php://memory', 'r+');
|
||||
fwrite($fp, file_get_contents($path)); //poor man's mmap :D
|
||||
|
||||
return $fp;
|
||||
}
|
||||
|
||||
function saveStreamToFile($fp, string $path)
|
||||
{
|
||||
perr("Saving stream to $path ...\n");
|
||||
|
||||
$fp2 = fopen($path, 'w');
|
||||
fseek($fp, 0);
|
||||
while (!feof($fp)) {
|
||||
fwrite($fp2, fread($fp, 8192));
|
||||
}
|
||||
fclose($fp2);
|
||||
|
||||
perr("DONE!\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Do not call this in time-sensitive code...
|
||||
*/
|
||||
function readAt($fp, int $pos, int $len)
|
||||
{
|
||||
fseek($fp, $pos);
|
||||
return fread($fp, $len);
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
if ($argc < 2 || $argc > 2) {
|
||||
fwrite(STDERR, "Usage: " . $argv[0] . " <file>\n");
|
||||
die();
|
||||
}
|
||||
echo hash_file('crc32b', $argv[1]);
|
||||
?>
|
||||
1
files/board/arpl/overlayfs/opt/arpl/depmod
Symbolic link
1
files/board/arpl/overlayfs/opt/arpl/depmod
Symbolic link
@@ -0,0 +1 @@
|
||||
kmod
|
||||
@@ -33,7 +33,7 @@ function readConfigKey() {
|
||||
# 2 - Path of yaml config file
|
||||
# Returns map of values
|
||||
function readConfigMap() {
|
||||
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join("=")) | .[]' "${2}"
|
||||
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join(": ")) | .[]' "${2}"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -1,20 +1,25 @@
|
||||
|
||||
ARPL_VERSION="0.2-alpha3"
|
||||
ARPL_VERSION="1.1-beta2a"
|
||||
|
||||
# Define paths
|
||||
TMP_PATH="/tmp"
|
||||
UNTAR_PAT_PATH="${TMP_PATH}/pat"
|
||||
RAMDISK_PATH="${TMP_PATH}/ramdisk"
|
||||
LOG_FILE="${TMP_PATH}/log.txt"
|
||||
|
||||
USER_CONFIG_FILE="${BOOTLOADER_PATH}/user-config.yml"
|
||||
MOD_ZIMAGE_FILE="${BOOTLOADER_PATH}/zImage"
|
||||
MOD_RDGZ_FILE="${BOOTLOADER_PATH}/rd.gz"
|
||||
GRUB_PATH="${BOOTLOADER_PATH}/grub"
|
||||
|
||||
ORI_ZIMAGE_FILE="${SLPART_PATH}/zImage"
|
||||
ORI_RDGZ_FILE="${SLPART_PATH}/rd.gz"
|
||||
|
||||
ARPL_BZIMAGE_FILE="${CACHE_PATH}/bzImage-arpl"
|
||||
ARPL_RAMDISK_FILE="${CACHE_PATH}/initrd-arpl"
|
||||
MOD_ZIMAGE_FILE="${CACHE_PATH}/zImage-dsm"
|
||||
MOD_RDGZ_FILE="${CACHE_PATH}/initrd-dsm"
|
||||
ADDONS_PATH="${CACHE_PATH}/addons"
|
||||
LKM_PATH="${CACHE_PATH}/lkms"
|
||||
MODULES_PATH="${CACHE_PATH}/modules"
|
||||
|
||||
MODEL_CONFIG_PATH="/opt/arpl/model-configs"
|
||||
INCLUDE_PATH="/opt/arpl/include"
|
||||
|
||||
@@ -146,3 +146,48 @@ function arrayExistItem() {
|
||||
done
|
||||
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
|
||||
# 2 - new_val
|
||||
# 3 - path
|
||||
function _set_conf_kv() {
|
||||
# Delete
|
||||
if [ -z "$2" ]; then
|
||||
sed -i "$3" -e "s/^$1=.*$//"
|
||||
return $?;
|
||||
fi
|
||||
|
||||
# Replace
|
||||
if grep -q "^$1=" "$3"; then
|
||||
sed -i "$3" -e "s\"^$1=.*\"$1=\\\"$2\\\"\""
|
||||
return $?
|
||||
fi
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
22
files/board/arpl/overlayfs/opt/arpl/include/modules.sh
Normal file
22
files/board/arpl/overlayfs/opt/arpl/include/modules.sh
Normal 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"
|
||||
}
|
||||
@@ -21,6 +21,14 @@ if [ $NUM_PARTITIONS -ne 3 ]; then
|
||||
die "Loader disk not found!"
|
||||
fi
|
||||
|
||||
# Shows title
|
||||
clear
|
||||
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 ""
|
||||
|
||||
# Check partitions and ignore errors
|
||||
fsck.vfat -aw ${LOADER_DISK}1 >/dev/null 2>&1 || true
|
||||
fsck.ext2 -p ${LOADER_DISK}2 >/dev/null 2>&1 || true
|
||||
@@ -29,12 +37,12 @@ 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}"
|
||||
mount ${LOADER_DISK}3 ${CACHE_PATH} || die "Can't mount ${CACHE_PATH}"
|
||||
|
||||
mkdir -p "${ADDONS_PATH}"
|
||||
# Move/link SSH machine keys to/from cache volume
|
||||
[ ! -d "${CACHE_PATH}/ssh" ] && cp -R "/etc/ssh" "${CACHE_PATH}/ssh"
|
||||
rm -rf "/etc/ssh"
|
||||
@@ -42,20 +50,57 @@ 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}"
|
||||
ln -s "${CACHE_PATH}/model-configs" "${MODEL_CONFIG_PATH}"
|
||||
fi
|
||||
|
||||
if [ -d "${CACHE_PATH}/patch" ]; then
|
||||
rm -rf "${PATCH_PATH}"
|
||||
ln -s "${CACHE_PATH}/patch" "${PATCH_PATH}"
|
||||
fi
|
||||
|
||||
# Get first MAC address
|
||||
MAC=`ip link show eth0 | awk '/ether/{print$2}'`
|
||||
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 "layout" "qwerty" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "keymap" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "zimage-hash" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "ramdisk-hash" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "cmdline" "{}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "synoinfo" "{}" "${USER_CONFIG_FILE}"
|
||||
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}"
|
||||
fi
|
||||
writeConfigKey "original-mac" "${MACF}" "${USER_CONFIG_FILE}"
|
||||
|
||||
# Set custom MAC if defined
|
||||
MAC1=`readConfigKey "cmdline.mac1" "${USER_CONFIG_FILE}"`
|
||||
if [ -n "${MAC1}" -a "${MAC1}" != "${MACF}" ]; then
|
||||
MAC="${MAC1:0:2}:${MAC1:2:2}:${MAC1:4:2}:${MAC1:6:2}:${MAC1:8:2}:${MAC1:10:2}"
|
||||
echo "Setting MAC to ${MAC}"
|
||||
ip link set dev eth0 address ${MAC} >/dev/null 2>&1 && \
|
||||
(/etc/init.d/S41dhcpcd restart >/dev/null 2>&1 &) || true
|
||||
fi
|
||||
|
||||
# Get the VID/PID if we are in USB
|
||||
@@ -73,14 +118,6 @@ fi
|
||||
writeConfigKey "vid" ${VID} "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "pid" ${PID} "${USER_CONFIG_FILE}"
|
||||
|
||||
# Shows title
|
||||
clear
|
||||
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 ""
|
||||
|
||||
# Inform user
|
||||
echo -en "Loader disk: \033[1;32m${LOADER_DISK}\033[0m ("
|
||||
if [ "${BUS}" = "usb" ]; then
|
||||
@@ -101,14 +138,18 @@ if [ ${SIZEOFDISK} -ne ${ENDSECTOR} ]; then
|
||||
fi
|
||||
|
||||
# Load keymap name
|
||||
LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
|
||||
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
|
||||
|
||||
# Loads a keymap if is valid
|
||||
if [ -f /usr/share/keymaps/i386/qwerty/${KEYMAP}.map.gz ]; then
|
||||
echo -e "Loading keymap \033[1;32m${KEYMAP}\033[0m"
|
||||
zcat /usr/share/keymaps/i386/qwerty/${KEYMAP}.map.gz | loadkeys
|
||||
if [ -f /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz ]; then
|
||||
echo -e "Loading keymap \033[1;32m${LAYOUT}/${KEYMAP}\033[0m"
|
||||
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
|
||||
@@ -120,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
|
||||
@@ -147,3 +190,15 @@ echo
|
||||
echo -e "User config is on \033[1;32m${USER_CONFIG_FILE}\033[0m"
|
||||
echo -e "Default SSH Root password is \033[1;31mRedp1lL-1s-4weSomE\033[0m"
|
||||
echo
|
||||
|
||||
# Check memory
|
||||
RAM=`free -m | awk '/Mem:/{print$2}'`
|
||||
if [ ${RAM} -le 3500 ]; then
|
||||
echo -e "\033[1;33mYou have less than 4GB of RAM, if errors occur in loader creation, please increase the amount of memory.\033[0m\n"
|
||||
fi
|
||||
|
||||
mkdir -p "${ADDONS_PATH}"
|
||||
mkdir -p "${LKM_PATH}"
|
||||
mkdir -p "${MODULES_PATH}"
|
||||
|
||||
install-addons.sh
|
||||
|
||||
15
files/board/arpl/overlayfs/opt/arpl/install-addons.sh
Executable file
15
files/board/arpl/overlayfs/opt/arpl/install-addons.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
. /opt/arpl/include/functions.sh
|
||||
|
||||
set -e
|
||||
|
||||
# Detect if has new local plugins to install/reinstall
|
||||
for F in `ls ${CACHE_PATH}/*.addon 2>/dev/null`; do
|
||||
ADDON=`basename "${F}" | sed 's|.addon||'`
|
||||
rm -rf "${ADDONS_PATH}/${ADDON}"
|
||||
mkdir -p "${ADDONS_PATH}/${ADDON}"
|
||||
echo "Installing ${F} to ${ADDONS_PATH}/${ADDON}"
|
||||
tar xaf "${F}" -C "${ADDONS_PATH}/${ADDON}"
|
||||
rm -f "${F}"
|
||||
done
|
||||
BIN
files/board/arpl/overlayfs/opt/arpl/kmod
Executable file
BIN
files/board/arpl/overlayfs/opt/arpl/kmod
Executable file
Binary file not shown.
BIN
files/board/arpl/overlayfs/opt/arpl/kpatch
Executable file
BIN
files/board/arpl/overlayfs/opt/arpl/kpatch
Executable file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,89 @@
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
intel_iommu: igfx_off
|
||||
HddEnableDynamicPower: 1
|
||||
vender_format_version: 2
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "geminilake"
|
||||
unique: "synology_geminilake_1520+"
|
||||
beta: true
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "2060"
|
||||
middle: "RYR"
|
||||
suffix: "alpha"
|
||||
disks: 6
|
||||
dt: true
|
||||
builds:
|
||||
42218:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DS1520%2B_42218.pat"
|
||||
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
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_DS1520%2B_42661.pat"
|
||||
hash: "3a8499c5f72d7241b81781ec741d4019eaa506e6e7a4fd17ce54fb149f6ffae6"
|
||||
ramdisk-hash: "b18f14b8420a217d7b6dd3696786ecccfbe7c325d342475531a68a7df831cffc"
|
||||
zimage-hash: "1d0e5b76e08e3483f6bf06d23b5978ec498b855bde23db1f96f343db4c43337d"
|
||||
md5-hash: "1d8ecfcb2a956488ae355c79a72bb9ec"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
|
||||
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_DS1520%2B_42962.pat"
|
||||
hash: "f19d2ac39fae564797c148929b8fe7c9740ac3a74099bf573b68df8fe0228cb3"
|
||||
ramdisk-hash: "aad75938d165ef5efdbfc4c570c4cd1cc252344d0756dd3d89a44f581aa6be6f"
|
||||
zimage-hash: "89ee173272101e6714728e73930d8b31a414f9f1eca8ab78f45c12fc721138ab"
|
||||
md5-hash: "b7b4a7c7f9160023e1129e4097403828"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42951-post-init-script.patch"
|
||||
@@ -1,41 +1,25 @@
|
||||
id: "DS1621+"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- amd_xgbe
|
||||
- marvell10g
|
||||
- i40e
|
||||
- r8168
|
||||
- r8169
|
||||
- ixgbe
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- ehci-pci
|
||||
- uhci_hcd
|
||||
- mv14xx
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
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
|
||||
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
|
||||
serial:
|
||||
prefix:
|
||||
@@ -49,30 +33,26 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -82,9 +62,29 @@ builds:
|
||||
hash: "381077302a89398a9fb5ec516217578d6f33b0219fe95135e80fd93cddbf88c4"
|
||||
ramdisk-hash: "8fd5eb40fb088af97d3beee85b6275c2ceb368b08453eb5a5d00d42cc7d578d1"
|
||||
zimage-hash: "d939b5937be00a644aae64c33633619a7c310433e60a515c77bbef00b0a7e6b6"
|
||||
md5-hash: "b4b72eb8d4e84b2e2a8c29fc0a1ac6aa"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
|
||||
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_DS1621%2B_42962.pat"
|
||||
hash: "bd88dfdf1eccdf7fefcdac67e11929818ae3aea938fd13286c1ac7b5aaa3964f"
|
||||
ramdisk-hash: "7a900e3017b4ee09b792d2ed291b7229476ae3e583fe559bbd9baaa812705aa0"
|
||||
zimage-hash: "b0f296aad0cc3b8adba13483f89770d0a4daf9b9cab335910717448b1eaa8254"
|
||||
md5-hash: "b5e6be956385c1b49825517409265a44"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42951-post-init-script.patch"
|
||||
|
||||
@@ -1,43 +1,30 @@
|
||||
id: "DS2422+"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- amd_xgbe
|
||||
- marvell10g
|
||||
- i40e
|
||||
- r8168
|
||||
- ixgbe
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- ehci-pci
|
||||
- uhci_hcd
|
||||
- mv14xx
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
supportssdcache: "no"
|
||||
support_led_brightness_adjustment: "no"
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
SMBusHddDynamicPower: 1
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "v1000"
|
||||
unique: "synology_v1000_2422+"
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "0000"
|
||||
middle: "XXX"
|
||||
- "2140"
|
||||
- "2180"
|
||||
middle: "SLR"
|
||||
suffix: "numeric"
|
||||
disks: 12
|
||||
dt: true
|
||||
@@ -46,21 +33,57 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_DS2422%2B_42661.pat"
|
||||
hash: "c38fee0470c592b679ab52a64eac76b2a3912fb2e6aba65a65abb5aa05a98d4c"
|
||||
ramdisk-hash: "bb109132e96b1e26d5e3d44557944f7518168d8cb18e35d6254c0dfe7fb19382"
|
||||
zimage-hash: "d939b5937be00a644aae64c33633619a7c310433e60a515c77bbef00b0a7e6b6"
|
||||
md5-hash: "9ea5e0fe94c01072da36e2f69172abb3"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
|
||||
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_DS2422%2B_42962.pat"
|
||||
hash: "a887cc3f06e2b51d34f682a1a812637486aeefbef57c309414f69c3e5514edef"
|
||||
ramdisk-hash: "edcf0e07e2773326d7f6c2f17a0c2d18e8ef4600a720bbdd4965fc1f11eb21e9"
|
||||
zimage-hash: "b0f296aad0cc3b8adba13483f89770d0a4daf9b9cab335910717448b1eaa8254"
|
||||
md5-hash: "97e2f7a56f011d8a7414867ac07d37cb"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42951-post-init-script.patch"
|
||||
|
||||
@@ -1,33 +1,25 @@
|
||||
id: "DS3615xs"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- i40e
|
||||
- ixgbe
|
||||
- igb
|
||||
- e1000e
|
||||
- dca
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- ehci-pci
|
||||
- uhci_hcd
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportssdcache: "no"
|
||||
esataportcfg: "0x0"
|
||||
usbportcfg: "0x8700"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
support_led_brightness_adjustment: "no"
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "bromolow"
|
||||
unique: "synology_bromolow_3615xs"
|
||||
serial:
|
||||
prefix:
|
||||
prefix:
|
||||
- "1130"
|
||||
- "1230"
|
||||
- "1330"
|
||||
@@ -41,31 +33,27 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "3.10.108"
|
||||
rd-compressed: false
|
||||
efi-bug: yes
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "3.10.108"
|
||||
rd-compressed: false
|
||||
efi-bug: yes
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -75,10 +63,31 @@ builds:
|
||||
hash: "1e95d8c63981bcf42ea2eaedfbc7acc4248ff16d129344453b7479953f9ad145"
|
||||
ramdisk-hash: "8ee5df65bcfd25c3d1999262153dcff625714d98789bc8065e217773f8d070d8"
|
||||
zimage-hash: "3017542c92232cb5477b0e11d82d708a9909320350b1740aab58359e85f82351"
|
||||
md5-hash: "271b34cb2a0c23d63178aef3bf45a6ae"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-42661-disable-disabled-ports.patch"
|
||||
|
||||
42962:
|
||||
ver: "7.1.1"
|
||||
kver: "3.10.108"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_DS3615xs_42962.pat"
|
||||
hash: "b79c129354c203b7340010573d16b2d6ebc6a676c946579a959c891a70b8bcfc"
|
||||
ramdisk-hash: "e4bdca874027b603a18d7b44cc312f3eb6d6cbf2e49329ef51753fc322d880c0"
|
||||
zimage-hash: "b7d2ca699195a1990f838690be32a65158d4ed01e8126af2ddb27a0f08e177ca"
|
||||
md5-hash: "84a8d6d92a7a44c775ff995cac555a19"
|
||||
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"
|
||||
|
||||
@@ -1,35 +1,23 @@
|
||||
id: "DS3617xs"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- i40e
|
||||
- ixgbe
|
||||
- igb
|
||||
- e1000e
|
||||
- dca
|
||||
- xhci_pci
|
||||
- xhci_hcd
|
||||
- uhci_hcd
|
||||
- mv14xx
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportssdcache: "no"
|
||||
esataportcfg: "0x00"
|
||||
usbportcfg: "0x8700"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
support_led_brightness_adjustment: "no"
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "broadwell"
|
||||
unique: "synology_broadwell_3617xs"
|
||||
dom: 1
|
||||
serial:
|
||||
prefix:
|
||||
@@ -45,31 +33,27 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -79,10 +63,31 @@ builds:
|
||||
hash: "0a5a243109098587569ab4153923f30025419740fb07d0ea856b06917247ab5c"
|
||||
ramdisk-hash: "da3c2a170fea24052d817cbc4bb5b610a5b05288758d746b60a294ed614239fb"
|
||||
zimage-hash: "9598f66b75e5b303e571241696e02fe7c0add80f13564f8c6b8c0daaf3cb3018"
|
||||
md5-hash: "94e6263912bc758ee3db81c62a94a8f6"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-42661-disable-disabled-ports.patch"
|
||||
|
||||
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_DS3617xs_42962.pat"
|
||||
hash: "2a556206201df10245dbcf4cf0366b2f32cb318cd705fbdd74412303d85e7267"
|
||||
ramdisk-hash: "c8d067a9737d67453e0b476d7115c3e12b2daf2450c371c19e44e480a1076a94"
|
||||
zimage-hash: "8e6da6c3c9259d23ee5cae3c71691a75b0a281551d19cb75041df469c7524e72"
|
||||
md5-hash: "3e034e2cdf90209112e0fdad28474970"
|
||||
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"
|
||||
|
||||
@@ -1,42 +1,24 @@
|
||||
id: "DS3622xs+"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- i40e
|
||||
- r8168
|
||||
- r8169
|
||||
- ixgbe
|
||||
- igb
|
||||
- e1000e
|
||||
- dca
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- ehci-pci
|
||||
- uhci_hcd
|
||||
- mv14xx
|
||||
synoinfo: &synoinfo
|
||||
esataportcfg: "0x00"
|
||||
support_bde_internal_10g: "no"
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
supportraidgroup: "no"
|
||||
supportssdcache: "no"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
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
|
||||
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
|
||||
serial:
|
||||
prefix:
|
||||
@@ -52,31 +34,27 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -86,10 +64,31 @@ builds:
|
||||
hash: "53d0a4f1667288b6e890c4fdc48422557ff26ea8a2caede0955c5f45b560cccd"
|
||||
ramdisk-hash: "df8a055d6bc901229f0ba53ed5b4fe024bdf9a1b42f0c32483adefcdac14db4d"
|
||||
zimage-hash: "e073dd84054f652811e0ae1932af2c7cdbd5fb6e5f18f265097072b8af4605e8"
|
||||
md5-hash: "7af76cca8226ecf95b25630bffa76b3d"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-42661-disable-disabled-ports.patch"
|
||||
|
||||
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_DS3622xs%2B_42962.pat"
|
||||
hash: "b48aadaba7ff561b7d55aa9ed75f1f2f4c49c0c2f73ece4020f3ffd08f6bbfd0"
|
||||
ramdisk-hash: "432f315818adad4e1ca54040557e164caf2937004e2d009aac8865391353e2f6"
|
||||
zimage-hash: "8903dc99f7201c8656de618d767c05f91bfd32edd9a3706a50fd223237842bf2"
|
||||
md5-hash: "1bf63db06cbc048befc24f277dd520f3"
|
||||
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"
|
||||
|
||||
@@ -1,35 +1,25 @@
|
||||
id: "DS918+"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- r8168
|
||||
- r8169
|
||||
- igb
|
||||
- e1000e
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- uhci_hcd
|
||||
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: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
|
||||
#support_ssd_cache: "yes"
|
||||
support_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
|
||||
serial:
|
||||
prefix:
|
||||
@@ -41,37 +31,33 @@ serial:
|
||||
suffix: "numeric"
|
||||
disks: 4
|
||||
flags:
|
||||
- "fma"
|
||||
- "movbe"
|
||||
builds:
|
||||
42218:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -81,10 +67,31 @@ builds:
|
||||
hash: "4e8a9d82a8a1fde5af9a934391080b7bf6b91811d9583acb73b90fb6577e22d7"
|
||||
ramdisk-hash: "ef8c87b6e68226339e5623d048252f5be3089c0831e41298a4695f2bfa65f00e"
|
||||
zimage-hash: "9ce0d3452f08afaf95d52292ff20cbac6d69e17d5b9953377e4ac90c9ac7397d"
|
||||
md5-hash: "2c49260d2646a0944b56933f7d4029fb"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-42661-disable-disabled-ports.patch"
|
||||
|
||||
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_DS918%2B_42962.pat"
|
||||
hash: "c1ffb1b48301fbcf1ccffae00062e95c8b5b18d50a70c3fbb79ea12a38a39bb7"
|
||||
ramdisk-hash: "6ac446bddba53b1c215e0abbf05236371e5e3b91ab0c4c193a0999cc8b8a857b"
|
||||
zimage-hash: "12afcd27e15ba5e4596e1af7275d9462d31c7d8afb32aa723f7b8b7cfa5a19a2"
|
||||
md5-hash: "74c067cf1363b9b70522b145b59e1626"
|
||||
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"
|
||||
|
||||
@@ -1,22 +1,13 @@
|
||||
id: "DS920+"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- r8168
|
||||
- r8169
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- uhci_hcd
|
||||
synoinfo: &synoinfo
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
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
|
||||
intel_iommu: "igfx_off"
|
||||
HddEnableDynamicPower: 1
|
||||
@@ -24,7 +15,9 @@ cmdline: &cmdline
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
vender_format_version: 2
|
||||
elevator: elevator
|
||||
platform: "geminilake"
|
||||
unique: "synology_geminilake_920+"
|
||||
dom: 2
|
||||
dt: true
|
||||
serial:
|
||||
@@ -41,30 +34,26 @@ builds:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -74,9 +63,29 @@ builds:
|
||||
hash: "8076950fdad2ca58ea9b91a12584b9262830fe627794a0c4fc5861f819095261"
|
||||
ramdisk-hash: "c8ad44826c87e065a3b05f354a639c0a86cb2fa47b88e11949604d53f3e80048"
|
||||
zimage-hash: "1d0e5b76e08e3483f6bf06d23b5978ec498b855bde23db1f96f343db4c43337d"
|
||||
md5-hash: "fa3936a53299b1a1142e4c614e2b360c"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
|
||||
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_DS920%2B_42962.pat"
|
||||
hash: "90b1bd215b85eb366b3d3b6bef6bb6bef657dd0caba032dae556717b58e44c06"
|
||||
ramdisk-hash: "42053cbfbce34d43c50db2d68786360f644fc88af3e9bbaa6377ffa9953bf158"
|
||||
zimage-hash: "89ee173272101e6714728e73930d8b31a414f9f1eca8ab78f45c12fc721138ab"
|
||||
md5-hash: "ba9fbd499791d19859dd9a53372b016a"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42951-post-init-script.patch"
|
||||
|
||||
48
files/board/arpl/overlayfs/opt/arpl/model-configs/DS923+.yml
Normal file
48
files/board/arpl/overlayfs/opt/arpl/model-configs/DS923+.yml
Normal 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"
|
||||
@@ -1,39 +1,24 @@
|
||||
id: "DVA1622"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- r8168
|
||||
- r8169
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- uhci_hcd
|
||||
- i915
|
||||
- drm
|
||||
- fb
|
||||
- fbdev
|
||||
- video
|
||||
- backlight
|
||||
- button
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
buzzeroffen: "0xffff"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
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
|
||||
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
|
||||
serial:
|
||||
prefix:
|
||||
@@ -50,8 +35,6 @@ builds:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -61,9 +44,29 @@ builds:
|
||||
hash: "f1484cf302627072ca393293cd73e61dc9e09d479ef028b216eae7c12f7b7825"
|
||||
ramdisk-hash: "6290945ba61f652aec83725f81f5a47bd5e4cdbeb86241c33825154140e164ec"
|
||||
zimage-hash: "1d0e5b76e08e3483f6bf06d23b5978ec498b855bde23db1f96f343db4c43337d"
|
||||
md5-hash: "27515a2e7c2f2113ccf8955bf22f3974"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
|
||||
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_DVA1622_42962.pat"
|
||||
hash: "9106f6bcc52b4bc2b4ce82748788ca353ddecf8b7552e7c6fb477eb4eca42e67"
|
||||
ramdisk-hash: "e610146b475074cb1835c7a2528afd0cba389cfa68b8a3ef20214b48ddca78dc"
|
||||
zimage-hash: "89ee173272101e6714728e73930d8b31a414f9f1eca8ab78f45c12fc721138ab"
|
||||
md5-hash: "862ef2fffc884038bd3804439b974ab9"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42951-post-init-script.patch"
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
id: "DVA3219"
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "no"
|
||||
esataportcfg: "0x00"
|
||||
support_bde_internal_10g: "no"
|
||||
support_led_brightness_adjustment: "no"
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
supportnvme: "yes"
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "denverton"
|
||||
unique: "synology_denverton_dva3219"
|
||||
beta: true
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "1930"
|
||||
- "1940"
|
||||
middle: "RFR"
|
||||
suffix: "alpha"
|
||||
flags:
|
||||
- "movbe"
|
||||
disks: 4
|
||||
builds:
|
||||
42218:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_DVA3219_42218.pat"
|
||||
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"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_DVA3219_42661.pat"
|
||||
hash: "01596eaf7310a56b504fde5743262f721dd0be2836e53d2d74386e14f509bec4"
|
||||
ramdisk-hash: "a62ef4468db4e6c7eab04bb810c603c65e201aebbcc8994423b0c95dd215e4c5"
|
||||
zimage-hash: "5222b5efaf7af28ff3833fd37f13100c30acba1ee201a15b2ee360e66e75b48e"
|
||||
md5-hash: "5c4dea4a45d96e1a6d5bcc041d300079"
|
||||
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"
|
||||
|
||||
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_DVA3219_42962.pat"
|
||||
hash: "f03395fd9db108d2c5a684b6ba9b4fadc6b1ab05c4e227d401572c01ec4b3dca"
|
||||
ramdisk-hash: "8a36c36096dfc9dd5bbd572a6174719c5018fe5d932a4859832025719abac4fc"
|
||||
zimage-hash: "3c67cefc969ee3de51b7978b8d86cd53cbb0e49ec43b2240bf9b8aad3f2e2200"
|
||||
md5-hash: "22f43fb4de401436616f943beaf13bd5"
|
||||
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"
|
||||
@@ -1,35 +1,24 @@
|
||||
id: "DVA3221"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- ata_piix
|
||||
- i40e
|
||||
- ixgbe
|
||||
- igb
|
||||
- e1000e
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- ehci-pci
|
||||
- uhci_hcd
|
||||
synoinfo: &synoinfo
|
||||
support_disk_compatibility: "no"
|
||||
support_memory_compatibility: "yes"
|
||||
esataportcfg: "0x00"
|
||||
support_bde_internal_10g: "no"
|
||||
support_disk_compatibility: "no"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
support_led_brightness_adjustment: "no"
|
||||
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
supportnvme: "yes"
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
elevator: elevator
|
||||
platform: "denverton"
|
||||
unique: "synology_denverton_dva3221"
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
@@ -40,38 +29,34 @@ 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
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
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-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
@@ -81,10 +66,31 @@ builds:
|
||||
hash: "ed3207db40b7bac4d96411378558193b7747ebe88f0fc9c26c59c0b5c688c359"
|
||||
ramdisk-hash: "0ff061f453bc9888b16c59baaf3617bfa6ee42044122eb1dd0eaaa18b3832381"
|
||||
zimage-hash: "5222b5efaf7af28ff3833fd37f13100c30acba1ee201a15b2ee360e66e75b48e"
|
||||
md5-hash: "d433ae251ba95754edde1586851d1e0a"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-42661-disable-disabled-ports.patch"
|
||||
|
||||
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_DVA3221_42962.pat"
|
||||
hash: "d83044ff12c9ed81c5e7f5ba4b23b68d96c9a40c29a6a9e5c53ad807d1e27ed2"
|
||||
ramdisk-hash: "7ecb774bfccde028d456613c7232b1d770526ea37e928bf90badac267bafcd78"
|
||||
zimage-hash: "3c67cefc969ee3de51b7978b8d86cd53cbb0e49ec43b2240bf9b8aad3f2e2200"
|
||||
md5-hash: "cff2b34f0d9547781da3cf66e161dc3f"
|
||||
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"
|
||||
|
||||
89
files/board/arpl/overlayfs/opt/arpl/model-configs/FS2500.yml
Normal file
89
files/board/arpl/overlayfs/opt/arpl/model-configs/FS2500.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
intel_iommu: igfx_off
|
||||
SMBusHddDynamicPower: 1
|
||||
vender_format_version: 2
|
||||
synoboot2:
|
||||
syno_ttyS0: "serial,0x3f8"
|
||||
syno_ttyS1: "serial,0x2f8"
|
||||
elevator: elevator
|
||||
platform: "v1000"
|
||||
unique: "synology_v1000_fs2500"
|
||||
beta: true
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "0000"
|
||||
middle: "XXX"
|
||||
suffix: "alpha"
|
||||
disks: 12
|
||||
dt: true
|
||||
builds:
|
||||
42218:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_FS2500_42218.pat"
|
||||
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
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_FS2500_42661.pat"
|
||||
hash: "f8343ac070b43fe62d02af6ac9a9c61f8c9852b6b2c79b933629409113e1d3e6"
|
||||
ramdisk-hash: "698e9b1d719d3032a9a2b91ca08078c632b3265590147b2f6c9ca200c826e987"
|
||||
zimage-hash: "d939b5937be00a644aae64c33633619a7c310433e60a515c77bbef00b0a7e6b6"
|
||||
md5-hash: "e071c4984d041309f151de29b9ba82b5"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
|
||||
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_FS2500_42962.pat"
|
||||
hash: "1adc272ba9f308866dc69a8f550d4511966a1156c553f925be167815046a5ab4"
|
||||
ramdisk-hash: "9efc0351212d36e5a51542bff9b2f173beb913c5be3eaaeec1e78625d62763cb"
|
||||
zimage-hash: "b0f296aad0cc3b8adba13483f89770d0a4daf9b9cab335910717448b1eaa8254"
|
||||
md5-hash: "3647d21771fe9be4a3898f95491e9393"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-etc-rc.patch"
|
||||
- "ramdisk-42951-post-init-script.patch"
|
||||
@@ -0,0 +1,92 @@
|
||||
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"
|
||||
support_syno_hybrid_raid:
|
||||
supportraidgroup:
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
syno_hdd_detect: 0
|
||||
vender_format_version: 2
|
||||
elevator: elevator
|
||||
platform: "broadwellnk"
|
||||
unique: "synology_broadwellnk_rs4021xs+"
|
||||
beta: true
|
||||
dom: 2
|
||||
serial:
|
||||
prefix:
|
||||
- "2250"
|
||||
middle: "T2R"
|
||||
suffix: "alpha"
|
||||
disks: 16
|
||||
dt: false
|
||||
builds:
|
||||
42218:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.0.1/42218/DSM_RS4021xs%2B_42218.pat"
|
||||
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"
|
||||
|
||||
42661:
|
||||
ver: "7.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
pat:
|
||||
url: "https://global.download.synology.com/download/DSM/release/7.1/42661-1/DSM_RS4021xs%2B_42661.pat"
|
||||
hash: "496b64e431dafa34cdebb92da8ac736bf1610fe157f03df7e6d11152d60991f5"
|
||||
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"
|
||||
|
||||
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_RS4021xs%2B_42962.pat"
|
||||
hash: "fd848be9336d8b5cc9b514e71d447c7612d0f542d373eef61a6d427430daa931"
|
||||
ramdisk-hash: "40775a6b9b4fae2887cd07c0efdfb26e738e2b8de73602657f7bc4407ae4a688"
|
||||
zimage-hash: "8903dc99f7201c8656de618d767c05f91bfd32edd9a3706a50fd223237842bf2"
|
||||
md5-hash: "c8574a8e358fe40a7b49bbf1ddf38491"
|
||||
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"
|
||||
@@ -1,86 +0,0 @@
|
||||
id: "RS4021xs+"
|
||||
modules-notneeded: &modules-notneeded
|
||||
- ahci
|
||||
- i40e
|
||||
- ixgbe
|
||||
- igb
|
||||
- e1000e
|
||||
- dca
|
||||
- etxhci_hcd
|
||||
- xhci_hcd
|
||||
- ehci-pci
|
||||
- uhci_hcd
|
||||
synoinfo: &synoinfo
|
||||
support_bde_internal_10g: "no"
|
||||
support_disk_compatibility: "no"
|
||||
supportraidgroup: "no"
|
||||
esataportcfg: "0x00"
|
||||
rss_server: "http://example.com/null.xml"
|
||||
rss_server_ssl: "https://example.com/null.xml"
|
||||
rss_server_v2: "https://example.com/autoupdate/v2/getList"
|
||||
update_server: "http://example.com/"
|
||||
update_server_ssl: "https://example.com/"
|
||||
small_info_path: "https://example.com/null"
|
||||
updateurl: "http://example.com/"
|
||||
myds_region_api_base_url: "https://example.com"
|
||||
security_version_server: "https://example.com/smallupdate"
|
||||
cmdline: &cmdline
|
||||
syno_hdd_powerup_seq: 0
|
||||
HddHotplug: 0
|
||||
vender_format_version: 2
|
||||
syno_port_thaw: 1
|
||||
syno_hdd_detect: 0
|
||||
platform: "broadwellnk"
|
||||
dom: 1
|
||||
serial:
|
||||
prefix:
|
||||
- "0000"
|
||||
middle: "XXX"
|
||||
suffix: "numeric"
|
||||
disks: 16
|
||||
builds:
|
||||
42218:
|
||||
ver: "7.0.1"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
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"
|
||||
ramdisk-hash: "3510afe5b3dfe3662bfe054c1728c8794911da431718b533cd03d2a2c061ffd5"
|
||||
zimage-hash: "b4cc62e9953f226960de98b65887e17dd6df5fa0ad28f665e0b4660dbd5f2fa8"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-common-rc.patch"
|
||||
- "ramdisk-common-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-common-disable-disabled-ports.patch"
|
||||
|
||||
42661:
|
||||
ver: "7.1.0"
|
||||
kver: "4.4.180"
|
||||
rd-compressed: false
|
||||
efi-bug: no
|
||||
modules-notneeded: *modules-notneeded
|
||||
cmdline:
|
||||
<<: *cmdline
|
||||
synoinfo:
|
||||
<<: *synoinfo
|
||||
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"
|
||||
patch:
|
||||
- "ramdisk-common-disable-root-pwd.patch"
|
||||
- "ramdisk-common-init-script.patch"
|
||||
- "ramdisk-42661-rc.patch"
|
||||
- "ramdisk-42661-post-init-script.patch"
|
||||
- "ramdisk-common-network-hosts.patch"
|
||||
- "ramdisk-42661-disable-disabled-ports.patch"
|
||||
@@ -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"
|
||||
1
files/board/arpl/overlayfs/opt/arpl/modinfo
Symbolic link
1
files/board/arpl/overlayfs/opt/arpl/modinfo
Symbolic link
@@ -0,0 +1 @@
|
||||
kmod
|
||||
@@ -1,141 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* A quick tool for patching the boot_params check in the DSM kernel image
|
||||
* This lets you tinker with the initial ramdisk contents without disabling mount() features and modules loading
|
||||
*
|
||||
* The overall pattern we need to find is:
|
||||
* - an CDECL function
|
||||
* - does "LOCK OR [const-ptr],n" 4x
|
||||
* - values of ORs are 1/2/4/8 respectively
|
||||
* - [const-ptr] is always the same
|
||||
*
|
||||
* Usage: php patch-boot_params-check.php vmlinux vmlinux-mod
|
||||
*/
|
||||
|
||||
require __DIR__ . '/common.php';
|
||||
|
||||
if ($argc < 2 || $argc > 3) {
|
||||
perr("Usage: " . $argv[0] . " <inFile> [<outFile>]\n", true);
|
||||
}
|
||||
|
||||
$file = getArgFilePath(1);
|
||||
perr("\nGenerating patch for $file\n");
|
||||
|
||||
//The function will reside in init code part. We don't care we may potentially search beyond as we expect it to be found
|
||||
$codeAddr = getELFSectionAddr($file, '.init.text', 3);
|
||||
|
||||
//Finding a function boundary is non-trivial really as patters can vary, we can have multiple exit points, and in CISC
|
||||
// there are many things which may match e.g. "PUSH EBP". Implementing even a rough disassembler is pointless.
|
||||
//However, we can certainly cheat here as we know with CDECL a non-empty function will always contain one or more
|
||||
// PUSH (0x41) R12-R15 (0x54-57) sequences. Then we can search like a 1K forward for these characteristic LOCK OR.
|
||||
const PUSH_R12_R15_SEQ = [0x41, [0x54, 0x57]];
|
||||
const PUSH_R12_R15_SEQ_LEN = 2;
|
||||
const LOCK_OR_LOOK_AHEAD = 1024;
|
||||
const LOCK_OR_PTR_SEQs = [
|
||||
[0xF0, 0x80, null, null, null, null, null, 0x01],
|
||||
[0xF0, 0x80, null, null, null, null, null, 0x02],
|
||||
[0xF0, 0x80, null, null, null, null, null, 0x04],
|
||||
[0xF0, 0x80, null, null, null, null, null, 0x08],
|
||||
];
|
||||
const LOCK_OR_PTR_SEQs_NUM = 4; //how many sequences we are expecting
|
||||
const LOCK_OR_PTR_SEQ_LEN = 8; //length of a single sequence
|
||||
|
||||
$fp = getFileMemMapped($file); //Read the whole file to memory to make fseet/fread much faster
|
||||
$pos = $codeAddr; //Start from where code starts
|
||||
$orsPos = null; //When matched it will contain our resulting file offsets to LOCK(); OR BYTE PTR [rip+...],0x calls
|
||||
perr("Looking for f() candidates...\n");
|
||||
do {
|
||||
$find = findSequenceWithWildcard($fp, PUSH_R12_R15_SEQ, $pos, -1);
|
||||
if ($find === -1) {
|
||||
break; //no more "functions" left
|
||||
}
|
||||
|
||||
perr("\rAnalyzing f() candidate @ " . decTo32bUFhex($pos));
|
||||
|
||||
//we found something looking like PUSH R12-R15, now find the ORs
|
||||
$orsPos = []; //file offsets where LOCK() calls should start
|
||||
$orsPosNum = 0; //Number of LOCK(); OR ptr sequences found
|
||||
$seqPos = $pos;
|
||||
foreach (LOCK_OR_PTR_SEQs as $idx => $seq) {
|
||||
$find = findSequenceWithWildcard($fp, $seq, $seqPos, LOCK_OR_LOOK_AHEAD);
|
||||
if ($find === -1) {
|
||||
break; //Seq not found - there's no point to look further
|
||||
}
|
||||
|
||||
$orsPos[] = $find;
|
||||
++$orsPosNum;
|
||||
$seqPos = $find + LOCK_OR_PTR_SEQ_LEN; //Next search will start after the current sequence code
|
||||
}
|
||||
|
||||
//We can always move forward by the function token length (obvious) but if we couldn't find any LOCK-OR tokens
|
||||
// we can skip the whole look ahead distance. We CANNOT do that if we found even a single token because the next one
|
||||
// might have been just after the look ahead distance
|
||||
if ($orsPosNum !== LOCK_OR_PTR_SEQs_NUM) {
|
||||
$pos += PUSH_R12_R15_SEQ_LEN;
|
||||
if ($orsPosNum === 0) {
|
||||
$pos += LOCK_OR_LOOK_AHEAD;
|
||||
}
|
||||
continue; //Continue the main search loop to find next function candidate
|
||||
}
|
||||
|
||||
//We found LOCK(); OR ptr sequences so we can print some logs and collect ptrs (as this is quite expensive)
|
||||
$seqPtrsDist = [];
|
||||
perr("\n[?] Found possible f() @ " . decTo32bUFhex($pos) . "\n");
|
||||
$ptrOffset = null;
|
||||
$equalJumps = 0;
|
||||
foreach (LOCK_OR_PTR_SEQs as $idx => $seq) {
|
||||
//data will have the following bytes:
|
||||
// [0-LOCK()] [1-OR()] [2-BYTE-PTR] [3-OFFS-b3] [4-OFFS-b2] [5-OFFS-b1] [6-OFFS-b1] [7-NUMBER]
|
||||
$seqData = readAt($fp, $orsPos[$idx], LOCK_OR_PTR_SEQ_LEN);
|
||||
$newPtrOffset = //how far it "jumps"
|
||||
$orsPos[$idx] +
|
||||
(unpack('V', $seqData[3] . $seqData[4] . $seqData[5] . $seqData[6])[1]); //u32 bit LE
|
||||
|
||||
if($ptrOffset === null) {
|
||||
$ptrOffset = $newPtrOffset; //Save the first one to compare in the next loop
|
||||
++$equalJumps;
|
||||
} elseif ($ptrOffset === $newPtrOffset) {
|
||||
++$equalJumps;
|
||||
}
|
||||
|
||||
perr(
|
||||
"\t[+] Found LOCK-OR#$idx sequence @ " . decTo32bUFhex($orsPos[$idx]) . " => " .
|
||||
rawToUFhex($seqData) . " [RIP+(dec)$newPtrOffset]\n"
|
||||
);
|
||||
}
|
||||
if ($equalJumps !== 4) {
|
||||
perr("\t[-] LOCK-OR PTR offset mismatch - $equalJumps/" . LOCK_OR_PTR_SEQs_NUM . " matched\n");
|
||||
//If the pointer checking failed we can at least move beyond the last LOCK-OR found as we know there's no valid
|
||||
// sequence of LOCK-ORs there
|
||||
$pos = $orsPos[3];
|
||||
continue;
|
||||
}
|
||||
|
||||
perr("\t[+] All $equalJumps LOCK-OR PTR offsets equal - match found!\n");
|
||||
break;
|
||||
} while(!feof($fp));
|
||||
|
||||
if ($orsPos === null) { //There's a small chance no candidates with LOCK ORs were found
|
||||
perr("Failed to find matching sequences", true);
|
||||
}
|
||||
|
||||
//Patch offsets
|
||||
foreach ($orsPos as $seqFileOffset) {
|
||||
//The offset will point at LOCK(), we need to change the OR (0x80 0x0d) to AND (0x80 0x25) so the two bytes after
|
||||
$seqFileOffset = $seqFileOffset+2;
|
||||
|
||||
perr("Patching OR to AND @ file offset (dec)$seqFileOffset\n");
|
||||
fseek($fp, $seqFileOffset);
|
||||
fwrite($fp, "\x25"); //0x0d is OR, 0x25 is AND
|
||||
}
|
||||
|
||||
if (!isset($argv[2])) {
|
||||
perr("No output file specified - discarding data\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
saveStreamToFile($fp, $argv[2]);
|
||||
fclose($fp);
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* A quick tool for patching the ramdisk check in the DSM kernel image
|
||||
* This lets you tinker with the initial ramdisk contents without disabling mount() features and modules loading
|
||||
*
|
||||
* Usage: php patch-ramdisk-check.php vmlinux vmlinux-mod
|
||||
*/
|
||||
|
||||
require __DIR__ . '/common.php';
|
||||
|
||||
if ($argc < 2 || $argc > 3) {
|
||||
perr("Usage: " . $argv[0] . " <inFile> [<outFile>]\n", true);
|
||||
}
|
||||
|
||||
$file = getArgFilePath(1);
|
||||
perr("\nGenerating patch for $file\n");
|
||||
|
||||
//Strings (e.g. error for printk()) reside in .rodata - start searching there to save time
|
||||
$rodataAddr = getELFSectionAddr($file, '.rodata', 2);
|
||||
|
||||
//Locate the precise location of "ramdisk error" string
|
||||
$rdErrAddr = getELFStringLoc($file, '3ramdisk corrupt');
|
||||
|
||||
|
||||
//offsets will be 32 bit in ASM and in LE
|
||||
$errPrintAddr = $rodataAddr + $rdErrAddr;
|
||||
$errPrintCAddrLEH = decTo32bLEhex($errPrintAddr - 1); //Somehow rodata contains off-by-one sometimes...
|
||||
$errPrintAddrLEH = decTo32bLEhex($errPrintAddr);
|
||||
perr("LE arg addr: " . $errPrintCAddrLEH . "\n");
|
||||
|
||||
$fp = getFileMemMapped($file); //Read the whole file to memory to make fseet/fread much faster
|
||||
|
||||
//Find the printk() call argument
|
||||
$printkPos = findSequence($fp, hex2raw($errPrintCAddrLEH), 0, DIR_FWD, -1);
|
||||
if ($printkPos === -1) {
|
||||
perr("printk pos not found!\n", true);
|
||||
}
|
||||
perr("Found printk arg @ " . decTo32bUFhex($printkPos) . "\n");
|
||||
|
||||
//double check if it's a MOV reg,VAL (where reg is EAX/ECX/EDX/EBX/ESP/EBP/ESI/EDI)
|
||||
fseek($fp, $printkPos - 3);
|
||||
$instr = fread($fp, 3);
|
||||
if (strncmp($instr, "\x48\xc7", 2) !== 0) {
|
||||
perr("Expected MOV=>reg before printk error, got " . bin2hex($instr) . "\n", true);
|
||||
}
|
||||
$dstReg = ord($instr[2]);
|
||||
if ($dstReg < 192 || $dstReg > 199) {
|
||||
perr("Expected MOV w/reg operand [C0-C7], got " . bin2hex($instr[2]) . "\n", true);
|
||||
}
|
||||
$movPos = $printkPos - 3;
|
||||
perr("Found printk MOV @ " . decTo32bUFhex($movPos) . "\n");
|
||||
|
||||
//now we should seek a reasonable amount (say, up to 32 bytes) for a sequence of CALL x => TEST EAX,EAX => JZ
|
||||
$testPos = findSequence($fp, "\x85\xc0", $movPos, DIR_RWD, 32);
|
||||
if ($testPos === -1) {
|
||||
perr("Failed to find TEST eax,eax\n", true);
|
||||
}
|
||||
|
||||
$jzPos = $testPos + 2;
|
||||
fseek($fp, $jzPos);
|
||||
$jz = fread($fp, 2);
|
||||
if ($jz[0] !== "\x74") {
|
||||
perr("Failed to find JZ\n", true);
|
||||
}
|
||||
|
||||
$jzp = "\xEB" . $jz[1];
|
||||
perr('OK - patching ' . bin2hex($jz) . " (JZ) to " . bin2hex($jzp) . " (JMP) @ $jzPos\n");
|
||||
fseek($fp, $jzPos); //we should be here already
|
||||
perr("Patched " . fwrite($fp, $jzp) . " bytes in memory\n");
|
||||
|
||||
if (!isset($argv[2])) {
|
||||
perr("No output file specified - discarding data\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!isset($argv[2])) {
|
||||
perr("No output file specified - discarding data\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
saveStreamToFile($fp, $argv[2]);
|
||||
fclose($fp);
|
||||
@@ -9,7 +9,8 @@ do
|
||||
if [ "$arg" = "elevator-iosched" ]; then
|
||||
insmod /usr/lib/modules/rp.ko
|
||||
rm /usr/lib/modules/rp.ko
|
||||
rm /sbin/modprobe
|
||||
rm /usr/sbin/modprobe
|
||||
ln -s /usr/bin/kmod /usr/sbin/modprobe
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/etc/rc
|
||||
+++ b/etc/rc
|
||||
@@ -247,7 +247,7 @@
|
||||
/etc.defaults/AHAtasks load_network_modules_junior
|
||||
fi
|
||||
SYNOLoadModules ${NET_MODULES}
|
||||
-
|
||||
+/addons/addons.sh modules
|
||||
|
||||
if [ "no" != "$RUN_SYNOBIOS" ]; then
|
||||
SYNOLoadModules "synobios"
|
||||
@@ -0,0 +1,31 @@
|
||||
--- a/usr/sbin/init.post
|
||||
+++ b/usr/sbin/init.post
|
||||
@@ -31,7 +31,28 @@
|
||||
OptPrjQuota="$(GetPQMountOpt "${RootMountPath}")"
|
||||
# shellcheck disable=SC2046
|
||||
Mount "${RootMountPath}" /tmpRoot -o barrier=1,noatime ${OptPrjQuota}
|
||||
+############################################################################################
|
||||
+SED_PATH='/tmpRoot/usr/bin/sed'
|
||||
|
||||
+@@@CONFIG-MANIPULATORS-TOOLS@@@
|
||||
+
|
||||
+@@@CONFIG-GENERATED@@@
|
||||
+
|
||||
+UPSTART="/tmpRoot/usr/share/init"
|
||||
+
|
||||
+if ! echo; then
|
||||
+ _replace_in_file '^start on' '#start on' $UPSTART/tty.conf
|
||||
+ _replace_in_file "console output" "console none" $UPSTART/syno_poweroff_task.conf
|
||||
+ _replace_in_file "console output" "console none" $UPSTART/burnin_loader.conf
|
||||
+ _replace_in_file "console output" "console none" $UPSTART/udevtrigger.conf
|
||||
+ _replace_in_file "console output" "console none" $UPSTART/bs-poweroff.conf
|
||||
+ _replace_in_file "console output" "console none" $UPSTART/udevd.conf
|
||||
+else
|
||||
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
|
||||
+fi
|
||||
+
|
||||
+/addons/addons.sh late
|
||||
+############################################################################################
|
||||
Mkdir -p /tmpRoot/initrd
|
||||
|
||||
Umount /proc >/dev/null 2>&1
|
||||
@@ -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 @@
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
--- a/etc/rc
|
||||
+++ b/etc/rc
|
||||
@@ -469,5 +469,5 @@
|
||||
echo "============ Date ============"
|
||||
date
|
||||
echo "=============================="
|
||||
-
|
||||
+/addons/addons.sh rcExit
|
||||
exit 0
|
||||
@@ -1,11 +1,37 @@
|
||||
--- a/linuxrc.syno.impl
|
||||
+++ b/linuxrc.syno.impl
|
||||
@@ -155,6 +155,8 @@ fi
|
||||
@@ -38,6 +38,8 @@
|
||||
UnknownSynoPartitionMigrationFlag="/.unknown_syno_partition_migrate"
|
||||
IncompatibleRootDevice="/.incompatible_root_device"
|
||||
|
||||
+/addons/addons.sh early
|
||||
+
|
||||
UmountRoot()
|
||||
{
|
||||
grep "^${RootDevice}" /proc/mounts && /bin/umount -f ${Mnt}
|
||||
@@ -59,5 +61,6 @@
|
||||
fi
|
||||
|
||||
+ /addons/addons.sh jrExit
|
||||
UmountRoot
|
||||
|
||||
exit $1
|
||||
}
|
||||
@@ -155,6 +158,8 @@
|
||||
# insert basic USB modules for detect f401/FDT
|
||||
echo "Insert basic USB modules..."
|
||||
SYNOLoadModules $USB_MODULES
|
||||
+SYNOLoadModules "usb-storage"
|
||||
+/addons/addons.sh early
|
||||
|
||||
+
|
||||
+/addons/addons.sh modules
|
||||
|
||||
# insert Etron USB3.0 drivers
|
||||
|
||||
@@ -209,6 +214,8 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
+/addons/addons.sh patches
|
||||
+
|
||||
if [ "$SupportDualhead" = "yes" ]; then
|
||||
# Run HA script
|
||||
/etc.defaults/AHAtasks check_stage
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/etc/rc
|
||||
+++ b/etc/rc
|
||||
@@ -230,7 +230,7 @@
|
||||
/etc.defaults/AHAtasks load_network_modules_junior
|
||||
fi
|
||||
SYNOLoadModules ${NET_MODULES}
|
||||
-
|
||||
+/addons/addons.sh modules
|
||||
|
||||
if [ "no" != "$RUN_SYNOBIOS" ]; then
|
||||
SYNOLoadModules "synobios"
|
||||
@@ -3,14 +3,22 @@
|
||||
. /opt/arpl/include/functions.sh
|
||||
. /opt/arpl/include/addons.sh
|
||||
|
||||
set -o pipefail # Get exit code from process piped
|
||||
|
||||
# Sanity check
|
||||
[ -f "${ORI_RDGZ_FILE}" ] || die "${ORI_RDGZ_FILE} not found!"
|
||||
[ -f "${ORI_RDGZ_FILE}" ] || (die "${ORI_RDGZ_FILE} not found!" | tee -a "${LOG_FILE}")
|
||||
|
||||
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
|
||||
@@ -23,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"
|
||||
@@ -39,22 +51,25 @@ KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||
RD_COMPRESSED="`readModelKey "${MODEL}" "builds.${BUILD}.rd-compressed"`"
|
||||
|
||||
# Sanity check
|
||||
[ -z "${PLATFORM}" -o -z "${KVER}" ] && die "ERROR: Configuration for model ${MODEL} and buildnumber ${BUILD} not found."
|
||||
[ -z "${PLATFORM}" -o -z "${KVER}" ] && (die "ERROR: Configuration for model ${MODEL} and buildnumber ${BUILD} not found." | tee -a "${LOG_FILE}")
|
||||
|
||||
declare -A SYNOINFO
|
||||
declare -A ADDONS
|
||||
declare -A USERMODULES
|
||||
|
||||
# Read more config
|
||||
while IFS="=" read KEY VALUE; do
|
||||
# Read synoinfo and addons from config
|
||||
while IFS=': ' read KEY VALUE; do
|
||||
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.synoinfo")
|
||||
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 "."
|
||||
@@ -65,8 +80,10 @@ done < <(readModelArray "${MODEL}" "builds.${BUILD}.patch")
|
||||
# Patch /etc/synoinfo.conf
|
||||
echo -n "."
|
||||
for KEY in ${!SYNOINFO[@]}; do
|
||||
sed -i "s|^${KEY}=.*|${KEY}=\"${SYNOINFO[${KEY}]}\"|" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
done
|
||||
# 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 "."
|
||||
@@ -75,43 +92,73 @@ 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"
|
||||
|
||||
# Copying LKM to /usr/lib/modules/rp.ko
|
||||
echo -n "."
|
||||
cp "${LKM_PATH}/rp-${PLATFORM}-${KVER}-${LKM}.ko" "${RAMDISK_PATH}/usr/lib/modules/rp.ko"
|
||||
# Extract modules to ramdisk
|
||||
rm -rf "${TMP_PATH}/modules"
|
||||
mkdir -p "${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}`
|
||||
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 "${MODULES_PATH}/firmware.tgz" | tar xf - -C "${RAMDISK_PATH}/usr/lib/firmware"
|
||||
# Clean
|
||||
rm -rf "${TMP_PATH}/modules"
|
||||
|
||||
# Copying fake modprobe
|
||||
echo -n "."
|
||||
# Copying fake modprobe
|
||||
cp "${PATCH_PATH}/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
|
||||
# Copying LKM to /usr/lib/modules
|
||||
gzip -dc "${LKM_PATH}/rp-${PLATFORM}-${KVER}-${LKM}.ko.gz" > "${RAMDISK_PATH}/usr/lib/modules/rp.ko"
|
||||
|
||||
# Addons
|
||||
#MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
||||
# Check if model needs Device-tree dynamic patch
|
||||
DT="`readModelKey "${MODEL}" "dt"`"
|
||||
# Add system addon "dtbpatch" or "maxdisks"
|
||||
[ "${DT}" = "true" ] && ADDONS['dtbpatch']="" || ADDONS['maxdisks']=""
|
||||
ADDONS['misc']="" # Add system addon "misc"
|
||||
ADDONS['acpid']="" # Add system addon "acpid"
|
||||
|
||||
mkdir -p "${RAMDISK_PATH}/addons"
|
||||
echo -n "."
|
||||
#/proc/sys/kernel/syno_install_flag
|
||||
mkdir -p "${RAMDISK_PATH}/addons"
|
||||
echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo 'export INSMOD="/sbin/insmod"' >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo 'echo "addons.sh called with params ${@}"' >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export PLATFORM=${PLATFORM}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export MODEL=${MODEL}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export BUILD=${BUILD}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export LAYOUT=${LAYOUT}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
echo "export KEYMAP=${KEYMAP}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||
chmod +x "${RAMDISK_PATH}/addons/addons.sh"
|
||||
|
||||
# Required addons: eudev, disks, wol
|
||||
installAddon eudev
|
||||
echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
installAddon disks
|
||||
echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
installAddon wol
|
||||
echo "/addons/wol.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
# User addons
|
||||
for ADDON in ${!ADDONS[@]}; do
|
||||
PARAMS=${ADDONS[${ADDON}]}
|
||||
if ! installAddon ${ADDON}; then
|
||||
echo "ADDON ${ADDON} not found!" | tee "${LOG_FILE}"
|
||||
echo "ADDON ${ADDON} not found!" | tee -a "${LOG_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||
done
|
||||
chmod +x "${RAMDISK_PATH}/addons/addons.sh"
|
||||
|
||||
# Build modules dependencies
|
||||
/opt/arpl/depmod -a -b ${RAMDISK_PATH} 2>/dev/null
|
||||
|
||||
# Reassembly ramdisk
|
||||
echo -n "."
|
||||
|
||||
@@ -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,13 +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
|
||||
# cksum $ZIMAGE_MOD # https://blog.box.com/crc32-checksums-the-good-the-bad-and-the-ugly
|
||||
size_le $(($((16#$(php "${SCRIPT_DIR}/crc32.php" "${ZIMAGE_MOD}"))) ^ 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
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
. /opt/arpl/include/functions.sh
|
||||
|
||||
set -o pipefail # Get exit code from process piped
|
||||
|
||||
# Sanity check
|
||||
[ -f "${ORI_ZIMAGE_FILE}" ] || die "${ORI_ZIMAGE_FILE} not found!"
|
||||
[ -f "${ORI_ZIMAGE_FILE}" ] || (die "${ORI_ZIMAGE_FILE} not found!" | tee -a "${LOG_FILE}")
|
||||
|
||||
echo -n "Patching zImage"
|
||||
|
||||
@@ -12,15 +14,11 @@ echo -n "."
|
||||
# Extract vmlinux
|
||||
/opt/arpl/bzImage-to-vmlinux.sh "${ORI_ZIMAGE_FILE}" "${TMP_PATH}/vmlinux" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
echo -n "."
|
||||
# Patch boot params
|
||||
/opt/arpl/patch-boot_params-check.php "${TMP_PATH}/vmlinux" "${TMP_PATH}/vmlinux-mod1" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
echo -n "."
|
||||
# Patch ramdisk check
|
||||
/opt/arpl/patch-ramdisk-check.php "${TMP_PATH}/vmlinux-mod1" "${TMP_PATH}/vmlinux-mod2" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
# Patch boot params and ramdisk check
|
||||
/opt/arpl/kpatch "${TMP_PATH}/vmlinux" "${TMP_PATH}/vmlinux-mod" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
echo -n "."
|
||||
# rebuild zImage
|
||||
/opt/arpl/vmlinux-to-bzImage.sh "${TMP_PATH}/vmlinux-mod2" "${MOD_ZIMAGE_FILE}" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
|
||||
/opt/arpl/vmlinux-to-bzImage.sh "${TMP_PATH}/vmlinux-mod" "${MOD_ZIMAGE_FILE}" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
echo -n "."
|
||||
# Update HASH of new DSM zImage
|
||||
HASH="`sha256sum ${ORI_ZIMAGE_FILE} | awk '{print$1}'`"
|
||||
|
||||
@@ -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
|
||||
|
||||
BIN
files/board/arpl/overlayfs/usr/lib/firmware/3com/typhoon.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/3com/typhoon.bin
Normal file
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/acenic/tg1.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/acenic/tg1.bin
Normal file
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/acenic/tg2.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/acenic/tg2.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/3550.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/3550.bin
Normal file
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/38C0800.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/38C0800.bin
Normal file
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/38C1600.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/38C1600.bin
Normal file
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/mcode.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/advansys/mcode.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
files/board/arpl/overlayfs/usr/lib/firmware/kaweth/new_code.bin
Normal file
BIN
files/board/arpl/overlayfs/usr/lib/firmware/kaweth/new_code.bin
Normal file
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user