knb:firmware

Dies ist eine alte Version des Dokuments!


Firmware selber bauen

Bild: Freifunk München Logo

Auf dieser Seite geht es darum, wie man selber die Freifunk-Firmware kompilieren und Firmware-Images erzeugen kann. Als normaler Freifunk-Nutzer oder Knotenbetreiber gibt es keinen Grund das zu tun, man kann einfach die bereitgestellte Firmware benutzen. Aber wenn man helfen will Fehler in der Firmware zu beheben, neue Geräte zu unterstützen oder sich dafür interessiert, wie das eigentlich alles funktioniert, dann ist man hier richtig.

Benötigt wird ein ausreichend schneller Rechner (wenigstens Intel i5 oder Ryzen 5 Prozessor) mit einem aktuellen Linux entweder nativ oder als virtuelle Maschine und 20 GB Platz auf der Festplatte, dann kann es losgehen. Je tiefer man einsteigen will, umso mehr Kenntnisse braucht man in Linux, Shell, C, Lua, sowie allgmein Netzwerktechnik und Netzwerkprotokollen.

Das hier sind ohne viel Erklärung die Schritte aufgelistet um einmal die Quelltexte herunterzuladen und ein Firmware-Image zu erzeugen. Weiter unten wird dann genauer erklärt wie alles aufgebaut ist und zusammen spielt. So wie es hier steht ist es getestet auf Ubuntu 20.04 Desktop, sollte aber genauso auf anderen Linux-Distributionen funktionieren.

Dependencies installieren:

sudo apt install git make python2 libncurses5-dev libncursesw5-dev gcc g++ gawk

Git-Repository klonen:

git clone https://github.com/freifunkMUC/site-ffm

Ins site-ffm Verzeichnis wechseln

cd site-ffm

Firmware-Build starten für die Plattform „x86-64“

make GLUON_TARGETS="x86-64"

Jetzt heisst es etwas Geduld aufbringen. Je nachdem wie schnell die Internet-Verbindung und der Rechner ist, dauert das ganze etwa zwei Stunden, bis ein Firmware-Image herausfällt. Man findet es dann im Unterverzeichnis „output“.

Natürlich kann die Freifunk-Community in München nicht selber eigene Software für so viele verschiedene Routermodelle schreiben, sondern greift auf bestehende Opensource-Projekte zurück, die entsprechend den Anforderungen konfiguriert, kombiniert und angepasst werden, um zu einer Firmware zu kommen, die unseren Bedürfnissen entpricht.

Die Grundlage der Firmware ist OpenWRT, eine Linux-Distribution um die Standardfirmware von Endkunden-Routern zu ersetzen. Diese wird von Gluon erweitert und konfiguriert, so dass sie nicht mehr als normaler Heimnetzrouter funktioniert, sondern als Freifunk-Mesh-Router. Freifunk München wiederum sucht aus, für welche Router Firmware gebaut werden soll, welche Funktionen von Gluon aktiviert sind und hat zusätzliche Pakete geschrieben, um neue Funktionen hinzufügen.

OpenWRT Dokumentation OpenWRT Source Code

OpenWRT stellt alternative Router-Firmware für eine große Zahl von Endkunden-Routern (z.B. von D-Link, Netgear, TP-Link, AVM, Unifi) basierend auf Linux zur Verfügung. Dabei ist der Funktionsumfang von OpenWRT in der Regel größer als der der Originalfirmware und es gibt Updates für Modelle, die beim Hersteller schon aus der Wartung sind.

Liste unterstützter Geräte der aktuellen Version 19.07

Da es sich um eine Linux-Distribution handelt ist eine große Menge Software-Pakete verfügbar, der auf der Geräten installiert werden kann. Es gibt einen Paketmanager namens „opkg“ mit dem Software aus dem Repository installiert werden kann.

OpenWRT Pakete

Der OpenWRT-Build ist umfangreich und komplex, aufgrund der Unterstützung vieler verschiedener Hardware-Plattformen. Da der Build in der Regel auf einem x86-64-System läuft, muss zunächst für jede Plattform eine entsprechende Cross-Compile-Toolchain aufgebaut werden, mit der dann der Linux-Kernel, das Userland und schliesslich die OpenWRT-Pakete für die jeweilige Plattform gebaut werden können.

Gluon Dokumentation Gluon Source Code

Gluon wird von vielen Freifunk-Communities genutzt. Es bietet genug Funktionalität in der Grundausstattung, um von kleinen Communities ohne viel Anpassung eingesetzt werden zu können, aber auch genug Flexibilität um eigene Komponenten einzubinden (wie zum Beispiel die Verwendung des Wireguard-Tunnels beim Freifunk München). Gluon unterstützt nur eine Teilmenge der Routermodelle, die für den Einsatz im Freifunk zweckmässig sind und getestet wurden.

Unterstützte Geräte

  • knb/firmware.1619221830.txt.gz
  • Zuletzt geändert: 2021/04/23 23:50
  • von goligo