---
format: markdown
categories: Netz-Infrastruktur, Nodes
title: 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 

![](https://grafana.ffdo.de/render/dashboard-solo/db/firmwareubersicht?panelId=1&orgId=1&theme=light&width=720&height=480&from=now-7d&to=now)

## Historie

FFDO-Release Gluon-Version Aktuelle Kanäle Netz  Erstellt am Erstellt von Änderungen
------------ ------------- --------------- ----- ----------- ------------ ----------
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](https://gluon.readthedocs.io/en/v2017.1.7/releases/v2017.1.7.html)
0.11.6       2017.1.6      e               neu   19.04.2018  Cajus        DNS Cache deaktiviert, div. Bugfixes [gluon doc 2017.1.6](http://gluon.readthedocs.io/en/v2017.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](http://gluon.readthedocs.io/en/v2017.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](http://gluon.readthedocs.io/en/v2017.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](http://gluon.readthedocs.io/en/v2016.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](http://gluon.readthedocs.io/en/v2016.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](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. 

## 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](https://github.com/ffdo/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](https://raw.githubusercontent.com/ffdo/gluon-provisioner/master/examples/gluon-provisioner.yaml)) 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 und Cajus