Firmware installieren
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 unserer unterstützten Geräte.
Auch finden sich dort Empfehlungen für Einsteigergeräte.
Die richtige Firmware Variante auswählen
Seit dem Release 20192412 gibt es nun 2 verschiedene Firmwareversionen. Die ganz normale Node Firmware für zentrale Nodes sowie die Layer 3 Firmware für dezentrale Router. Mehr Infos zur Layer 3 Variante findet man hier:
- https://wiki.freifunk-franken.de/w/Gatewayfirmware
- https://wiki.freifunk-franken.de/w/Dezentrale_Hood
Da Freifunk den Charakter hat dezentral zu arbeiten und nicht von zentralen Instanzen abhängig zu sein, empfielt es sich die Layer 3 Variante zu nehmen.
Firmware-Installation
Firmware-Download
Die aktuelle Version findet man hier: https://dev.freifunk-franken.de/node/current/
Für den er-x(-sfp) fehlt in der offiziellen Firmware noch das initramfs. Dieses kann zum aktuellen Zeitpunkt von Fabian bezogen werden: https://fw.sgstbr.de/tools/ (inoffizieller build!)
Adrian Schmutzler stellt verschiedene alternative Firmwares auf seiner Seite zur Verfügung: https://freifunk.jubt.org/fff-firmware.php
Eine Anleitung, wie die aktuelle Firmware gebaut wird oder an der Entwicklung teilgenommen werden kann, gibt es 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.