Portal:Firmware

Aus Freifunk Franken

Der wichtigste Hinweis zuerst

Einen Freifunk-Router stellt man nicht einfach hin und überlässt ihn sich selbst (Wie es eigentlich für sämtliche am Internet angeschlossene Geräte gilt, wenn es auch oft genug nicht beachtet wird). Sondern man übernimmt langfristig Verantwortung, v.a. was regelmäßige Updates und Übernahme größerer Änderungen im Netzwerk angeht. Diese werden mit hinreichend großem Vorlauf angekündigt. Wenn diese trotzdem nicht beachtet werden läuft man Gefahr, dass der Router irgendwann nicht mehr funktioniert oder, wenn er Störungen im Netz produziert, gesperrt wird. Das gilt gerade auch für Freifunk-Router, wo eigene Modifikationen (die wir explizit unterstützen, solange sie das Netz nicht stören und kompatibel zu unseren Netz sind) vorgenommen wurden.

Der Routeraufsteller/Betreiber ist für seinen Router verantwortlich. Dies gilt auch für die Einstellungen wie z.b. Sendeleistung.

Auch sollte man zumindest grundlegendes Interesse an der Technik mitbringen. Aber keine Panik: Freifunk-Router sind im Allgemeinen sehr pflegeleicht.

Durch das Betreiben eines Freifunkrouters stimmt man dem PicoPeeringAgreement zu.

Firmware-Installation

Aktuell ist die Version 20181202: https://dev.freifunk-franken.de/firmware/current/

Adrian Schmutzler stellt verschiedene alternative Firmwares auf seiner Seite zur Verfügung: https://freifunk.jubt.org/fff-firmware.php

Fabian Bläse stellt alternative dezentrale Gateway Firmwares auf seiner Seite zur Verfügung: https://fw.sgstbr.de/gateway/


Eine Anleitung, wie die aktuelle Firmware gebaut wird oder an der Entwicklung teilgenommen werden kann, gibt es hier.


Installationsanleitung für Erstinstallation

Lieferinhalt (WR841ND)

am Beispiel TP-Link WR841N(D) und TP-Link WR1043N(D)

Bitte beachte die Reihenfolge

  1. Melde dich für Informationen, Hilfe und Kontakt zur Community bei unserer Mailingliste an.
  2. Router flashen (= Firmware installieren).
  3. Router konfigurieren.

Auspacken

  • Router (1) auspacken, Teile auf Vollständigkeit überprüfen.
  • Falls die Antenne (2) noch nicht angeschlossen ist, schraubt man diese jetzt an.
  • Das Netzteil (3) für die Stromversorgung des Routers und das LAN-Kabel (4) braucht man später.
    • Es sollte immer das original Netzteil verwendet werden, um Probleme während dem Flashen zu vermeiden.

Firmware (Erst-)Installation

Router Rückseite
  • Hier eine Liste der Routertypen, welche für die Freifunk-Franken-Firmware geeignet sind.
  • Herauszufinden, welche Firmware man braucht, ist ganz einfach: der Routertyp (1) und die Hardwareversion (2) stehen auf der Unterseite des Routers. Dabei unbedingt den richtigen Typ und die richtige Hardware-Version wählen!
  • Die passende aktuelle Firmware herunterladen.

Ggf. muss der Dateiname gekürzt werden! Manche Router verweigern das Flashen der Firmware aus der Herstellersoftware, wenn der Dateiname zu lang ist. Dafür einfach den Namen der Datei anpassen und nur 8 Zeichen stehen lassen.

    • Die Factory-Version ist zu verwenden, wenn von der Herstellersoftware geflasht wird.
    • Die Sysupgrade-Version braucht man, wenn von einem bereits installierten OpenWRT (bzw. Freifunk-Firwmare) geflasht wird.
gelbe Buchse
  • Den Computer mit einem LAN-Kabel mit einem der gelben LAN-Anschüsse des neuen Routers verbinden. Darauf achten, dass einer der beiden vom blauen Port am weitesten entfernten Ports verwendet wird.
  • Den Router an Strom anschließen und einschalten.
  • Warten, bis der eigene Computer eine gültige IP-Adresse bekommen hat. (Falls dies nicht klappt, den Rechner neu starten und prüfen, ob die IP-Adresse automatisch vom Router bezogen wurde.)
  • Mit dem Browser im Webinterface des Routers einloggen. Nutzername und Passwort stehen auf der Unterseite des Routers; normalerweise funktioniert: http://admin:admin@192.168.0.1
