#!/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