[PATCH] fff-hoods: manually create wifi station interface
Christian Dresel
fff at chrisi01.de
Di Jan 7 14:10:46 CET 2020
Hi
200KiB sind sehr wertvolle 200KiB von mir ein klares:
Acked-by: Christian Dresel <fff at chrisi01.de>
Code hab ich mir jetzt noch nicht näher angeguckt.
Gruß
Christian
On 05.01.20 22:43, Fabian Bläse wrote:
> 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() {
>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 833 bytes
Beschreibung: OpenPGP digital signature
URL : <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20200107/816ddeb3/attachment.sig>
Mehr Informationen über die Mailingliste franken-dev