Firmware-Update
  • Unter dem Menüpunkt "System Tools" –> "Firmware Upgrade" die vorher heruntergeladene Firmware zum Gerät schicken.
  • Geduldig warten, bis der Router neu startet (max. 4 Minuten) Während die Installation läuft, darf der Stecker und das Netzwerk-Kabel nicht abgezogen werden.
  • Jetzt muss man sich neu mit dem Router verbinden. Dafür müssen die beiden am weitesten vom blauen Anschluss entfernten Ports verwendet werden! Der WAN Anschluss (blau) sollte dabei noch nicht mit dem Internet verbunden sein, damit man zuerst ein Passwort setzen kann!
  • Über die Adresse https://[fdff::1] auf den frisch geflashten Freifunkrouter gehen und die Sicherheitswarnung ignorieren: "Diese Verbindung ist nicht sicher" SEC_ERROR_UNKNOWN_ISSUER
    • Achtung: Sicherheitswarnungen dürfen nur ignoriert werden, wenn man genau weiß, was man tut. In diesem Fall hat der Router kein von einer CA signiertes Zertifikat für die Adresse, daher wird ein selbstsigniertes Zertifikat verwendet.
  • Falls die Seite nicht aufgerufen werden kann, gibt es noch mehr Möglichkeiten.
  • Es kommt das Login der Weboberfläche. Benutzer: root Passwort: ffol
  • Das Standardpasswort des Routers gleich ändern und aufschreiben z.B. mit einem Stift auf dem Router. Siehe auch: Neues Passwort setzen.
  • Unter Einstellungen den Standort eingeben. Der Standort sollte möglichst genau angegeben werden
  • Eine Kontaktmöglichkeit ist nach dem PPA Pflicht um ein Freifunknetz zu betreiben. Im Router kann dazu eine E-Mail Adresse hinterlegt werden.

Somit kann so im FFF Monitoring der Router deinem Account zugeordnet werden. Dazu dort mit der gleichen Mailadresse registrieren.

  • Den Router neustarten.
  • Fertig!

Konfigurieren über das Webinterface

Folge der Anleitung für Zugriff auf das Webinterface. (Vor der Firmware Version 20160213-beta wurde Netmon zum konfigurieren benötigt, dies ist seither nicht mehr erforderlich).

Wichtig:
Der Ortseintrag im Webinterface ist für die korrekte Funktion des Freifunknetzes von hoher Bedeutung. Das Freifunk-Franken Netz ist in verschiedene Hoods segmentiert (Vgl. Portal:Netz). Ein in die falsche Hood oder ein nicht eingetragener Router, der mit anderen Routern mesht, umgeht die beabsichtigte Segmentierung und verbindet die jeweiligen Hoods auf Level 2 Ebene miteinander, wo lediglich ein Level 3 Routing stattfinden sollte.

Dies ist die momentan häufigste Ursache für Schwierigkeiten und Performance-Defizite im Freifunk Netz.

Wer seinen Standort nicht bekannt geben möchte, möge ihn im Webinterface in der gleichen Hood, in welche der Router seinen tatsächlichen Standort hat, an einem beliebigen anderen Ort platzieren.

Die Aufteilung der Hoods kann man in der Monitoring-Map sehen, indem man im Overlay (rechte obere Ecke) die Checkbox "Hoods" aktiviert.

Die richtige Angabe des tatsächlichen Standorts erachten wir selbstverständlich für vorteilhafter, u.a. weil dies das Finden von Mesh-Partnern erleichtert. Wer keinen Standort angeben möchte, möge sich einen beliebigen innerhalb derselben Hood aussuchen.

Inbetriebname

Meshverbindung

Hat sich der Router schon mit einen Nachbarrouter vermesht, ist er direkt in Betrieb und vergrößert von nun an das Freifunknetz.

VPN-Verbindung

