summaryrefslogtreecommitdiff
path: root/package/kernel/mac80211/files/lib/wifi/mac80211.sh
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@googlemail.com>2016-10-17 15:59:13 +0200
committerFelix Fietkau <nbd@nbd.name>2016-11-03 11:08:01 +0100
commit5e35b4562fb73aaa1c75a3404fed2efb6afe03f8 (patch)
tree6158914891186bf0015814228d513d7693da2c61 /package/kernel/mac80211/files/lib/wifi/mac80211.sh
parentba3540db6223a0107fd78decafea702a0537af7a (diff)
downloadmtk-20170518-5e35b4562fb73aaa1c75a3404fed2efb6afe03f8.zip
mtk-20170518-5e35b4562fb73aaa1c75a3404fed2efb6afe03f8.tar.gz
mtk-20170518-5e35b4562fb73aaa1c75a3404fed2efb6afe03f8.tar.bz2
base-files, mac80211, broadcom-wl: use uci to populate wireless config
Previously, wifi detect simply dumped its generated wireless configuration to STDOUT. A second step was needed to append the configuration to /etc/config/wireless (or create it, if it didn't exist). With this patch, The wifi detection script will now use uci to update the wireless configuration directly. This patch also makes the initially created wifi-iface a named section ('default_radio$X' for mac80211 and 'default_wl$X' for broadcom). With this change, uci will not print the cfgHASH to STDOUT (which would now corrupt the wireless configuration). It will also prevent adding duplicated wifi interface configurations, if the wifi configuration is run concurrently. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'package/kernel/mac80211/files/lib/wifi/mac80211.sh')
-rw-r--r--package/kernel/mac80211/files/lib/wifi/mac80211.sh43
1 files changed, 21 insertions, 22 deletions
diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
index 9b15de5..4bfc742 100644
--- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
@@ -92,7 +92,7 @@ detect_mac80211() {
htmode="VHT80"
}
- [ -n $htmode ] && append ht_capab " option htmode $htmode" "$N"
+ [ -n $htmode ] && ht_capab="set wireless.radio${devidx}.htmode=$htmode"
if [ -x /usr/bin/readlink -a -h /sys/class/ieee80211/${dev} ]; then
path="$(readlink -f /sys/class/ieee80211/${dev}/device)"
@@ -104,30 +104,29 @@ detect_mac80211() {
case "$path" in
platform*/pci*) path="${path##platform/}";;
esac
- dev_id=" option path '$path'"
+ dev_id="set wireless.radio${devidx}.path='$path'"
else
- dev_id=" option macaddr $(cat /sys/class/ieee80211/${dev}/macaddress)"
+ dev_id="set wireless.radio${devidx}.macaddr=$(cat /sys/class/ieee80211/${dev}/macaddress)"
fi
- cat <<EOF
-config wifi-device radio$devidx
- option type mac80211
- option channel ${channel}
- option hwmode 11${mode_band}
-$dev_id
-$ht_capab
- # REMOVE THIS LINE TO ENABLE WIFI:
- option disabled 1
-
-config wifi-iface
- option device radio$devidx
- option network lan
- option mode ap
- option ssid LEDE
- option encryption none
-
+ uci -q batch <<-EOF
+ set wireless.radio${devidx}=wifi-device
+ set wireless.radio${devidx}.type=mac80211
+ set wireless.radio${devidx}.channel=${channel}
+ set wireless.radio${devidx}.hwmode=11${mode_band}
+ ${dev_id}
+ ${ht_capab}
+ set wireless.radio${devidx}.disabled=1
+
+ set wireless.default_radio${devidx}=wifi-iface
+ set wireless.default_radio${devidx}.device=radio${devidx}
+ set wireless.default_radio${devidx}.network=lan
+ set wireless.default_radio${devidx}.mode=ap
+ set wireless.default_radio${devidx}.ssid=LEDE
+ set wireless.default_radio${devidx}.encryption=none
EOF
- devidx=$(($devidx + 1))
+ uci -q commit wireless
+
+ devidx=$(($devidx + 1))
done
}
-