[PATCH] fff-hoods: manually create wifi station interface
Fabian Bläse
fabian at blaese.de
So Jan 5 22:43:22 CET 2020
The mac80211 interface script in OpenWrt depends on wpa_supplicant
for the creation of station interfaces. While this is conveniant, it
isn't strictly necessary for connecting to unencrypted networks.
To be able to create station interfaces if wpa_supplicant is removed,
the station interface for obtaining the initial configuration is now
created using iw commands only.
This makes it possible to replace wpad-mini with hostapd-mini, which
does not include wpa_supplicant and therefore shrinks the uncompressed
binary by around 200KiB.
Signed-off-by: Fabian Bläse <fabian at blaese.de>
---
.../files/etc/uci-defaults/24c-fff-wXsta | 27 -----------------
.../files/usr/lib/functions/fff/hoodfile | 30 +++++++++++--------
2 files changed, 17 insertions(+), 40 deletions(-)
delete mode 100644 src/packages/fff/fff-hoods/files/etc/uci-defaults/24c-fff-wXsta
diff --git a/src/packages/fff/fff-hoods/files/etc/uci-defaults/24c-fff-wXsta b/src/packages/fff/fff-hoods/files/etc/uci-defaults/24c-fff-wXsta
deleted file mode 100644
index e9867b9..0000000
--- a/src/packages/fff/fff-hoods/files/etc/uci-defaults/24c-fff-wXsta
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. /lib/functions/fff/wireless
-
-# Set up wXsta
-for radio in $(wifiListRadio); do
- # wXsta: We can use $freq here, as the initial radios are not set up with auto
- freq="$(wifiGetFreq $radio)"
-
- uci batch <<-__EOF__
- set network.configsta${freq}=interface
- set network.configsta${freq}.proto='static'
-
- set wireless.w${freq}sta='wifi-iface'
- set wireless.w${freq}sta.device='${radio}'
- set wireless.w${freq}sta.network='configsta${freq}'
- set wireless.w${freq}sta.ifname='w${freq}sta'
- set wireless.w${freq}sta.mode='sta'
- set wireless.w${freq}sta.ssid='config.franken.freifunk.net'
- set wireless.w${freq}sta.disabled='1'
- __EOF__
-done
-
-uci commit network
-uci commit wireless
-
-# vim: set noexpandtab:tabstop=4
diff --git a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
index b148eca..d9119ac 100644
--- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
+++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
@@ -15,29 +15,33 @@ getWirelessHoodfile() {
# Set channel to auto, enable wXsta, disable other interfaces
for radio in $(wifiListRadio); do
- uci set "wireless.${radio}.channel=auto"
-
freq="$(wifiGetFreq $radio)"
uci set wireless.w${freq}ap.disabled='1'
uci set wireless.w${freq}mesh.disabled='1'
uci set wireless.w${freq}configap.disabled='1'
- uci set wireless.w${freq}sta.disabled='0'
done
uci commit wireless
reload_config
- wifi
- # wait a moment to start the interface
- sleep 10;
+ # wait for wireless interfaces to vanish
+ sleep 5;
- if /bin/busybox wget -T15 -O "$file" "http://[fe80::1%w2sta]:2342/keyxchangev2data"; then
- return 0
- elif /bin/busybox wget -T15 -O "$file" "http://[fe80::1%w5sta]:2342/keyxchangev2data"; then
- return 0
- else
- return 1
- fi
+
+ for phy in $(ls /sys/class/ieee80211); do
+ iw phy $phy interface add configsta type managed
+ ip link set up configsta
+ iw dev configsta connect -w config.franken.freifunk.net 2>/dev/null
+
+ if /bin/busybox wget -T15 -O "$file" "http://[fe80::1%configsta]:2342/keyxchangev2data"; then
+ iw dev configsta del
+ return 0
+ fi
+
+ iw dev configsta del
+ done
+
+ return 1
}
getEthernetHoodfile() {
--
2.24.1
Mehr Informationen über die Mailingliste franken-dev