Compare commits
143 Commits
d51c9e6359
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b9f1f2f39 | |||
| c5bfc7907b | |||
| 533b0b5ffc | |||
| eba54804d3 | |||
| 09b62923a8 | |||
| 960755e6a2 | |||
| 0fa9b0d85a | |||
| 4de18e6696 | |||
| 3772d373bb | |||
| b75597946d | |||
| 018a91e216 | |||
| 0c61a27b06 | |||
| 675ed5eb39 | |||
| 94f60e30b1 | |||
| e8ccb76cc6 | |||
| 4274f876a7 | |||
| 4760c84bff | |||
| 20b3f7f4ec | |||
| f178e39a28 | |||
| c7b954252d | |||
| 18929109a2 | |||
| 8d24cb96a9 | |||
| 9be43af11a | |||
| ce2e85d197 | |||
| aeead798c3 | |||
| 72355bb65a | |||
| 3053b24063 | |||
| 186fe21d73 | |||
| d63a909d54 | |||
| 9128c453f3 | |||
| ffbd193b79 | |||
| 5259c72de4 | |||
| 045f43b51f | |||
| 89cc3cddeb | |||
| cd7449dd7c | |||
| 2b35e1e017 | |||
| 983f9ecb04 | |||
| b5f567ce2b | |||
| a16e713895 | |||
| 70d24d7fae | |||
| d5069d4c40 | |||
| 718b29cfe8 | |||
| e3ce0b6e57 | |||
| 3ba76a4e8d | |||
| 4f1f145a10 | |||
| 2123205ca0 | |||
| e510f8ccb6 | |||
| da398172e8 | |||
| 12067ac09b | |||
| cf2c35b114 | |||
| 5629472aa3 | |||
| a7a85ee67a | |||
| 4890aa192d | |||
| 819ff0add0 | |||
| 149da1be87 | |||
| 6f1bc4dd00 | |||
| 5d434f031d | |||
| 25b5623a65 | |||
| 20477c21ab | |||
| 8ed85fff2b | |||
| ab8f58ca92 | |||
| 20e11b7419 | |||
| 11c28c7ab3 | |||
| 908664b185 | |||
| 40ce9940ae | |||
| 64ffeeca17 | |||
| 0106ac7eff | |||
| 86f5bf7e3f | |||
| a18d467c4f | |||
| 3a659b4798 | |||
| 7f996e7724 | |||
| 3688539a90 | |||
| c28d7683d8 | |||
| a5b559c59c | |||
| d22d21148c | |||
| 2b4dac7ef3 | |||
| 498f8a7333 | |||
| d28f2e8c31 | |||
| ca3f1e82ed | |||
| 4b66de068b | |||
| 1e88f1b912 | |||
| cbe7e0468d | |||
| a664b70cf4 | |||
| b5199d5682 | |||
| 35ec2993cc | |||
| e4838f361e | |||
| f32b8c84b0 | |||
| f34953b3cc | |||
| e91394ee00 | |||
| a40ac543e9 | |||
| 06a3209046 | |||
| 5ef6d2dc0f | |||
| 36c0786255 | |||
| 25e66b3d19 | |||
| aa24a58aae | |||
| 7298fca349 | |||
| 7191e10f91 | |||
| e80dddf9a7 | |||
| 481e2e2277 | |||
| de84a404f0 | |||
| a5d57fdd3d | |||
| 732233df32 | |||
| 93a962a008 | |||
| ed13912034 | |||
| 2ee0ed2a09 | |||
| f9f5f9a017 | |||
| 647f64c99e | |||
| e04a5a2de4 | |||
| 395263ee66 | |||
| bdc4ff67e7 | |||
| 1d078a30e0 | |||
| 0d8502bfac | |||
| a44254bcc9 | |||
| dcf9aaee84 | |||
| 8dc558a6d5 | |||
| ff275aa0ad | |||
| 0ead0af0b5 | |||
| 21899bb072 | |||
| 84dc370d32 | |||
| ab1569fced | |||
| be5dfb2832 | |||
| 7dbc7fc3ef | |||
| 9efb42f944 | |||
| 6ba2335f8a | |||
| 114c9dfc68 | |||
| 864756c815 | |||
| 116636c9a3 | |||
| dc3ccef3fd | |||
| 5ae94d72b4 | |||
| b245bffbc8 | |||
| 98c17f4ad7 | |||
| a75505f467 | |||
| cabd3aca8b | |||
| 75303a619e | |||
| 60c73cac78 | |||
| 3c8b230cc3 | |||
| d22e0ead04 | |||
| e43971d3de | |||
| 81c16f674c | |||
| 0dc3dc0d72 | |||
| 6f6d92b659 | |||
| 961a87fb6c | |||
| 63cd99cd4d |
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,3 +1,8 @@
|
||||
src/
|
||||
bin/
|
||||
.dependencies
|
||||
.vscode/
|
||||
*.code-workspace
|
||||
backups/
|
||||
.dependencies_source
|
||||
.dependencies_ib
|
||||
|
||||
|
||||
19
.vscode/launch.json
vendored
19
.vscode/launch.json
vendored
@@ -1,19 +0,0 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "bashdb",
|
||||
"request": "launch",
|
||||
"terminalKind": "integrated",
|
||||
"name": "Bash-Debug (simplest configuration)",
|
||||
"program": "${file}",
|
||||
"args": [
|
||||
"-d",
|
||||
"-p", "r4s"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
10
.vscode/settings.json
vendored
10
.vscode/settings.json
vendored
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"window.title": "openwrtbuilder",
|
||||
"cSpell.words": [
|
||||
"infile",
|
||||
"isfile",
|
||||
"openwrt",
|
||||
"regen",
|
||||
"sysbackup"
|
||||
]
|
||||
}
|
||||
13
.vscode/tasks.json
vendored
13
.vscode/tasks.json
vendored
@@ -1,13 +0,0 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build RPi4 snapshot in toolbox",
|
||||
"type": "shell",
|
||||
"command": "toolbox run ${file} -p r4s -d",
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
35
README.md
35
README.md
@@ -1,21 +1,21 @@
|
||||
# openwrtbuilder
|
||||
|
||||
Sanely build and deploy OpenWRT images using the Image Builder or from source code
|
||||
Build and deploy OpenWRT images using shell-style device profiles, via source code or the official Image Builder.
|
||||
|
||||
## Usage
|
||||
|
||||
`openwrtbuilder [--option [VALUE]]... -p PROFILE [-p PROFILE]...`
|
||||
`openwrtbuilder [OPTION [VALUE]]... -p PROFILE [-p PROFILE]...`
|
||||
|
||||
## Options
|
||||
|
||||
```(text)
|
||||
--profile,-p PROFILE
|
||||
--release,-r,--version,-v RELEASE ("snapshot", "22.03.3")
|
||||
--buildroot,-b PATH
|
||||
Default: location of openwrtbuilder script
|
||||
--buildroot,-b PATH (Default: script directory)
|
||||
--source
|
||||
Build image from source, not from Image Builder
|
||||
Allows make config options to be passed
|
||||
Build image from source code, not from Image Builder.
|
||||
Allows make config options to be passed in profile.
|
||||
Uses git worktree for multi-profile deduplication.
|
||||
--ssh-upgrade HOST
|
||||
Example: root@192.168.1.1
|
||||
--ssh-backup SSH_PATH
|
||||
@@ -25,21 +25,32 @@ Sanely build and deploy OpenWRT images using the Image Builder or from source co
|
||||
--reset
|
||||
Cleanup all source and output files
|
||||
Can be combined with -p to reset a specific profile
|
||||
--depends
|
||||
Force dependency installation
|
||||
--yes,-y
|
||||
Assume yes for all questions (automatic mode)
|
||||
--debug,-d
|
||||
--help,-h
|
||||
```
|
||||
|
||||
## Profiles
|
||||
|
||||
See `./profiles` for example device profile definitions.
|
||||
See `profiles` for example device profile definitions. Multiple `--profile` can be passed at once.
|
||||
|
||||
The default build mode is `imagebuilder` unless `--source` is passed. Default profile modes can be set individually in `profiles`.
|
||||
|
||||
## Examples
|
||||
|
||||
* `./openwrtbuilder -p r4s -r snapshot --debug`
|
||||
* `./openwrtbuilder -p ax6000 -r 22.03.3 --source --debug`
|
||||
* `./openwrtbuilder -p rpi4 -r 22.03.3 --flash /dev/sdX`
|
||||
* `./openwrtbuilder -p linksys -r snapshot --ssh-upgrade root@192.168.1.1`
|
||||
* `openwrtbuilder -p r4s -p ax6000`
|
||||
* `openwrtbuilder -p r4s -r snapshot --debug`
|
||||
* `openwrtbuilder -p ax6000 -r 23.05.5 --source --debug`
|
||||
* `openwrtbuilder -p rpi4 -r 23.05.5 --flash /dev/sdX`
|
||||
* `openwrtbuilder -p linksys -r snapshot --ssh-upgrade root@192.168.1.1`
|
||||
|
||||
## Additional Info
|
||||
|
||||
Did you find `openwrtbuilder` useful? [Buy me a coffee!](https://paypal.me/bryanroessler)
|
||||
Find `openwrtbuilder` useful? [Paypal me a coffee!](https://paypal.me/bryanroessler)
|
||||
|
||||
[↓ ↓ ↓ Bitcoin ↓ ↓ ↓](bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a)
|
||||
|
||||
[](bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a)
|
||||
|
||||
837
openwrtbuilder
837
openwrtbuilder
File diff suppressed because it is too large
Load Diff
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"window.title": "openwrtbuilder",
|
||||
"cSpell.words": [
|
||||
"openwrtbuilder",
|
||||
"padx"
|
||||
],
|
||||
"cSpell.ignoreWords": [
|
||||
"openwrtbuilder"
|
||||
]
|
||||
}
|
||||
}
|
||||
319
profiles
319
profiles
@@ -1,219 +1,130 @@
|
||||
#!/usr/bin/env bash
|
||||
# Device profiles for openwrtbuilder
|
||||
# shellcheck disable=SC2034
|
||||
# This file contains a set of device profiles for openwrtbuilder
|
||||
# bash doesn't like nested arrays so we use strings instead
|
||||
|
||||
# Packages to install for all profiles
|
||||
default_packages="\
|
||||
luci \
|
||||
luci-ssl \
|
||||
luci-proto-wireguard \
|
||||
luci-app-statistics \
|
||||
collectd-mod-sensors \
|
||||
collectd-mod-thermal \
|
||||
collectd-mod-conntrack \
|
||||
collectd-mod-cpu \
|
||||
nano \
|
||||
htop \
|
||||
diffutils \
|
||||
tar \
|
||||
iperf3 \
|
||||
zsh \
|
||||
rsync \
|
||||
openssh-sftp-server \
|
||||
"
|
||||
# Default (but optional) packages (precede with "-" to exclude)
|
||||
default_packages=(nano htop diffutils tar iperf3 zsh rsync curl tcpdump
|
||||
openssh-sftp-server luci luci-ssl luci-proto-wireguard luci-app-statistics
|
||||
collectd-mod-sensors collectd-mod-thermal collectd-mod-conntrack collectd-mod-cpu
|
||||
)
|
||||
|
||||
# Default (but optional) kernel configs
|
||||
default_configs=(
|
||||
)
|
||||
|
||||
# Current devices
|
||||
# Main router
|
||||
declare -Ag r4s
|
||||
r4s['device']="friendlyarm_nanopi-r4s"
|
||||
r4s['target']="rockchip/armv8"
|
||||
r4s['filesystem']="ext4"
|
||||
r4s['packages']="\
|
||||
$default_packages \
|
||||
luci-app-ddns \
|
||||
luci-app-sqm \
|
||||
irqbalance \
|
||||
collectd-mod-df \
|
||||
usbutils \
|
||||
kmod-usb-storage \
|
||||
kmod-usb-storage-uas \
|
||||
kmod-fs-btrfs \
|
||||
btrfs-progs \
|
||||
block-mount \
|
||||
smcroute \
|
||||
avahi-daemon \
|
||||
curl \
|
||||
ethtool \
|
||||
ca-bundle"
|
||||
# The following are source mode only
|
||||
r4s['config']="\
|
||||
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y \
|
||||
CONFIG_BTRFS_PROGS_ZSTD=y \
|
||||
CONFIG_TARGET_ROOTFS_PARTSIZE=512 \
|
||||
CONFIG_TARGET_KERNEL_PARTSIZE=32"
|
||||
r4s['files']="\
|
||||
/mnt/backup"
|
||||
declare -Ag r4s=(
|
||||
[mode]="source"
|
||||
[device]="friendlyarm_nanopi-r4s"
|
||||
[target]="rockchip/armv8"
|
||||
[filesystem]="ext4"
|
||||
[packages]="${default_packages[*]} \
|
||||
luci-app-ddns luci-app-sqm \
|
||||
adblock luci-app-adblock \
|
||||
collectd-mod-df usbutils kmod-usb-storage kmod-usb-storage-uas \
|
||||
kmod-fs-btrfs btrfs-progs block-mount smcroute avahi-daemon \
|
||||
ethtool ca-bundle tailscale"
|
||||
[config]="${default_configs[*]} \
|
||||
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y CONFIG_BTRFS_PROGS_ZSTD=y \
|
||||
CONFIG_TARGET_ROOTFS_PARTSIZE=512 CONFIG_TARGET_KERNEL_PARTSIZE=32"
|
||||
[files]="/mnt/backup"
|
||||
# For 24.10 branch (Linux 6.6)
|
||||
# [cherrypicks]="wurzerj:59d6e31 wurzerj:bb251b8" # fix inconsistent reboot
|
||||
)
|
||||
|
||||
# Access point
|
||||
declare -Ag ax6000
|
||||
ax6000['device']="xiaomi_redmi-router-ax6000-stock"
|
||||
ax6000['target']="mediatek/filogic"
|
||||
ax6000['release']="snapshot"
|
||||
ax6000['filesystem']="squashfs"
|
||||
ax6000['packages']="\
|
||||
$default_packages \
|
||||
-dnsmasq \
|
||||
-odhcpd-ipv6only \
|
||||
-nftables \
|
||||
-firewall4"
|
||||
declare -Ag ax6000=(
|
||||
[mode]="imagebuilder"
|
||||
[device]="xiaomi_redmi-router-ax6000-stock"
|
||||
[target]="mediatek/filogic"
|
||||
[release]="snapshot"
|
||||
[filesystem]="squashfs"
|
||||
[packages]="${default_packages[*]} \
|
||||
-dnsmasq -odhcpd-ipv6only -nftables -firewall4 tailscale"
|
||||
)
|
||||
|
||||
# For converted uboots
|
||||
# declare -Ag ax6000_uboot
|
||||
# ax6000_uboot['device']="xiaomi_redmi-router-ax6000-ubootmod"
|
||||
# ax6000_uboot['target']="mediatek/filogic"
|
||||
# ax6000_uboot['release']="snapshot"
|
||||
# ax6000_uboot['filesystem']="squashfs"
|
||||
# ax6000_uboot['packages']="\
|
||||
# $default_packages \
|
||||
# -dnsmasq \
|
||||
# -odhcpd-ipv6only \
|
||||
# -nftables \
|
||||
# -firewall4 \
|
||||
# -kmod-nft-offload \
|
||||
# collectd-mod-iwinfo"
|
||||
declare -Ag ax6000_uboot=(
|
||||
[mode]="imagebuilder"
|
||||
[device]="xiaomi_redmi-router-ax6000-ubootmod"
|
||||
[target]="mediatek/filogic"
|
||||
[release]="snapshot"
|
||||
[filesystem]="squashfs"
|
||||
[packages]="${default_packages[*]} \
|
||||
-dnsmasq -odhcpd-ipv6only -nftables -firewall4"
|
||||
)
|
||||
|
||||
# Remote NAS
|
||||
declare -Ag n5100
|
||||
n5100['device']="generic"
|
||||
n5100['target']="x86/64"
|
||||
n5100['filesystem']="squashfs"
|
||||
n5100['packages']="\
|
||||
$default_packages \
|
||||
luci-app-ddns \
|
||||
irqbalance \
|
||||
collectd-mod-df \
|
||||
usbutils \
|
||||
kmod-usb-storage \
|
||||
kmod-usb-storage-uas \
|
||||
kmod-fs-btrfs \
|
||||
btrfs-progs \
|
||||
block-mount \
|
||||
cryptsetup \
|
||||
kmod-crypto-xts \
|
||||
smcroute \
|
||||
avahi-daemon \
|
||||
curl \
|
||||
ethtool \
|
||||
ca-bundle \
|
||||
smartmontools \
|
||||
intel-microcode \
|
||||
lm-sensors \
|
||||
samba4-server \
|
||||
luci-app-samba4 \
|
||||
tailscale \
|
||||
shadow-useradd"
|
||||
# The following are source mode only
|
||||
n5100['config']="\
|
||||
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y \
|
||||
CONFIG_BTRFS_PROGS_ZSTD=y \
|
||||
CONFIG_TARGET_ROOTFS_PARTSIZE=512 \
|
||||
CONFIG_TARGET_KERNEL_PARTSIZE=32"
|
||||
n5100['files']="\
|
||||
/mnt/backup"
|
||||
declare -Ag n5100=(
|
||||
[device]="generic"
|
||||
[target]="x86/64"
|
||||
[filesystem]="squashfs"
|
||||
[packages]="${default_packages[*]} \
|
||||
luci-app-ddns irqbalance collectd-mod-df \
|
||||
usbutils kmod-usb-storage kmod-usb-storage-uas kmod-fs-btrfs \
|
||||
btrfs-progs block-mount cryptsetup kmod-crypto-xts smcroute \
|
||||
avahi-daemon curl ethtool ca-bundle smartmontools intel-microcode \
|
||||
lm-sensors samba4-server luci-app-samba4 tailscale shadow-useradd"
|
||||
[config]="${default_configs[*]} \
|
||||
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y CONFIG_BTRFS_PROGS_ZSTD=y \
|
||||
CONFIG_TARGET_ROOTFS_PARTSIZE=512 CONFIG_TARGET_KERNEL_PARTSIZE=32"
|
||||
# [files]="/mnt/backup"
|
||||
)
|
||||
|
||||
# Dusty drawer
|
||||
declare -Ag rpi4
|
||||
rpi4['device']="rpi-4"
|
||||
rpi4['target']="bcm27xx/bcm2711"
|
||||
rpi4['filesystem']="ext4"
|
||||
rpi4['packages']="\
|
||||
$default_packages \
|
||||
kmod-usb-net-asix-ax88179 \
|
||||
kmod-usb-net-rtl8152 \
|
||||
luci-app-upnp \
|
||||
luci-app-pbr \
|
||||
-dnsmasq \
|
||||
dnsmasq-full \
|
||||
luci-app-ddns \
|
||||
luci-app-sqm"
|
||||
declare -Ag rpi4=(
|
||||
[device]="rpi-4"
|
||||
[target]="bcm27xx/bcm2711"
|
||||
[filesystem]="ext4"
|
||||
[packages]="${default_packages[*]} \
|
||||
luci-app-upnp luci-app-pbr -dnsmasq dnsmasq-full luci-app-ddns luci-app-sqm \
|
||||
kmod-usb-net-asix-ax88179 kmod-usb-net-rtl8152"
|
||||
)
|
||||
|
||||
# Stock builds
|
||||
declare -Ag r4s_stock
|
||||
r4s_stock['device']="friendlyarm_nanopi-r4s"
|
||||
r4s_stock['target']="rockchip/armv8"
|
||||
r4s_stock['filesystem']="ext4"
|
||||
r4s_stock['release']="snapshot"
|
||||
declare -Ag r4s_stock=(
|
||||
[device]="friendlyarm_nanopi-r4s"
|
||||
[target]="rockchip/armv8"
|
||||
[filesystem]="ext4"
|
||||
[release]="snapshot"
|
||||
)
|
||||
|
||||
# Old devices
|
||||
declare -Ag totolink
|
||||
totolink['device']="totolink_x5000r"
|
||||
totolink['target']="ramips/mt7621"
|
||||
totolink['filesystem']="squashfs"
|
||||
totolink['packages']="\
|
||||
$default_packages \
|
||||
-dnsmasq \
|
||||
-odhcpd-ipv6only \
|
||||
-nftables \
|
||||
-firewall4 \
|
||||
-kmod-nft-offload \
|
||||
collectd-mod-iwinfo"
|
||||
declare -Ag totolink=(
|
||||
[device]="totolink_x5000r"
|
||||
[target]="ramips/mt7621"
|
||||
[filesystem]="squashfs"
|
||||
[packages]="${default_packages[*]} \
|
||||
-dnsmasq -odhcpd-ipv6only -nftables -firewall4 \
|
||||
-kmod-nft-offload collectd-mod-iwinfo"
|
||||
)
|
||||
|
||||
declare -Ag archer
|
||||
archer['device']="tplink_archer-c7-v2"
|
||||
archer['target']="ath79/generic"
|
||||
archer['filesystem']="squashfs"
|
||||
archer['packages']="\
|
||||
$default_packages \
|
||||
-dnsmasq \
|
||||
-odhcpd \
|
||||
-iptables \
|
||||
-ath10k-firmware-qca988x-ct \
|
||||
ath10k-firmware-qca988x-ct-full-htt"
|
||||
declare -Ag archer=(
|
||||
[device]="tplink_archer-c7-v2"
|
||||
[target]="ath79/generic"
|
||||
[filesystem]="squashfs"
|
||||
[packages]="${default_packages[*]} -dnsmasq -odhcpd -iptables \
|
||||
-ath10k-firmware-qca988x-ct ath10k-firmware-qca988x-ct-full-htt"
|
||||
)
|
||||
|
||||
declare -Ag linksys
|
||||
linksys['device']="linksys_ea8300"
|
||||
linksys['target']="ipq40xx/generic"
|
||||
linksys['filesystem']="squashfs"
|
||||
linksys['packages']="\
|
||||
$default_packages \
|
||||
-dnsmasq \
|
||||
-odhcpd \
|
||||
-iptables"
|
||||
declare -Ag linksys=(
|
||||
[device]="linksys_ea8300"
|
||||
[target]="ipq40xx/generic"
|
||||
[filesystem]="squashfs"
|
||||
[packages]="${default_packages[*]} \
|
||||
-dnsmasq -odhcpd -iptables"
|
||||
)
|
||||
|
||||
declare -Ag r2s
|
||||
r2s['device']="friendlyarm_nanopi-r2s"
|
||||
r2s['target']="rockchip/armv8"
|
||||
r2s['filesystem']="ext4"
|
||||
r2s['packages']="\
|
||||
$default_packages \
|
||||
luci-app-upnp \
|
||||
luci-app-pbr \
|
||||
-dnsmasq \
|
||||
dnsmasq-full \
|
||||
luci-app-ddns \
|
||||
luci-app-sqm \
|
||||
luci-app-statistics \
|
||||
collectd-mod-sensors \
|
||||
collectd-mod-thermal \
|
||||
collectd-mod-conntrack \
|
||||
smcroute \
|
||||
curl \
|
||||
ethtool"
|
||||
declare -Ag r2s=(
|
||||
[device]="friendlyarm_nanopi-r2s"
|
||||
[target]="rockchip/armv8"
|
||||
[filesystem]="ext4"
|
||||
[packages]="${default_packages[*]} \
|
||||
luci-app-upnp luci-app-pbr -dnsmasq dnsmasq-full \
|
||||
luci-app-ddns luci-app-sqm luci-app-statistics collectd-mod-sensors \
|
||||
collectd-mod-thermal collectd-mod-conntrack smcroute curl ethtool"
|
||||
)
|
||||
|
||||
declare -Ag r2s_tr
|
||||
r2s_tr['device']="friendlyarm_nanopi-r2s"
|
||||
r2s_tr['target']="rockchip/armv8"
|
||||
r2s_tr['filesystem']="ext4"
|
||||
r2s_tr['packages']="\
|
||||
$default_packages \
|
||||
luci-app-upnp \
|
||||
luci-app-pbr \
|
||||
luci-app-ddns \
|
||||
luci-app-statistics \
|
||||
collectd-mod-sensors \
|
||||
collectd-mod-thermal \
|
||||
collectd-mod-conntrack \
|
||||
curl \
|
||||
ethtool \
|
||||
travelmate"
|
||||
declare -Ag r2s_tr=(
|
||||
[device]="friendlyarm_nanopi-r2s"
|
||||
[target]="rockchip/armv8"
|
||||
[filesystem]="ext4"
|
||||
[packages]="${default_packages[*]} \
|
||||
luci-app-upnp luci-app-pbr luci-app-ddns \
|
||||
luci-app-statistics collectd-mod-sensors collectd-mod-thermal \
|
||||
collectd-mod-conntrack curl ethtool travelmate"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user