Portal:Firmware

Aus Freifunk Franken
(Weitergeleitet von Firmware)

Der wichtigste Hinweis zuerst

Einen Freifunkrouter 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 Freifunkrouter, 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: Freifunkrouter sind im Allgemeinen sehr pflegeleicht.

Durch das Betreiben eines Freifunkrouters stimmt man dem Pico Peering Agreement (PPA) zu.

Die richtige Hardware auswählen

Das Portal Hardware enthält eine Liste aktuell unterstützter Geräte.

Für den Einstieg und einfache Anwendungen bietet sich momentan z. B. ein GL-iNet AR-150 an, da der Router relativ günstig zu haben ist (April 2019: unter 30 €), über ordentliche Hardware verfügt und die Installation der Freifunkfirmware sehr einfach ist.

Auch einen älteren (gebrauchten) TP-Link TL-WR1043N/ND – bei dem die Firmwareinstallation analog zu der folgenden Anleitung erfolgt – bekommt man recht günstig.

Der unten genannte TP-Link TL-WR841N/ND sollte nicht mehr verwendet werden, da die aktuelle Hardwarerevision nicht mehr unterstützt wird, und der Speicherplatz von nur 4 MB recht knapp bemessen ist – in absehbarer Zeit wird die Firmware dafür zu groß werden. Wenn man einen TL-WR841N/ND mit passender Hardwarerevision bereits hat, ist es aber natürlich nach wie vor möglich, den Router für Freifunk zu verwenden, solang es noch geht.

Anschlüsse der Router und deren Aufgabe

Den LAN-Buchsen an einem mit der Freifunkfirmware geflashten Router kommen verschiedene Aufgaben zu. Vor der Installation ist es sinnvoll, sich kurz damit auseinanderzusetzen, damit es später keine Probleme gibt.

Es werden drei verschiedene Funktionen unterschieden:

  • WAN: Über diesen Anschluss („Wide Area Network“) bekommt der Router seine Internetverbindung. Oft ist dieser Port extra beschriftet, abgesetzt und/oder hat eine andere Farbe als die anderen. Dieser Port muss z. B. an dem Router angeschlossen werden, der die Internetverbindung zur Verfügung stellt.
  • Client: An einem Client-Port kann ein Gerät per LAN-Kabel angeschlossen werden, was das Freifunk-Netz benutzen will.
  • B.A.T.M.A.N.: Andere Freifunk-Router können, wenn sie mittels B.A.T.M.A.N.-Ports miteinander verbunden sind, per LAN statt WLAN miteinander kommunizieren und das Mesh-Netzwerk aufbauen (was immer einer kabellosen Verbindung vorzuziehen ist).

Die Freifunk-fähigen Router haben verschieden viele Netzwerkanschlüsse, die unterschiedlich belegt und genutzt werden können. Normalerweise gibt es fünf, zwei oder einen LAN-Port.

Beispiele

Als Beispiele seien folgende Modelle genannt:

TP-Link WR1043ND V1

TP-Link WR1043ND V1 ports.jpg

Hier gibt es fünf LAN-Anschlüsse. Der blaue ist für den WAN-Uplink verantwortlich. Die beiden gelben daneben sind per Voreinstellung auf „B.A.T.M.A.N.“ gesetzt und die beiden am weitesten vom WAN-Port entfernten auf „Client“.

GL-iNet AR150

GL-iNet AR150 ports.jpg

Hier gibt es zwei LAN-Anschlüsse. Der mit „WAN“ beschriftete ist der WAN-Uplink, der mit „LAN“ beschriftete ist per Voreinstellung ein „Client“-Port.

Ubiquiti Picostation M2HP

Ubiquiti Picostation M2HP ports.jpg

Eine Ubiquiti Picostation hat, genau wie z. B. eine Nanostation, nur einen LAN-Port. Dieser ist per Voreinstellung ein „Client“-Port.

Einstellen der Funktion der LAN-Anschlüsse

Je nach Modell kann (per Webinterface oder mittels SSH direkt auf der Konsole) die Funktion der LAN-Anschlüsse eingestellt werden. Bei manchen Routern (wie z. B. dem TP-Link WR1043ND) kann man die Funktion der Ports beliebig aufteilen (z. B. einen B.A.T.M.A.N.-Port und drei Client-Ports), bei anderen (z. B. der FRITZ!Box 4040) ist nur das Festlegen einer Funktion für alle Ports möglich.

Vorsicht: Wenn es keinen Client-Port gibt, dann ist der Zugriff auf den Router nur per WLAN möglich! So ist z. B. eine Picostation mit eigenem WAN-Uplink nicht per LAN zu erreichen! Da selbe würde für einen AR150 gelten, wenn man die Funktion des Ports auf B.A.T.M.A.N. stellt.

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 TL-WR841N/ND und TL-WR1043N/ND

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. Alternativ ist (wohl eher für Fortgeschrittene) auch die Konfiguration per SSH und Konfigurationsdateien möglich.

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 welcher der Router seinen tatsächlichen Standort hat, an einem beliebigen anderen Ort platzieren. Die richtige Angabe des tatsächlichen Standorts ist selbstverständlich immer zu bevorzugen, u. a. weil dies das Finden von Mesh-Partnern erleichtert.

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

Inbetriebname

Meshverbindung

Kann der Router einen Nachbar-Freifunk-Router sehen und baut eine Mesh-Verbindung zu ihm auf, ist er direkt in Betrieb und vergrößert von nun an das Freifunknetz.

VPN-Verbindung

Ist kein weiterer Freifunk-Router in Reichweite, muss der Router über einen WAN-Uplink mit dem Internet verbunden werden (prinzipiell sind natürlich viele Uplinks immer wünschenswert, auch wenn es Mesh-Router gibt!). Es wird dann eine VPN-Verbindung zu unseren Gatewayservern über das Internet aufgebaut, und der Router ist nach einiger Zeit (5–30 Minuten) per VPN mit dem Freifunknetz verbunden.

Es sollte pro Internet-Uplink nur ein Router eine VPN-Verbindung aufbauen. Werden an einen Standort mit einen Internet-Uplink mehrere Router betrieben, so sollten alle weiteren Router per B.A.T.M.A.N. miteinander verbunden werden (entweder per LAN via B.A.T.M.A.N.-Ports, was die zu bevorzugende Verbindung ist, oder WLAN). Der stärkste Router sollte an den Internet-Uplink 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, doch wo immer es möglich ist, sollte aber aus Geschwindigkeits- und Stabilitäsgrü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.