Freifunk Basics

Flashen allgemein

Download des OpenWRT Images (HW-spezifisch) hier: http://gw01.freifunk-stuttgart.de/gluon/stable/sysupgrade/

Videoanleitung zum Flashen: http://gw01.freifunk-stuttgart.de/gluon/GluonScreencast.mp4

Monitoring

Karte auf https://map.freifunk-stuttgart.de/ oder https://karte.freifunk-stuttgart.de

Einrichtung prinzipiell

  • Download des Freifunk OpenWRT Images („gluon“) von https://firmware.freifunk-stuttgart.de/firmware.php?id=0
  • Installation nach Videoanleitung, Neustart mit OpenWRT Image, Default IP ist 192.168.1.1
  • Grundkonfiguration über den Wizard in der Weboberfläche, ggf. erweiterte EInstellungen für Meshing beachten
  • Der Router generiert ein PGP Schlüsselpaar anhand der Geräte-MAC, das zum Aufbau der VPN Verbindung zu den Freifunk Gateways benötigt wird, Der öffentliche Anteil des Schlüsselpaars (Public Key) wird per Mail an vpn-schluessel@lists.freifunk-stuttgart.net geschickt. Dann die Registrierung abwarten.
  • Nachdem der Schlüssel registriert ist, baut der Router/Access Point automatisch einen VPN Tunnel zu einem der Freifunk Gateways auf.
  • Darstellung in der Karte map.freifunk-stuttgart.net: das erfolgt nur, wenn Positionsdaten (Langen/Breitengrad) im Gerät eingetragen und ihre Übermittlung freigegeben wurde (siehe weiter unten).

Wechsel in den Konfigurations-Modus

Zum Wechsel in den „Konfigurations-Modus“ den Router mit gehaltenem Reset Knopf neu starten (alle LED blinken). Danach gibt der Router Adressen im Bereich 192.168.1.x aus (vorher 172…). Zugriff auf die Web-Oberfläche ohne Passwort über http://192.168.1.1. Alternativ ssh Login auf root@192.168.1.1 auf der LAN Seite des Routers. Nach dem nächsten Neustart geht der Router wieder in den „normalen“ Betriebsmodus.

Zugriff auf einzelne Nodes

Über ssh mit der „Next Node Adresse“: Next Node ist der nächst gelegene Knoten, also derjenige, mit dem man verbunden ist.

IPv6 = fd21:711::1

Alternativ mit der IPv6 Adresse aus der http://map.freifunk-stuttgart.de. Der passende ssh public Key muss im System eingetragen sein!

Oder über einen Jump Host:

ssh -i id_rsa2 -J root@pveroser.freifunk-stuttgart.de root@2a01:1e8:c003:9317:c40f:a7ff:fe81:a92f

Shell Kommandos

Doku: https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration

sowie https://wiki.freifunk.net/konsole

Normaler Reboot

reboot

Nach dem Reboot wieder in den Config Mode starten

uci set gluon-setup.mode.@setup_mode[0].enabled=1 uci commit gluon-setup.mode reboot

ssh Key hinzufügen

SSH*KEY="ssh-rsa…" touch /etc/dropbear/authorized*keys sed -i "SSH*KEY" /etc/dropbear/authorized*keys

Bescheuerte Syntax bei scp mit IPv6:

scp -6 ssh-key-holger-patrick.pub root@[fd21:b4dc:4b05::724f:57ff:fe45:33a2]:/root/

Anzahl der verbundenen Clients

grep -cEo "[.*W. *]+" /sys/kernel/debug/batman*adv/bat0/transtable*local

Name zeigen

uci get system.@system[0].hostname

Name ändern

uci set system.@system[0].hostname='newname'

uci commit system

/etc/init.d/system reload

prüfen

uci show system

Position & Kontakt prüfen

uci show gluon-node-info

Position setzen

uci set gluon-node-info.@location[0].latitude=xx.xxxxxx

uci set gluon-node-info.@location[0].longitude=xx.xxxxxx

uci set gluon-node-info.@location[0].altitude=xx.xxxxxx uci

set gluon-node-info.@location[0].share_location=1

Kontakt setzen

uci get gluon-node-info.@owner[0]

uci add gluon-node-info.@owner[0]

uci set gluon-node-info.@owner.contact=name@adresse.de

uci commit gluon-node-info

sichern

uci commit gluon-node-info

Mesh: Mesh on WAN aktivieren

uci set network.mesh_wan.auto=1 uci commit network /etc/initd./network restart

Mesh: IBSS/AdHoc Mesh WLAN deaktivieren

uci set wireless.ibss_radio0.disabled=1 uci commit wireless wifi

Mesh: 802.11s Mesh WLAN deaktivieren

uci set wireless.mesh_radio0.disabled=1 uci commit wireless wifi

WLAN Kanal zeigen

uci get wireless.radio0.channel

WLAN Kanal ändern

uci set wireless.radio0.channel=X uci commit wireless wifi

WLAN sofort ausschalten

uci set wireless.client_radio0.disabled=1 && uci commit wireless && wifi

