Firmware

Download

Die momentan aktuellen Versionen sind immer hier zu finden:

Autoupdate-Kanal Für neu gekaufte Router (factory) Upgrade von bestehenden Freifunk-Knoten (sysupgrade)
Stabil (stable) https://images.ffdo.de/ffdo/stable/images/factory/ https://images.ffdo.de/ffdo/stable/images/sysupgrade/
Test (beta) https://images.ffdo.de/ffdo/beta/images/factory/ https://images.ffdo.de/ffdo/beta/images/sysupgrade/
Experimentell (experimental) https://images.ffdo.de/ffdo/experimental/images/factory/ https://images.ffdo.de/ffdo/experimental/images/sysupgrade/

Alle Firmware-Releases, auch archivierte und noch nicht für ein Autoupdate freigegebene Versionen können hier heruntergeladen werden: https://images.ffdo.de/ffdo/releases/

Falls ihr euch nicht sicher seid, welche Version ihr butzen sollt bitte immer die stabilen (stable)-Images nutzen.

Versionen

Aktuelle Verteilung der Firmware Versionen

Historie

FFDO-Release Gluon-Version Aktuelle Kanäle Netz Erstellt am Erstellt von Änderungen
0.11.8 2017.1.8 e neu 14.07.2018 Cajus TP-Link Archer C7 V4, TP-Link TL-WR940N V6, Ubiquiti UniFi AC Mesh gluon doc 2017.1.8
0.11.7 2017.1.7 e neu 02.06.2018 Cajus Fehler bei Update von Ubiquiti Routern beseitigt/gemildert: gluon doc 2017.1.7
0.11.6 2017.1.6 e neu 19.04.2018 Cajus DNS Cache deaktiviert, div. Bugfixes gluon doc 2017.1.6
0.11.5 2017.1.5 e neu 28.02.2018 Cajus DNS Cache, GL Innovations GL-AR300M, TP-Link TL-WR1043N v5, Ubiquiti EdgeRouter-X, Ubiquiti EdgeRouter-X SFP, gluon doc 2017.1.5
0.11.2 2017.1.2 e neu 01.01.2018 Cajus Erste Version von ffdo auf Basis von lede statt openwrt. gluon doc 2017.1.2
0.10.3 2016.2.7 e+b+s neu 06.10.2017 Cajus TP-Link TL-WR841N/ND v12; gluon doc 2016.2.7
0.10.2 2016.2.3 e+b+s neu 13.02.2017 Markus TP-Link TL-WR940N v4, TP-Link TL-WR1043ND v4; gluon doc 2016.2.3
0.10.1 2016.2.2 neu 02.02.2017 Markus TP-Link CPE210/510, TL-WA801N/ND v3, TL-WR841ND v11
0.10.0 2016.2.1 neu 12.11.2016 Markus Gluon v2016.2.1, keine 802.11b-1999 Rates mehr, viele neue Geräte
0.9.2 2016.1.5 neu 01.06.2016 Markus Gluon v2016.1.5, kein Alfred mehr, Support für 841 V11, x86 und x86-64 Images
0.9.1 2016.1.3 neu 15.04.2016 Markus Ad-Hoc anstatt 802.11s, Gluon v2016.1.3
0.9.0 2016.1.2 neu 20.03.2016 Markus Umstellung auf neue Supernodes und 802.11s statt Ad-Hoc
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
0.8.1 2016.1.2 alt 20.03.2016 Markus Update auf Gluon 2016.1.2
0.8.0 2016.1 alt 27.02.2016 Markus Ein Tunnel pro Node, Autoupdate-Keys von FFDO statt FFRL
0.7.2 2015.1.2 alt Update auf FFRUHR-FFDO Subdomäne
0.6.1 ffrg

Geplante Versionen

Derzeit in der Vorbereitung oder Planung befindliche Versionen:

FFDO-Release Gluon-Version Netz Erstellt von Änderungen
1.0.x 2016.2.7 neu Cajus MS-Konzept: Aufteilung in 11(?) Domänen, L2TP,…
2.0.x 2017.1.8 neu Cajus MS-Konzept: Aufteilung in 11(?) Domänen, L2TP,…
3.0.0 2018.1. neu Multidomain support in one Firmware image(?)

Autoupdate

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.

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.

Stable

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.

Beta

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.

Es ist wichtig, viele unterschiedliche Router-Modell im Beta-Test zu haben, da vorher nur einige wenige Modelle getestet werden können.

Experimental

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.

Entwicklung

Buildsystem

Unsere Router-Firmware basiert auf dem Gluon-Projekt. Die FFDO-spezifische Konfiguration und die zur Erstellung der Firmware genutzten Build-Scripte werden auf Github im Repository site-ffdo gepflegt. Der Build-Vorgang ist komplett automatisiert und kann auf jedem Host mit Docker ohne großes Vorwissen nachvollzogen werden.

Image-Server

Alle Releases liegen auf https://images.ffdo.de/ffdo/

Die Firmware wird im Verzeichnis “releases” versioniert abgelegt:

/ffdo/releases/x.x.x/images
/ffdo/releases/x.x.x/modules
/ffdo/releases/y.y.y/images
/ffdo/releases/y.y.y/modules

Das in einem Branch aktuell ausgelieferte Release wird durch gluon-provisioner festgelegt. Damit ist möglich einzelne Router, Routergruppen oder mit verschiedenen Version der Firmware zu versorgen. Dazu passt man die Datei /etc/gluon-provisioner.yaml an (siehe Beispiel) und startet den gluon-provisioner mit sudo systemctl restart gluon-provisioner.service neu.

Freigabe von Autoupdates

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). 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.

Momenten sind folgene Regelungen konfiguriert:

  • Stable und Beta benötigen zwei Unterschriften zur Freigabe
  • Experimental benötigt nur eine Unterschrift.

Schlüssel zum Unterschreiben von Firmware-Releases besitzen Till, Torben, Tim, Markus, Stefan und Cajus

Firmware Unterschreiben in der neuen Struktur

Mit der neuen Struktur ist die Firmware für die verschiedenen Domänen in unterschiedliche Verzeichnisse verteilt. Das Zertifizieren der Manifeste kann sehr mühsam sein. Es gibt einen einfachen Weg, wenn der Unterzeichner sich per ssh auf images.ffdo.de einloggen kann. Zuerst besorgt man sich das ‘sign.sh’ tool aus github:

wget https://raw.githubusercontent.com/ffdo/site-ffdo-l2tp/master/sign.sh 
chmod u+x sign.sh

Wenn man dann seinen private Schlüssel in einer Datei gespeichert hat, zB $HOME/secret.txt, kann man mit

sudo find /data/images.ffdo.de/ffdo_ng/domaenen/domaene*/releases/2.0.3 -name "*.manifest" -exec $HOME/sign.sh $HOME/secret.txt {} \;

auf einen Schlag die 2.0.3er Versionen aller Domänen signieren. Ggf muss die Versionsnummer an die aktuelle Version angepasst werden. Die Datei mit dem privaten Schlüssel sollte anschließend gelöscht werden. Das ‘sign.sh’ Tool kann für die nächste Version verbleiben.