forked from freifunk-franken/firmware
Adrian Schmutzler
776cfe9f86
uci-defaults scripts are supposed to be run once after firstboot and then removed. However, the removal only takes place if the subshell created for the sourced scripts returns exit code 0. For some of the files, the last command returned a different exit code, though, leading to the script remaining in its location and being executed for every boot. To prevent cases like the latter, this adds an "exit 0" to all uci-defaults files in our package store. While at it, remove the shebang for all these files since they are sourced (and not executed). Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Reviewed-by: Fabian Bläse <fabian@blaese.de>
86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
# Copyright 2016 Tim Niemeyer
|
|
# Copyright 2019 Adrian Schmutzler
|
|
# License GPLv3
|
|
|
|
. /lib/functions.sh
|
|
. /lib/functions/fff/wireless
|
|
|
|
removeWifiIface() {
|
|
local name="$1"
|
|
uci del "wireless.$name"
|
|
}
|
|
|
|
configWifiDevice() {
|
|
local radio="$1"
|
|
local freq="$(wifiGetFreq $radio)"
|
|
|
|
[ "$freq" = "2" ] && uci set "wireless.${radio}.legacy_rates=0"
|
|
|
|
# detect 802.11ac capable radio and set htmode appropriately
|
|
local htmode="HT20"
|
|
uci -q get wireless.${radio}.htmode | grep VHT && htmode="VHT20"
|
|
|
|
# Comments
|
|
# wXmesh: use 802.11s mesh as "default"
|
|
|
|
uci batch <<-__EOF__
|
|
set wireless.${radio}.htmode='${htmode}'
|
|
set wireless.${radio}.country='DE'
|
|
set wireless.${radio}.disabled='0'
|
|
|
|
set wireless.w${freq}ap='wifi-iface'
|
|
set wireless.w${freq}ap.device='${radio}'
|
|
set wireless.w${freq}ap.network='mesh'
|
|
set wireless.w${freq}ap.ifname='w${freq}ap'
|
|
set wireless.w${freq}ap.mode='ap'
|
|
set wireless.w${freq}ap.ssid='noservice.freifunk'
|
|
set wireless.w${freq}ap.encryption='none'
|
|
set wireless.w${freq}ap.hidden='0'
|
|
set wireless.w${freq}ap.disabled='0'
|
|
|
|
set network.w${freq}mesh='interface'
|
|
set network.w${freq}mesh.mtu='1560'
|
|
set network.w${freq}mesh.proto='batadv_hardif'
|
|
set network.w${freq}mesh.master='bat0'
|
|
|
|
set wireless.w${freq}mesh='wifi-iface'
|
|
set wireless.w${freq}mesh.device='${radio}'
|
|
set wireless.w${freq}mesh.network='w${freq}mesh'
|
|
set wireless.w${freq}mesh.ifname='w${freq}mesh'
|
|
set wireless.w${freq}mesh.mode='mesh'
|
|
set wireless.w${freq}mesh.mesh_id='nomesh.freifunk'
|
|
set wireless.w${freq}mesh.encryption='none'
|
|
set wireless.w${freq}mesh.mesh_fwding=0
|
|
set wireless.w${freq}mesh.disabled='0'
|
|
|
|
set network.configap${freq}=interface
|
|
set network.configap${freq}.proto='static'
|
|
set network.configap${freq}.ip6addr='fe80::1/64'
|
|
|
|
set wireless.w${freq}configap='wifi-iface'
|
|
set wireless.w${freq}configap.device='${radio}'
|
|
set wireless.w${freq}configap.network='configap${freq}'
|
|
set wireless.w${freq}configap.ifname='w${freq}configap'
|
|
set wireless.w${freq}configap.mode='ap'
|
|
set wireless.w${freq}configap.ssid='config.franken.freifunk.net'
|
|
set wireless.w${freq}configap.encryption='none'
|
|
set wireless.w${freq}configap.hidden='1'
|
|
set wireless.w${freq}configap.disabled='1'
|
|
__EOF__
|
|
}
|
|
|
|
# Remove WiFi config
|
|
config_load wireless
|
|
config_foreach removeWifiIface wifi-iface
|
|
|
|
# Set up WiFi devices and interfaces, but leave the latter disabled
|
|
config_load wireless
|
|
config_foreach configWifiDevice wifi-device
|
|
|
|
uci commit network
|
|
uci commit wireless
|
|
|
|
exit 0
|
|
|
|
# vim: set noexpandtab:tabstop=4
|