[LEDE-DEV] [PATCH v2 2/5] mac80211: use uci to generate wireless config file
Christian Lamparter
chunkeey at googlemail.com
Tue Oct 11 04:37:37 PDT 2016
Previously, wifi detect simply dumped its generated wireless
configuration out 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.
Note: uci writes a "cfg123456" printout to stdout when it
generates a name for the unnamed section ("add wireless wifi-iface").
Since we currently pipe wifi detect into /etc/config/wireless, we
have to redirected this output, so it doesn't end up in the wireless
configuration file.
Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
---
package/kernel/mac80211/files/lib/wifi/mac80211.sh | 45 +++++++++++-----------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
index 9b15de5..253de40 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 > /dev/null <<-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
+
+ add wireless wifi-iface
+ set wireless. at wifi-iface[-1].device=radio${devidx}
+ set wireless. at wifi-iface[-1].network=lan
+ set wireless. at wifi-iface[-1].mode=ap
+ set wireless. at wifi-iface[-1].ssid=LEDE
+ set wireless. at wifi-iface[-1].encryption=none
EOF
- devidx=$(($devidx + 1))
- done
-}
+ uci commit -q &> /dev/null
+ devidx=$(($devidx + 1))
+ done
+}
--
2.9.3
More information about the Lede-dev
mailing list