knb:firmware

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
knb:firmware [2022/01/15 23:10]
goligo [Gluon]
knb:firmware [2022/01/15 23:13] (aktuell)
goligo
Zeile 39: Zeile 39:
 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. 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.+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 ​====+==== OpenWrt ​====
  
-[[https://​openwrt.org/​|OpenWRT ​Dokumentation]] +[[https://​openwrt.org/​|OpenWrt ​Dokumentation]] 
-[[https://​openwrt.org/​docs/​guide-developer/​source-code/​start|OpenWRT ​Source Code]]+[[https://​openwrt.org/​docs/​guide-developer/​source-code/​start|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. +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. 
  
 [[https://​openwrt.org/​toh/​start?​dataflt[Supported+Current+Rel*~]=21.02|Liste unterstützter Geräte der aktuellen Version 21.02]] [[https://​openwrt.org/​toh/​start?​dataflt[Supported+Current+Rel*~]=21.02|Liste unterstützter Geräte der aktuellen Version 21.02]]
Zeile 52: Zeile 52:
 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. 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.
  
-[[https://​openwrt.org/​packages/​index/​start|OpenWRT ​Pakete]]+[[https://​openwrt.org/​packages/​index/​start|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. ​+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 ==== ==== Gluon ====
Zeile 65: Zeile 65:
 [[https://​gluon.readthedocs.io/​en/​v2021.1.1/​user/​supported_devices.html|Unterstützte Geräte v2021.1.1]] [[https://​gluon.readthedocs.io/​en/​v2021.1.1/​user/​supported_devices.html|Unterstützte Geräte v2021.1.1]]
  
-Der Gluon-Build funktioniert so, dass zunächst die Git-Repositories von OpenWRT ​und der zusätzlichen Gluon-spezifischen Pakete geladen werden. Dann werden Patches auf diese Projekte angewendet, um Fehler zu beheben, die im Upstream noch nicht gefixed sind, oder zusätzliche Features zu implementieren,​ die nicht über Pakete abgebildet werden können. Der OpenWRT-Build wird so konfiguriert,​ dass zum Beispiel das OpenWRT-UI LuCi weggelassen und durch das Gluon-UI ersetzt wird. Dann wird der OpenWRT-Build gestartet, um die Images zu bauen.+Der Gluon-Build funktioniert so, dass zunächst die Git-Repositories von OpenWrt ​und der zusätzlichen Gluon-spezifischen Pakete geladen werden. Dann werden Patches auf diese Projekte angewendet, um Fehler zu beheben, die im Upstream noch nicht gefixed sind, oder zusätzliche Features zu implementieren,​ die nicht über Pakete abgebildet werden können. Der OpenWrt-Build wird so konfiguriert,​ dass zum Beispiel das OpenWrt-UI LuCi weggelassen und durch das Gluon-UI ersetzt wird. Dann wird der OpenWrt-Build gestartet, um die Images zu bauen.
  
 ==== FFMUC ==== ==== FFMUC ====
Zeile 110: Zeile 110:
 **GLUON_TARGETS** **GLUON_TARGETS**
  
-Hier kann man ein oder mehrere Targets angeben, für die Images gebaut werden sollen. Zum Testen empfiehlt sich eine VM zu benutzen, in der man x86-64 Images laufen lassen kann. Wenn man Firmware für ein bestimmtes Gerät bauen will, so muss man erst herausfinden,​ in welchem Target es enthalten ist. Hier lohnt sich ein Blick auf der Liste der unterstützten Geräte von OpenWRT ​oder Gluon.+Hier kann man ein oder mehrere Targets angeben, für die Images gebaut werden sollen. Zum Testen empfiehlt sich eine VM zu benutzen, in der man x86-64 Images laufen lassen kann. Wenn man Firmware für ein bestimmtes Gerät bauen will, so muss man erst herausfinden,​ in welchem Target es enthalten ist. Hier lohnt sich ein Blick auf der Liste der unterstützten Geräte von OpenWrt ​oder Gluon.
  
 <code bash> <code bash>
Zeile 171: Zeile 171:
 Die Motivation selber ein Firmware-Image zu bauen liegt oft darin, dass man ein Gerät hat, für das FFMUC keine Firmware anbietet. Da gibt es unterschiedliche Schwierigkeitsgrade,​ je nachdem wie weit der Support für diese Geräte in den zugrunde liegenden Frameworks schon vorhanden ist. Die Motivation selber ein Firmware-Image zu bauen liegt oft darin, dass man ein Gerät hat, für das FFMUC keine Firmware anbietet. Da gibt es unterschiedliche Schwierigkeitsgrade,​ je nachdem wie weit der Support für diese Geräte in den zugrunde liegenden Frameworks schon vorhanden ist.
  
-=== Kein OpenWRT ​Support ===+=== Kein OpenWrt ​Support ===
  
-Als erstes ist zu prüfen, ob OpenWRT ​das Gerät schon unterstützt. Sollte dies nicht der Fall sein, sieht es schlecht aus. Ein neues Gerät in OpenWRT ​zu supporten ist aufwendig und verlangt tiefgehendes Wissen über den verwendeten SoC, den Boot-Prozess,​ weitere Hardware die darin verbaut ist. Hier heisst es warten, ob/wann eine Unterstützung in OpenWRT ​kommt. Leider gibt es viele beliebte FritzBox Geräte, für die es absehbar keine Unterstütung geben wird (z.B. 7390, 7490).+Als erstes ist zu prüfen, ob OpenWrt ​das Gerät schon unterstützt. Sollte dies nicht der Fall sein, sieht es schlecht aus. Ein neues Gerät in OpenWrt ​zu supporten ist aufwendig und verlangt tiefgehendes Wissen über den verwendeten SoC, den Boot-Prozess,​ weitere Hardware die darin verbaut ist. Hier heisst es warten, ob/wann eine Unterstützung in OpenWrt ​kommt. Leider gibt es viele beliebte FritzBox Geräte, für die es absehbar keine Unterstütung geben wird (z.B. 7390, 7490).
  
 === Kein Gluon Support === === Kein Gluon Support ===
  
-Wenn OpenWRT-Support vorhanden ist, aber kein Gluon-Support,​ dann sieht es schon etwas besser aus. Entweder ist das Gerät noch nicht vollständig unterstützt und deswegen absichtlich weggelassen oder es ist so exotisch, dass noch keiner danach verlangt hat. Man kann erstmal schauen, ob es vielleicht im "​next"​ Branch schon enthalten ist, also für das kommende Release geplant ist. Man kann auch händisch die entsprechende Targets-Datei in Gluon dafür ergänzen bzw. anlegen und hat eine reelle Chance, dass ein funktionierendes Image herauskommt.+Wenn OpenWrt-Support vorhanden ist, aber kein Gluon-Support,​ dann sieht es schon etwas besser aus. Entweder ist das Gerät noch nicht vollständig unterstützt und deswegen absichtlich weggelassen oder es ist so exotisch, dass noch keiner danach verlangt hat. Man kann erstmal schauen, ob es vielleicht im "​next"​ Branch schon enthalten ist, also für das kommende Release geplant ist. Man kann auch händisch die entsprechende Targets-Datei in Gluon dafür ergänzen bzw. anlegen und hat eine reelle Chance, dass ein funktionierendes Image herauskommt.
  
 [[https://​github.com/​freifunk-gluon/​gluon/​tree/​master/​targets|master-Branch Targets]] [[https://​github.com/​freifunk-gluon/​gluon/​tree/​master/​targets|master-Branch Targets]]
  • knb/firmware.txt
  • Zuletzt geändert: 2022/01/15 23:13
  • von goligo