Firmware.page 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. ---
  2. format: markdown
  3. categories: Netz-Infrastruktur, Nodes
  4. title: Firmware
  5. ...
  6. # Download
  7. Die momentan aktuellen Versionen sind immer hier zu finden:
  8. Autoupdate-Kanal Für neu gekaufte Router (factory) Upgrade von bestehenden Freifunk-Knoten (sysupgrade)
  9. ---------------- ---------------------------------------------------------- -------------------------------------------------------------
  10. **Stabil** (*stable*) <https://images.ffdo.de/ffdo/stable/images/factory/> <https://images.ffdo.de/ffdo/stable/images/sysupgrade/>
  11. Test (*beta*) <https://images.ffdo.de/ffdo/beta/images/factory/> <https://images.ffdo.de/ffdo/beta/images/sysupgrade/>
  12. Experimentell (*experimental*) <https://images.ffdo.de/ffdo/experimental/images/factory/> <https://images.ffdo.de/ffdo/experimental/images/sysupgrade/>
  13. Alle Firmware-Releases, auch archivierte und noch nicht für ein Autoupdate freigegebene Versionen können hier heruntergeladen werden:
  14. <https://images.ffdo.de/ffdo/releases/>
  15. **Falls ihr euch nicht sicher seid, welche Version ihr butzen sollt bitte *immer* die stabilen (stable)-Images nutzen.**
  16. # Versionen
  17. ## Historie
  18. FFDO-Release Gluon-Version Aktuelle Kanäle Netz Erstellt am Erstellt von Änderungen
  19. ------------ ------------- --------------- ----- ----------- ------------ ----------
  20. 0.9.2 2016.1.5 s+b+e neu 01.06.2016 Markus Gluon v2016.1.5, kein Alfred mehr, Support für 841 V11, x86 und x86-64 Images
  21. 0.9.1 2016.1.3 neu 15.04.2016 Markus Ad-Hoc anstatt 802.11s, Gluon v2016.1.3
  22. 0.9.0 2016.1.2 neu 20.03.2016 Markus Umstellung auf neue Supernodes und 802.11s statt Ad-Hoc
  23. 0.8.2 2016.1.3 alt 16.04.2016 Markus Gluon 2016.1.3 mit Fix für Flash-Bug in 2016.1.2
  24. 0.8.1 2016.1.2 alt 20.03.2016 Markus Update auf Gluon 2016.1.2
  25. 0.8.0 2016.1 alt 27.02.2016 Markus Ein Tunnel pro Node, Autoupdate-Keys von FFDO statt FFRL
  26. 0.7.2 2015.1.2 alt Update auf FFRUHR-FFDO Subdomäne
  27. 0.6.1 ffrg
  28. ## Autoupdate
  29. Es gibt drei mögliche Update-Kanäle (*Branches*), aus denen ein Knoten Firmware-Upates automatisch beziehen kann. Eine neu erstellte Firmware durchläuft immer erst die Branches *experimental* und *beta* bevor das Update als *stable* fúr alle Knoten freigegeben wird.
  30. Der zu nutzende Kanal kann im Konfigurationsmodus der Knoten ausgewählt werden. **Als Standard bei neu installierten Knoten ist immer ein Autoupdate über den *stable*-Kanal eingestellt, egal ob die Firmware aus einem anderen Kanal bezogen wurde.** Falls die Einstellung geändert wird bleibt die Änderung aber auch nach einem Update erhalten.
  31. ### Stable
  32. Bei allen Knoten, an die man nicht problemlos ran kommt und die nicht direkt von Menschen aus der FFDO-Community betrieben werden sollte der Autoupdater i.d.r. immer aktiv sein und auf *stable* gestellt sein. Es werden nur ausgiebig getestete Updates verteilt.
  33. ### Beta
  34. Knoten, auf ihr im Notfall physikalischen Zugriff habt können problemlos auf *beta* betrieben werden. Die Updates werden in den Beta-Branch gelegt wenn sie nach der Verteilung über *experimental* keine offensichtlichen Fehler mehr enthalten, aber noch ausgiebig getestet werden müssen bevor sie für alle Knoten freigegeben werden können.
  35. **Es ist wichtig, viele unterschiedliche Router-Modell im Beta-Test zu haben, da vorher nur einige wenige Modelle getestet werden können.**
  36. ### Experimental
  37. Neue Firmware, die für ein Autoupdate vorgesehen ist wird kurz nach der Erstellung in den *experimental*-Branch gelegt. Die Updates sind hier noch nicht ausgiebig getestet, es kann also passieren dass ein Router nicht mehr korrekt funktioniert nach dem Update.
  38. # Entwicklung
  39. ## Buildsystem
  40. Unsere Router-Firmware basiert auf dem [Gluon-Projekt](https://gluon.readthedocs.org/). Die FFDO-spezifische Konfiguration und die zur Erstellung der Firmware genutzten Build-Scripte werden auf Github im Repository [site-ffdo](https://github.com/ffdo/site-ffdo) gepflegt. Der Build-Vorgang ist komplett automatisiert und kann auf jedem Host mit [Docker](https://www.docker.com/) ohne großes Vorwissen nachvollzogen werden.
  41. ## Image-Server
  42. Alle Releases liegen auf <https://images.ffdo.de/ffdo/>
  43. Die Firmware wird im Verzeichnis "releases" versioniert abgelegt:
  44. /ffdo/releases/x.x.x/images
  45. /ffdo/releases/x.x.x/modules
  46. /ffdo/releases/y.y.y/images
  47. /ffdo/releases/y.y.y/modules
  48. Das in einem Branch aktuell ausgelieferte Release wird durch Softlinks festgelegt:
  49. /ffdo/stable -> /ffdo/releases/0.7.2
  50. /ffdo/beta -> /ffdo/releases/0.8.0
  51. /ffdo/experimental -> /ffdo/releases/0.8.1
  52. ## Freigabe von Autoupdates
  53. Damit ein automatisches Update von den Knoten akzeptiert wird muss im Sysupgrade-Verzeichnis ein *Manifest* für das jeweilige Branch liegen (`stable.manifest`, `beta.manifest`, `experimental.manifest`).
  54. Das Manifest enthält SHA512-Checksummen aller Update-Dateien und den Release-Kanal. Das Manifest muss digital unterschrieben sein, damit das Update von den Knoten akzeptiert wird.
  55. Momenten sind folgene Regelungen konfiguriert:
  56. * Stable und Beta benötigen **zwei Unterschriften** zur Freigabe
  57. * Experimental benötigt nur eine Unterschrift.
  58. Schlüssel zum Unterschreiben von Firmware-Releases besitzen Till, Torben, Tim und Markus.