59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
version=`uci -q get base_config.@status[0].version`
|
|
hostname=`uci -q get system.@system[0].hostname`
|
|
test -n "${hostname}" || hostname="OpenWrt"
|
|
|
|
wifi_setup_radio(){
|
|
local radio=$1
|
|
htmode="$(uci get wireless.${radio}.htmode)"
|
|
local widx=0
|
|
while uci rename wireless.@wifi-iface[$widx]=default_radio$widx >/dev/null 2>&1; do widx=$((widx+1)); done
|
|
uci -q get wireless.${radio} >/dev/null 2>&1 && {
|
|
uci -q del wireless.${radio}.disabled
|
|
uci -q set wireless.${radio}.country='US'
|
|
uci -q set wireless.${radio}.channel='auto'
|
|
|
|
if [ "$(uci -q get wireless.${radio}.band)" = "5g" ]; then
|
|
uci -q set wireless.default_${radio}.ssid="${SSID}_5G"
|
|
if test -z "${htmode##HE*}"; then
|
|
uci -q set wireless.${radio}.htmode="HE160"
|
|
else
|
|
uci -q set wireless.${radio}.htmode="VHT80"
|
|
fi
|
|
else
|
|
uci -q set wireless.${radio}.htmode="HT40"
|
|
uci -q set wireless.default_${radio}.ssid="${SSID}_2.4G"
|
|
fi
|
|
uci -q set wireless.default_${radio}.device="${radio}"
|
|
if [ "${SSID_PASSWD}" ]; then
|
|
uci -q set wireless.default_${radio}.encryption='psk2'
|
|
uci -q set wireless.default_${radio}.key="${SSID_PASSWD}"
|
|
else
|
|
uci -q set wireless.default_${radio}.encryption='none'
|
|
fi
|
|
}
|
|
}
|
|
|
|
test $version -lt 3 && {
|
|
uci set firewall.@defaults[0].flow_offloading='1'
|
|
uci commit firewall
|
|
|
|
[ -f /etc/config/wireless ] && {
|
|
SSID=${hostname}
|
|
SSID_PASSWD=""
|
|
( while ! cat /etc/config/wireless | grep "radio0"; do
|
|
sleep 1
|
|
done
|
|
for radio in radio0 radio1 radio2 radio3; do
|
|
wifi_setup_radio ${radio}
|
|
done
|
|
uci commit wireless
|
|
wifi reload
|
|
) &
|
|
}
|
|
}
|
|
|
|
uci -q set base_config.@status[0].version=3
|
|
uci commit base_config
|