Automate access-point image build
This commit is contained in:
parent
01dd5d62c6
commit
23125a970e
17 changed files with 270 additions and 0 deletions
2
access-points/.gitignore
vendored
Normal file
2
access-points/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
build/
|
||||||
|
dl/
|
60
access-points/build-image.sh
Executable file
60
access-points/build-image.sh
Executable file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
[ $# -ge 1 ] || exit 1
|
||||||
|
CONTROL="$1"; shift
|
||||||
|
IMAGEBUILDER_URL=${IMAGEBUILDER_URL:-http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/lede-imagebuilder-ar71xx-generic.Linux-x86_64.tar.xz}
|
||||||
|
|
||||||
|
TOPDIR="$PWD"
|
||||||
|
DLDIR=${DLDIR:-"dl"}
|
||||||
|
BUILDDIR=${BUILDDIR:-"build"}
|
||||||
|
IMAGEDIR=${IMAGEDIR:-"images"}
|
||||||
|
|
||||||
|
mkdir -p "$DLDIR"
|
||||||
|
mkdir -p "$BUILDDIR"; rm -rf "$BUILDDIR"/*
|
||||||
|
mkdir -p "$IMAGEDIR"
|
||||||
|
|
||||||
|
VERSION="$(basename "$(git describe --always --tags --dirty --match 'access-points/*')")"
|
||||||
|
IMAGEDIR="$IMAGEDIR"/"$VERSION"
|
||||||
|
mkdir "$IMAGEDIR"
|
||||||
|
|
||||||
|
imagebuilder="$(basename "$IMAGEBUILDER_URL")"
|
||||||
|
|
||||||
|
(
|
||||||
|
cd "$DLDIR"
|
||||||
|
wget --continue "$IMAGEBUILDER_URL" -O "$imagebuilder"
|
||||||
|
)
|
||||||
|
|
||||||
|
tar -C "$BUILDDIR" -axf "$DLDIR"/"$imagebuilder"
|
||||||
|
|
||||||
|
IMAGEBUILDER_DIR="$BUILDDIR"/"$(tar -atf "$DLDIR"/"$imagebuilder" | head -n1)"
|
||||||
|
|
||||||
|
image="lede-ar71xx-generic-tl-wr841-v10-squashfs-sysupgrade.bin"
|
||||||
|
|
||||||
|
|
||||||
|
(
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
export PROFILE PACKAGES
|
||||||
|
. "$CONTROL"
|
||||||
|
|
||||||
|
tmp=$(mktemp --tmpdir -d files.XXXXXXXXX)
|
||||||
|
|
||||||
|
cp -aLTv "$TOPDIR/$FILES" "$tmp"
|
||||||
|
echo "$VERSION" > "$tmp"/etc/its-access-point-version
|
||||||
|
|
||||||
|
cd "$IMAGEBUILDER_DIR"
|
||||||
|
make image FILES="$tmp"
|
||||||
|
)
|
||||||
|
|
||||||
|
cp "$IMAGEBUILDER_DIR"/bin/targets/ar71xx/generic/"$image" "$IMAGEDIR"/
|
||||||
|
|
||||||
|
{
|
||||||
|
printf '%s\n' "Date: $(date -R)"
|
||||||
|
printf '%s\n' "Image-Builder: $IMAGEBUILDER_URL"
|
||||||
|
printf '%s\n'
|
||||||
|
printf 'Checksums-Sha512:\n'
|
||||||
|
{
|
||||||
|
( cd "$DLDIR" ; sha512sum "$imagebuilder" )
|
||||||
|
( cd "$IMAGEDIR"; sha512sum "$image")
|
||||||
|
} | sed 's/^/ /'
|
||||||
|
} > "$IMAGEDIR"/image-manifest
|
11
access-points/control/tl-wr841-v10
Normal file
11
access-points/control/tl-wr841-v10
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
PROFILE=tl-wr841-v10
|
||||||
|
FILES=files/tl-wr841-v10
|
||||||
|
PACKAGES='
|
||||||
|
collectd
|
||||||
|
collectd-mod-wireless
|
||||||
|
collectd-mod-interface
|
||||||
|
collectd-mod-load
|
||||||
|
collectd-mod-network
|
||||||
|
-firewall
|
||||||
|
-ip6tables
|
||||||
|
-kmod-ip6tables'
|
30
access-points/files/tl-wr841-v10/etc/collectd.conf
Normal file
30
access-points/files/tl-wr841-v10/etc/collectd.conf
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Config file for collectd. More info: https://collectd.org/
|
||||||
|
# Note: Luci statistics will generate a new config and overwrite this file.
|
||||||
|
|
||||||
|
#Hostname "localhost"
|
||||||
|
#FQDNLookup true
|
||||||
|
BaseDir "/var/run/collectd"
|
||||||
|
Include "/etc/collectd/conf.d"
|
||||||
|
PIDFile "/var/run/collectd.pid"
|
||||||
|
PluginDir "/usr/lib/collectd"
|
||||||
|
TypesDB "/usr/share/collectd/types.db"
|
||||||
|
Interval 30
|
||||||
|
ReadThreads 2
|
||||||
|
|
||||||
|
LoadPlugin interface
|
||||||
|
LoadPlugin load
|
||||||
|
#LoadPlugin ping
|
||||||
|
|
||||||
|
<Plugin interface>
|
||||||
|
IgnoreSelected false
|
||||||
|
Interface "lan"
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
LoadPlugin network
|
||||||
|
<Plugin network>
|
||||||
|
Server "collectd.asozial" "25826"
|
||||||
|
Forward false
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
|
||||||
|
LoadPlugin wireless
|
17
access-points/files/tl-wr841-v10/etc/config/dhcp
Normal file
17
access-points/files/tl-wr841-v10/etc/config/dhcp
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
config dnsmasq
|
||||||
|
option listen 0
|
||||||
|
|
||||||
|
config dhcp 'lan'
|
||||||
|
option interface 'lan'
|
||||||
|
option ignore 1
|
||||||
|
|
||||||
|
config dhcp 'wan'
|
||||||
|
option interface 'wan'
|
||||||
|
option ignore '1'
|
||||||
|
|
||||||
|
config odhcpd 'odhcpd'
|
||||||
|
option maindhcp '0'
|
||||||
|
option leasefile '/tmp/hosts/odhcpd'
|
||||||
|
option leasetrigger '/usr/sbin/odhcpd-update'
|
||||||
|
|
5
access-points/files/tl-wr841-v10/etc/config/dropbear
Normal file
5
access-points/files/tl-wr841-v10/etc/config/dropbear
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
config dropbear
|
||||||
|
option PasswordAuth 'off'
|
||||||
|
option RootPasswordAuth 'off'
|
||||||
|
option Port '22'
|
||||||
|
# option BannerFile '/etc/banner'
|
5
access-points/files/tl-wr841-v10/etc/config/firewall
Normal file
5
access-points/files/tl-wr841-v10/etc/config/firewall
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
config defaults
|
||||||
|
option syn_flood 1
|
||||||
|
option input ACCEPT
|
||||||
|
option output ACCEPT
|
||||||
|
option forward ACCEPT
|
32
access-points/files/tl-wr841-v10/etc/config/network
Normal file
32
access-points/files/tl-wr841-v10/etc/config/network
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
config interface 'loopback'
|
||||||
|
option ifname 'lo'
|
||||||
|
option proto 'static'
|
||||||
|
option ipaddr '127.0.0.1'
|
||||||
|
option netmask '255.0.0.0'
|
||||||
|
|
||||||
|
config interface 'apctl'
|
||||||
|
option ifname 'eth1.2'
|
||||||
|
option proto 'dhcp'
|
||||||
|
|
||||||
|
config interface 'lan'
|
||||||
|
option type 'bridge'
|
||||||
|
option ifname 'eth1'
|
||||||
|
option proto 'static'
|
||||||
|
|
||||||
|
config interface 'recovery'
|
||||||
|
option type 'bridge'
|
||||||
|
option ifname 'eth0'
|
||||||
|
option proto 'static'
|
||||||
|
option ipaddr '192.168.1.1'
|
||||||
|
option netmask '255.0.0.0'
|
||||||
|
|
||||||
|
config switch
|
||||||
|
option name 'switch0'
|
||||||
|
option reset '1'
|
||||||
|
option enable '1'
|
||||||
|
option enable_vlan '1'
|
||||||
|
|
||||||
|
config switch_vlan
|
||||||
|
option device 'switch0'
|
||||||
|
option vlan '1'
|
||||||
|
option ports '1 2 3 4 0'
|
48
access-points/files/tl-wr841-v10/etc/config/system
Normal file
48
access-points/files/tl-wr841-v10/etc/config/system
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
|
||||||
|
config system
|
||||||
|
option hostname 'ITS-AP-unassigned'
|
||||||
|
option timezone 'UTC'
|
||||||
|
|
||||||
|
config timeserver 'ntp'
|
||||||
|
list server '0.openwrt.pool.ntp.org'
|
||||||
|
list server '1.openwrt.pool.ntp.org'
|
||||||
|
list server '2.openwrt.pool.ntp.org'
|
||||||
|
list server '3.openwrt.pool.ntp.org'
|
||||||
|
option enabled '1'
|
||||||
|
option enable_server '0'
|
||||||
|
|
||||||
|
config led 'led_wan'
|
||||||
|
option name 'WAN'
|
||||||
|
option sysfs 'tp-link:green:wan'
|
||||||
|
option trigger 'netdev'
|
||||||
|
option mode 'link tx rx'
|
||||||
|
option dev 'eth1'
|
||||||
|
|
||||||
|
config led 'led_lan1'
|
||||||
|
option name 'LAN1'
|
||||||
|
option sysfs 'tp-link:green:lan1'
|
||||||
|
option trigger 'switch0'
|
||||||
|
option port_mask '0x10'
|
||||||
|
|
||||||
|
config led 'led_lan2'
|
||||||
|
option name 'LAN2'
|
||||||
|
option sysfs 'tp-link:green:lan2'
|
||||||
|
option trigger 'switch0'
|
||||||
|
option port_mask '0x08'
|
||||||
|
|
||||||
|
config led 'led_lan3'
|
||||||
|
option name 'LAN3'
|
||||||
|
option sysfs 'tp-link:green:lan3'
|
||||||
|
option trigger 'switch0'
|
||||||
|
option port_mask '0x04'
|
||||||
|
|
||||||
|
config led 'led_lan4'
|
||||||
|
option name 'LAN4'
|
||||||
|
option sysfs 'tp-link:green:lan4'
|
||||||
|
option trigger 'switch0'
|
||||||
|
option port_mask '0x02'
|
||||||
|
|
||||||
|
config led 'led_wlan'
|
||||||
|
option name 'WLAN'
|
||||||
|
option sysfs 'tp-link:green:wlan'
|
||||||
|
option trigger 'phy0tpt'
|
0
access-points/files/tl-wr841-v10/etc/config/ubootenv
Normal file
0
access-points/files/tl-wr841-v10/etc/config/ubootenv
Normal file
15
access-points/files/tl-wr841-v10/etc/config/wireless
Normal file
15
access-points/files/tl-wr841-v10/etc/config/wireless
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
config wifi-device radio0
|
||||||
|
option type mac80211
|
||||||
|
option channel 1
|
||||||
|
option hwmode 11g
|
||||||
|
option path 'platform/qca953x_wmac'
|
||||||
|
option htmode HT20
|
||||||
|
option disabled '1'
|
||||||
|
|
||||||
|
config wifi-iface
|
||||||
|
option device radio0
|
||||||
|
option network lan
|
||||||
|
option mode ap
|
||||||
|
option ssid it-syndikat
|
||||||
|
option encryption psk2
|
||||||
|
option key '<WIRELESS KEY HERE>'
|
|
@ -0,0 +1 @@
|
||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1DbwksyuM2iVU/mSSQb8fcTT3smODyeaztPvpf1eO49dn4MecAcU58zq2g4DKumC5q1bCrMqphY9ea+USSrYpf+Z++fezOsPxad4Mr4ixu0Ha8Vo4CLCfDxcAxZhYulAxnPd2w8gByIQIUnmGZBGyAXuD0Yxi+2cpn3jGWI1N96cwyhSzY0/QmjfeUbqb+pdiEjm/JTBuo/sBmfJmd9QayMvxOz1Rrz1TuO89vm/Vl1P+kIFStoBsEeUH8+YquIPuPqgq3d6H+iU68NNtbpYAwMJS30um4uhu/xO/VHclCafqOuQvYRkjBJARNPmMl/DUcithNCW2AvDctJsZpB1l dxld@Eli
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
logger -t wifi-uplink hotplug "$DEVICE" "$INTERFACE" "$ACTION"
|
||||||
|
|
||||||
|
# 'lan' doesn't work for some reason
|
||||||
|
[ "$INTERFACE" = apctl ] || exit 0
|
||||||
|
|
||||||
|
logger -t wifi-uplink devchange "$DEVICE" "$INTERFACE" "$ACTION"
|
||||||
|
|
||||||
|
[ "$ACTION" = ifup ] && {
|
||||||
|
logger -t wifi-uplink up "$DEVICE" "$INTERFACE" "$ACTION"
|
||||||
|
uci set wireless.@wifi-device[0].disabled=0
|
||||||
|
wifi
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$ACTION" = ifdown ] && {
|
||||||
|
logger -t wifi-uplink down "$DEVICE" "$INTERFACE" "$ACTION"
|
||||||
|
wifi down
|
||||||
|
uci set wireless.@wifi-device[0].disabled=1
|
||||||
|
}
|
23
access-points/files/tl-wr841-v10/etc/uci-defaults/50-config-from-mac
Executable file
23
access-points/files/tl-wr841-v10/etc/uci-defaults/50-config-from-mac
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
mac=$(cat /sys/class/net/wlan0/address)
|
||||||
|
|
||||||
|
hostname=
|
||||||
|
channel=
|
||||||
|
if [ "$mac" = 60:e3:27:b8:16:ec ]; then
|
||||||
|
hostname=cz-ap0
|
||||||
|
channel=6
|
||||||
|
elif [ "$mac" = 60:e3:27:ed:86:9a ]; then
|
||||||
|
hostname=cz-ap1
|
||||||
|
channel=11
|
||||||
|
elif [ "$mac" = 60:e3:27:ed:9b:b0 ]; then
|
||||||
|
hostname=lz-ap0
|
||||||
|
channel=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
uci set system.@system[0].hostname=$hostname
|
||||||
|
uci commit system
|
||||||
|
uci set wireless.radio0.channel=$channel
|
||||||
|
uci commit wireless
|
||||||
|
echo $(uci get system.@system[0].hostname) > /proc/sys/kernel/hostname
|
1
access-points/files/tl-wr841-v10/etc/uci-defaults/51-secrets
Symbolic link
1
access-points/files/tl-wr841-v10/etc/uci-defaults/51-secrets
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../.git/annex/objects/Vk/8w/SHA256E-s95--196dc6eecef78da77ea459b552dc3e0690f7c8e99007105d9715020ba7c60480/SHA256E-s95--196dc6eecef78da77ea459b552dc3e0690f7c8e99007105d9715020ba7c60480
|
Loading…
Reference in a new issue