Zeitgesteuertes WLAN

Quelle: https://www.freifunk-gera-greiz.de/web/pchblk/home/-/blogs/freifunk-wlan-zeitgesteuert-verfugbar-machen

Als ersten Schritt schalte das Client-Netzwerk ab und sichere den Wert in den Speicher des Routers. Dies erfolgt durch die Befehle:

root@Routername:~# uci set wireless.client_radio0.disabled=1 root@Routername:~# uci commit wireless

Dieser Schritt ist nicht unbedingt nötig, hat allerdings folgenden Effekt. Das Client-Netzwerk ist standardmäßig ausgeschalten. Das bedeutet, wenn jemand Zugriff auf das Gerät bekommt (weil es bspw. in einem Gemeinschaftsbereich o.ä. aufgestellt ist) und den Router neu startet bleibt das WLAN aus. Ohne diese Eingabe reagiert das Gerät bei einem Neustart mit dem anschalten des WLANs.

Die Zeitsteuerung selbst kann man per Cronjob einrichten. Gib dazu folgende Zeile ein:

root@Routername:~# crontab -e

Drücke nun die Taste ‚i‘ um in den Bearbeitungsmodus zu wechseln. Jetzt kannst du die folgenden beiden Zeilen eingeben

30 21 * * * uci set wireless.client*radio0.disabled=1;wifi 0 7 * * * uci set wireless.client*radio0.disabled=0;wifi

Drücke die Escape-Taste (ESC) um den Bearbeitungsmodus zu verlassen. Jetzt schreibe ‚:wq‘ und bestätige mit der Eingabetaste.

Die beiden Zeilen sind wie folgt aufgebaut. (vgl https://de.wikipedia.org/wiki/Cron)

Minute Stunde TagDesMonats Monat Wochentag Anweisungen

Die erste Zeile bedeutet also: In Minute 30 der Stunde 21Uhr zu jedem Tag jedes Monats jeden Wochentags führe das Kommando ‚Client-Netzwerk ausschalten‘ aus. Die zweite Zeile schaltet das Client-Netz dementsprechend um 7Uhr wieder ein.

Würde man das Client-Netz lediglich Montag bis Freitag ausschalten wollen, muss die erste Zeile also wie folgt lauten:

30 21 * * 1-5 uci set wireless.client_radio0.disabled=1;wifi

Die entsprechend muss das WLAN Dienstag bis Samstag wieder aktiviert werden, das bedeutet die zweite Zeile würde wie folgt aussehen:

0 7 * * 2-6 uci set wireless.client_radio0.disabled=0;wifi

Die so eingerichteten Geräte bleiben weiterhin über das Mesh-Netzwerk miteinander in Verbindung bzw. erweitern das bestehende Freifunk-Netz. Lediglich die Anmeldung mit Endgeräten an diesen Punkten ist nicht möglich. Man könnte die zeitgesteuerten Anweisungen auch ausbauen - die LAN-Ports abschalten, die Bandbreite begrenzen, die Sendeleistung herunterfahren - eben alles, was man noch alles verstellen kann.

Bandbreiten Beschränkung

# uci set simple-tc.mesh*vpn.limit*egress=800 # upload 0,8Mbit # uci set simple-tc.mesh*vpn.limit*ingress=5000 # download 5,0Mbit # uci set simple-tc.mesh_vpn.enabled=1 # uci commit simple-tc

Spezielle Ubiquity Einstellungen

Transmit power on Ubiquiti devices

There is a bug in the current (2015/01) OpenWRT Barrier Breaker which prevents to factor in the antenna gain for transmission power setting. This is still existant in Chaos Calmer (Gluon 2016.1). Therefor your device will actually transmit with higher power than advertised in the web-UI. This ist a) usually illegal and b) while clients may receive a great signal they will most likely be unable to answer. To prevent this we lower the power manually. Nanostation

uci set wireless.radio0.txpower=9 uci commit wifi

you can check the currently set transmit power with:

iwinfo radio0 txpower

Warning: Starting with Gluon 2015.1 dive names and transmit power mapping have been changed. If you are on <2015.1 the correct command would be

uci set wireless.radio0.txpower=8 uci commit wifi

ERX als Freifunk Offloader

batctl if del eth0.1; brctl addif br-client eth0.1

Firmware Update per cli

Die GLUON Freifunk Firmware ist ein Abkömmling von OpenWRT und wird in drei unterschiedlichen „branches“ publiziert:

  • stable ist der Standard Zweig für die grosse Masse der Freifunk Nodes
  • experimental und nightly sind neuere Versionen, bei denen bestimmte Funktionen noch im Test sind. Diese Versionen sollten nur gezielt auf einzelnen Geräten und im Rahmen von Tests benutzt werden.

Autoupdater: Branch festlegen

uci set autoupdater.settings.enabled='1'
uci set autoupdater.settings.branch='stable'
uci commit autoupdater

Update manuell anstossen

autoupdater -f

Beim Update einen anderen Branch als den gerade eingestellten benutzen

autoupdater -b [NAMEOFBRANCH] -f