Ist kein weiterer Freifunkrouter in Reichweite, kann der Router auch über den blauen WAN Port mit dem Internet verbunden werden. Es wird dann eine VPN Verbindung über das Internet zu unseren Gatewayservern aufgebaut, und der Router ist nach einiger Zeit (5-30 Minuten) per VPN mit dem Freifunknetz verbunden.

Es sollte pro Internetuplink nur ein Router eine VPN Verbindung aufbauen. Werden an einen Standort mit einen Internetuplink mehrer Router betrieben, so sollten alle weiteren Router per B.A.T.M.A.N. miteinander verbunden werden. Der stärkste Router sollte an den Internetuplink angebunden werden.

B.A.T.M.A.N.-Ports

Die B.A.T.M.A.N.-Ports dürfen auch an einen Switch sternförmig zusammen geschlossen werden. Es sollte allerdings vermieden werden, an einen Switch ein normales Netzwerk und B.A.T.M.A.N. gleichzeitig zu betreiben, da dies zu unvorhersehbaren Ereignissen führen kann. Sollte dennoch gewünscht werden, über ein Kabel oder an einen Switch mehrere Netzwerke mit B.A.T.M.A.N. zu verwenden, so sollten die Netze in getrennte VLANs geführt werden. Eine Grundlegende Anleitung zu VLANs ist hier zu finden, allerdings in einem anderen Zusammenhang.

Natürlich verbinden sich die Router auch per Funk miteinander, wo immer es möglich ist sollte aber aus Geschwindigkeitsgründen ein Kabel verwendet werden. Für weitere Strecken sollten 5GHz Richtfunkverbindungen verwendet werden, Infos dazu hier.

Firmware-Update

Versionierung

Beim Techniktreffen vom 06.02.2016 wurde ein neues Versionierungsschema beschlossen. Am 10.02.2016 wurden noch einige Details geklärt.

Begründung

Wir haben leider nicht die Men-Power um immer sicherzustellen, dass die Kompatibilität nach einem Release noch oder eben nicht mehr vorhanden ist. Dadurch ist der Interpretationsspielraum bei regulären Versionsnummern sehr hoch. Um diesen Spielraum abzuschaffen, steigen wir auf das Datumsschema um.

Schema

Die Versionsnummer orientiert sich grundsätzlich am Commit-Datum des letzten Commits. Auf diesen Commit wird dann entsprechend das Git-Tag gesetzt. Daraus ergibt sich folgendes Schema:

Build ohne release Tag: YYYYMMDD-[Anzahl commits seit vorherigem Release]-[Commit-ID]
Alpha: YYYYMMDD-alpha
Beta: YYYYMMDD-beta
Release: YYYYMMDD

Sonderfall

Für den seltenen Fall, dass es mehrere Tags an einem Tag geben muss, wird der Präfix entsprechend angepasst. Daraus ergibt sich folgendes Schema:

Build ohne release Tag: YYYYMMDD.[1-n]-[Anzahl commits seit vorherigem Release]-[Commit-ID]
Alpha: YYYYMMDD.[1-n]-alpha
Beta: YYYYMMDD.[1-n]-beta
Release: YYYYMMDD.[1-n]

Beispiele

Folgendes Beispiel geht davon aus, dass es eine Alpha und eine Beta Version auf dem selben Commit gegeben hat. In der Beta wurde am selben Tag ein massives Problem festgestellt, deshalb gab es eine neue Beta. Diese basiert auf einem neueren Commit und wird später auch so released.

20160130-alpha
20160130-beta
20160130.1-beta
20160130.1

Das nächste Beispiel geht davon aus, dass es auf dem selben Commit eine Alpha, Beta und Stable gibt:

20160130-alpha
20160130-beta
20160130

Noch eine Bitte

Bitte melde dich bei unserer Mailingliste an! Die Infos dazu gibt es unter Kommunikation. Dort gibt es auch Hilfe und Support bei der Installation. Danke!

Siehe auch

Kommandoliste auf den Freifunk-Routern

Auf dem Router läuft DD-WRT

Mitunter bekommt man einen gebrauchten Router, auf dem nicht die Original-Firmware, sondern DD-WRT läuft. Dann ist ein Flashen der Freifunk-Firmware via Webinterface nicht möglich, da DD-WRT nur DD-WRT-Firmware flasht.

