firmware/src/packages/fff/fff-wireless/files/etc/uci-defaults/24a-fff-wireless
Adrian Schmutzler 776cfe9f86 treewide: add "exit 0" for uci-defaults files
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>
2020-04-23 12:00:17 +02:00

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