[RFC PATCH v3 8/8] Configures wireless with parameter from Hood-Files
Tim Niemeyer
tim at tn-x.org
Mo Jun 13 20:12:49 CEST 2016
Hi
Am 13. Juni 2016 20:10:01 MESZ, schrieb mayosemmel <mayosemmel at googlemail.com>:
>Am Sonntag, den 12.06.2016, 22:59 +0200 schrieb Tim Niemeyer:
>> Hi
>>
>> Alles in allem: Prima Sache!
>Danke
>>
>> Bitte trotzdem die Wifi-Anpassungen in Patch 1 mit einbringen.
>Du meinst den ganzen Patch in Patch 1 mergen?
>
Jop. :) da wurde das selbe ja (mit dem alten Mechanismus) umgesetzt. Hier ist nur n Update auf den neuen Mechanismus.
Tim
>>
>> Am Sonntag, den 12.06.2016, 14:17 +0200 schrieb Jan Kraus:
>> > Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
>> > ---
>> > community/aux.cfg | 8 +--
>> > community/franken.cfg | 8 +--
>> > .../fff/fff-hoods/files/usr/sbin/configurehood | 69
>++++++++++++----------
>> > src/packages/fff/fff-wireless/Makefile | 4 +-
>> > .../fff/fff-wireless/files/etc/config/wireless | 0
>> > .../files/etc/uci-defaults/60-fff-wireless | 43
>--------------
>> > .../fff-wireless/files/lib/functions/fff/wireless | 7 ++-
>> > 7 files changed, 46 insertions(+), 93 deletions(-)
>> > delete mode 100644
>src/packages/fff/fff-wireless/files/etc/config/wireless
>> > delete mode 100644
>src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> >
>> > diff --git a/community/aux.cfg b/community/aux.cfg
>> > index b1b921f..1a54400 100644
>> > --- a/community/aux.cfg
>> > +++ b/community/aux.cfg
>> > @@ -1,8 +1,2 @@
>> > -BATMAN_CHANNEL=1
>> > -BATMAN_CHANNEL_5GHZ=36
>> > -ESSID_AP=aux.franken.freifunk.net
>> > -ESSID_MESH=batman.franken.freifunk.net
>> > -BSSID_MESH=CA:FF:EE:BA:BE:01
>> > -VPN_PROJECT=fffaux
>>
>> Oh ja.. Aux kicken wir damit grad raus. Von mir aus völlig ok, war
>mMn
>> eh nur ne Zwischenlösung. Es gibt aber auf der anderen Seite noch
>keine
>> Alternative. Später soll es ja mal möglich sein die Hood manuell via
>> web-ui o.ä. zu wählen. Da könnte man dann eine aux auswählen.
>Ich denke, diese Feature sollte vor einem Release kommen.
>>
>> Aktuell geht das alles nicht, können/wollen wir uns das erlauben die
>Aux
>> Hood hiermit zu begraben? Ich denke: Ja, weil die Ressourcen da
>aktuell
>> eh dünn sind und die Leute vermutlich eh lange zum Updaten brauchen.
>Bis
>> die dann Updaten wird die extra Hood nicht mehr nötig sein.
>Plan war nicht, die Aux damit zu kicken. Da wir mit dem Dezentralen
>KeyExchange ja sowieso ortsunabhängige Hoods ermöglichen wollen, sind
>die Community Files nur Overhead.
>
>Grüße Jan
>>
>> Tim
>>
>> > NTPD_IP=fe80::ff:feee:1%br-mesh
>> >
>-UPGRADE_PATH=http://[fe80::ff:feee:1%br-mesh]/dev/firmware/aux/current
>> >
>+UPGRADE_PATH=http://[fe80::ff:feee:1%br-mesh]/dev/firmware/aux/current
>> > \ No newline at end of file
>> > diff --git a/community/franken.cfg b/community/franken.cfg
>> > index 833e98e..b5ad7e1 100644
>> > --- a/community/franken.cfg
>> > +++ b/community/franken.cfg
>> > @@ -1,8 +1,2 @@
>> > -BATMAN_CHANNEL=1
>> > -BATMAN_CHANNEL_5GHZ=36
>> > -ESSID_AP=franken.freifunk.net
>> > -ESSID_MESH=batman.franken.freifunk.net
>> > -BSSID_MESH=02:CA:FF:EE:BA:BE
>> > -VPN_PROJECT=fff
>> > NTPD_IP=fe80::ff:feee:1%br-mesh
>> > -UPGRADE_PATH=http://[fe80::ff:feee:1%br-mesh]/dev/firmware/current
>> > +UPGRADE_PATH=http://[fe80::ff:feee:1%br-mesh]/dev/firmware/current
>> > \ No newline at end of file
>> > diff --git
>a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> > index 46b0807..5251be1 100755
>> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> > @@ -3,6 +3,7 @@
>> > HOODDIR=/etc/hoods
>> >
>> > . /usr/share/libubox/jshn.sh
>> > +. /lib/functions/fff/wireless
>> >
>> > myLat=$(uci get 'system. at system[0].latitude')
>> > myLon=$(uci get 'system. at system[0].longitude')
>> > @@ -78,42 +79,48 @@ json_get_var meshessid mesh_essid
>> > json_get_var essid essid
>> > json_get_var channel2 channel2
>> > json_get_var mode2 mode2
>> > -json_get_var protocol protocol
>> > json_get_var type2 type2
>> > +json_get_var channel5 channel5
>> > +json_get_var mode5 mode5
>> > +json_get_var type5 type5
>> > +json_get_var protocol protocol
>> >
>> > echo "Setting hood name: $hood"
>> > -echo "Setting channel 2.4 Ghz: $channel2"
>> > -echo "Setting mode 2.4 GHz: $mode2"
>> > -echo "Setting mesh 2.4 GHz type: $type2"
>> > +uci set system. at system[0].hood=$hood
>> >
>> > -#echo "Shutting down wifi"
>> > -#wifi down
>> > +if ! wifiDelAll; then
>> > + echo "Can't delete current wifi setup"
>> > + exit 1
>> > +fi
>> >
>> > -uci set system. at system[0].hood=$hood
>> > -uci set wireless.radio0=wifi-device
>> > -uci set wireless.radio0.type=mac80211
>> > -uci set wireless.radio0.channel=$channel2
>> > -uci set wireless.radio0.phy=phy0
>> > -uci set wireless.radio0.hwmode=11g
>> > -uci set wireless.radio0.htmode=$mode2
>> > -uci set wireless.radio0.country=DE
>> > -uci set wireless. at wifi-iface[0]=wifi-iface
>> > -uci set wireless. at wifi-iface[0].device=radio0
>> > -uci set wireless. at wifi-iface[0].network=w2mesh
>> > -uci set wireless. at wifi-iface[0].ifname=w2mesh
>> > -uci set wireless. at wifi-iface[0].mode=$type2
>> > -uci set wireless. at wifi-iface[0].bssid=$bssid
>> > -uci set wireless. at wifi-iface[0].ssid=$meshessid
>> > -uci set wireless. at wifi-iface[0].mcast_rate=6000
>> > -uci set wireless. at wifi-iface[0].encryption=none
>> > -uci set wireless. at wifi-iface[1]=wifi-iface
>> > -uci set wireless. at wifi-iface[1].device=radio0
>> > -uci set wireless. at wifi-iface[1].network=mesh
>> > -uci set wireless. at wifi-iface[1].ifname=w2ap
>> > -uci set wireless. at wifi-iface[1].mode=ap
>> > -uci set wireless. at wifi-iface[1].ssid=$essid
>> > -uci set wireless. at wifi-iface[1].encryption=none
>> > -uci commit
>> > +for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>> > + if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
>> > + echo "$phy is 2.4 GHz"
>> > + radio=$(wifiAddPhy "$phy" "$channel2" "$mode2")
>> > + if [ -z "$radio" ]; then
>> > + echo "Can't create radio for $phy"
>> > + exit 1
>> > + fi
>> > + fi
>> > + if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
>> > + echo "$phy is 5 GHz"
>> > + radio=$(wifiAddPhy "$phy" "$channel5" "mode5")
>> > + if [ -z "$radio" ]; then
>> > + echo "Can't create radio for $phy"
>> > + exit 1
>> > + fi
>> > + fi
>> > +
>> > + if ! wifiAddAP "$radio" "$essid"; then
>> > + echo "Can't add AP interface on $radio0."
>> > + exit 1
>> > + fi
>> > +
>> > + if ! wifiAddAdHocMesh "$radio" "$mesh_essid" "$mesh_bssid"; then
>> > + echo "Can't add AP interface on $radio0."
>> > + exit 1
>> > + fi
>> > +done
>> >
>> > echo "Loading wifi"
>> > wifi
>> > diff --git a/src/packages/fff/fff-wireless/Makefile
>b/src/packages/fff/fff-wireless/Makefile
>> > index 12456e5..046d932 100644
>> > --- a/src/packages/fff/fff-wireless/Makefile
>> > +++ b/src/packages/fff/fff-wireless/Makefile
>> > @@ -1,8 +1,8 @@
>> > include $(TOPDIR)/rules.mk
>> >
>> > PKG_NAME:=fff-wireless
>> > -PKG_VERSION:=0.0.1
>> > -PKG_RELEASE:=1
>> > +PKG_VERSION:=0.0.2
>> > +PKG_RELEASE:=2
>> >
>> > PKG_BUILD_DIR:=$(BUILD_DIR)/fff-wireless
>> >
>> > diff --git
>a/src/packages/fff/fff-wireless/files/etc/config/wireless
>b/src/packages/fff/fff-wireless/files/etc/config/wireless
>> > deleted file mode 100644
>> > index e69de29..0000000
>> > diff --git
>a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> > deleted file mode 100644
>> > index 59239b3..0000000
>> > ---
>a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> > +++ /dev/null
>> > @@ -1,43 +0,0 @@
>> > -#!/bin/sh
>> > -# Copyright 2016 Tim Niemeyer
>> > -# License GPLv3
>> > -
>> > -. /lib/functions/fff/wireless
>> > -
>> > -. /etc/community.cfg
>> > -
>> > -if ! wifiDelAll; then
>> > - echo "Can't delete current wifi setup"
>> > - exit 1
>> > -fi
>> > -
>> > -for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>> > - if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
>> > - echo "$phy is 2.4 GHz"
>> > - radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
>> > - if [ -z "$radio" ]; then
>> > - echo "Can't create radio for $phy"
>> > - exit 1
>> > - fi
>> > - fi
>> > - if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
>> > - echo "$phy is 5 GHz"
>> > - radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL_5GHZ")
>> > - if [ -z "$radio" ]; then
>> > - echo "Can't create radio for $phy"
>> > - exit 1
>> > - fi
>> > - fi
>> > -
>> > - if ! wifiAddAP "$radio" "$ESSID_AP"; then
>> > - echo "Can't add AP interface on $radio0."
>> > - exit 1
>> > - fi
>> > -
>> > - if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH"; then
>> > - echo "Can't add AP interface on $radio0."
>> > - exit 1
>> > - fi
>> > -done
>> > -
>> > -# vim: set noexpandtab:tabstop=4
>> > diff --git
>a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> > index 59c8ce2..69bc000 100644
>> > ---
>a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> > +++
>b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> > @@ -15,14 +15,15 @@ wifiDelAll() {
>> > }
>> >
>> > wifiAddPhy() {
>> > - if [ $# -ne "2" ]
>> > + if [ $# -ne "3" ]
>> > then
>> > - echo "Usage: wifiAddPhy <phy> <channel>"
>> > + echo "Usage: wifiAddPhy <phy> <channel> <htmode>"
>> > return 1
>> > fi
>> >
>> > local phy=$1
>> > local channel=$2
>> > + local htmode=$3
>> > local radio="radio$(echo $phy | tr -d -C [0-9])"
>> > local hwmode="11g"
>> > if [ "$channel" -gt "14" ]; then
>> > @@ -35,7 +36,7 @@ wifiAddPhy() {
>> > set wireless.${radio}.channel='${channel}'
>> > set wireless.${radio}.phy='${phy}'
>> > set wireless.${radio}.hwmode='${hwmode}'
>> > - set wireless.${radio}.htmode='HT20'
>> > + set wireless.${radio}.htmode='${htmode}'
>> > set wireless.${radio}.country='DE'
>> > commit wireless
>> > __EOF__
>> > --
>> > 2.1.4
>> >
>>
Mehr Informationen über die Mailingliste franken-dev