Mit folgendem Vorgehen habe ich mehrere TP-Link TL-1043ND mit DD-WRT darauf geflasht (von Linux aus):

Zunächst muss Telnet aktiviert werden. Hierzu per Webinterface anmelden, und unter „Administration“ den Telnet-Zugriff aktivieren.

Dann wird die Firmware auf den Router kopiert. Es wird die „sysupgrade“-Variante benötigt, in meinem Fall „fff-20181202-ar71xx-g-tl-wr1043nd-v1-squashfs-sysupgrade.bin“.

Die einfachste Variante, die Firmware auf den Router zu bekommen, ist, sie von da aus per wget von einem Webserver abzuholen. Entweder verwendet man einen richtigen HTTP-Server, oder behilft sich – wie im folgenden beschrieben – mit dem Mini-Webserver, den Python mitbringt:

Der Einfachheit halber macht man zunächst eine Kopie mit einem griffigeren Namen:

cp fff-20181202-ar71xx-g-tl-wr1043nd-v1-squashfs-sysupgrade.bin firmware.bin

Dann startet man im selben Verzeichnis den Mini-Python-Webserver:

python -m http.server

Der Server lauscht auf 0.0.0.0 (also allen verfügbaren Netzwerkinterfaces) auf dem Port 8000. Wenn man in einem Webbrowser die Adresse 127.0.0.1:8000 öffnet, sieht man ein Directory Listing (incl. der Datei „firmware.bin“).

Dann auf dem Router einoggen (der Router hatte hier die IP-Adresse 192.168.11.1):

telnet 192.168.11.1

Dann die Firmware nach /tmp kopieren (der Client hatte hier die IP-Adresse 192.168.11.147):

cd /tmp
wget http://192.168.11.147:8000/firmware.bin

und schließlich die Firmware flashen mit

mtd -r write /tmp/firmware.bin linux

Der Router startet neu und begrüßt einen dann mit der Freifunk-Firmware.

FF-Router mit Original-Firmware flashen

Manchmal will man einen FF-Router wieder mit der Original-FW des Herstellers flashen. Hier folgen die Anleitungen:

TP-Link WR 841

Erfolgreich durchgeführt wurde folgendes Vorgehen für die Version 11 des Routers. bei anderen funktioniert es vermutlich genauso, bitte ergänzen!

Zunächst braucht man die Original-Firmware, erhältlich von der Hersteller-Seite. In meinem Fall war es ein Zip-Archiv, das zunächst noch entpackt werden musste und neben der Firmware noch die GPL und eine Anleitung enthielt.

So geht man unter Linux vor:

Wenn das Firmware-Image „boot“ enthält, muss zunächst der Boot-Part entfernt werden. Das geht sehr einfach mittels dd. In meinem Fall hieß die Firmware-Datei wr841ndv11_en_3_16_9_up_boot(150616).bin.

dd if=wr841ndv11_en_3_16_9_up_boot(150616).bin of=tl-wr841n_v11-orig.bin skip=257 bs=512

Die Ausgabedatei (in diesem Fall tl-wr841n_v11-orig.bin) muss dann auf den Router. Das geht am einfachsten per scp und direkter LAN-Verbindung. Also eine LAN-Verbindung zum Router herstellen, am einfachsten per DHCP. Der Router ist dann unter fdff::1 zu erreichen.

Folgendermaßen kann man dann das Image auf den Router kopieren (bei scp über IPV6 muss man die eckigen Klammern um die IP-Adresse mit einem Backslash escapen):

scp -6 tl-wr841n_v11-orig.bin root@\[fdff::1\]:/tmp/

Dann per ssh auf dem Router einloggen:

ssh root@fdff::1

und schließlich das draufkopierte Image flashen (der Befehl muss natürlich auf der Konsole des Routers ausgeführt werden):

mtd -r write /tmp/tl-wr841n_v11-orig.bin firmware

Das war’s schon! Es kommen noch ein paar Sekunden Schreib-Meldungen, dann schmeißt einen der Router raus und startet neu — und begrüßt einen nach dem Reboot mit der Original-Firmware.