Autoupdater
Mittels der Autoupdate-Funktion können Freifunkrouter automatisch auf dem aktuellen Stand der Firmware gehalten werden.
Autoupdate auf Rheinbacher Knoten
Für die Autoupdate-Funktion müssen ein oder mehrerer Update-Server in der Datei site.conf konfiguriert werden. Für die Rheinbacher Software wird ein TP-LINK TL-WR1043v2 als Fileserver genutzt. Hier liegen die Images auf einem USB_Stick. Die Konfiguration ist in der Datei site.conf abgelegt und sieht zur Zeit wie folgt aus:
... autoupdater = { enabled = false, branch = 'stable', branches = { stable = { name = 'stable', mirrors = { 'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/stable/images/sysupgrade/' }, good_signatures = 1, pubkeys = { '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514' -- Thomas }, }, stableusb = { name = 'stableusb', mirrors = { 'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/stableusb/images/sysupgrade/' }, good_signatures = 1, pubkeys = { '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514' -- Thomas }, }, }, }, ...
Das Autoupdate ist zur Zeit deaktiviert und muss (wenn gewünscht) nach der Installation von Hand aktiviert werden.
Auf dem Router ergibt dies folgende Konfiguration. Der Eintrag option enabled '0' bedeutet Autoupdate deaktiviert.
package autoupdater config autoupdater 'settings' option version_file '/lib/gluon/release' option branch 'stableusb' option enabled '0' config branch 'stable' list mirror 'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/stable/images/sysupgrade/' option good_signatures '1' option name 'stable' list pubkey '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514' config branch 'stableusb' list mirror 'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/stableusb/images/sysupgrade/' option good_signatures '1' option name 'stableusb' list pubkey '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514'
Nachträgliche Aktivierung des Autoupdate
Die Autoupdate-Funktion lässt sich über den Setup Modus nachträglich aktivieren. Einfacher geht es auf der Kommandozeile.
uci set autoupdater.settings.enabled='0' ; uci commit autoupdater
Autoupdate ohne Neuinstallation anpassen
Die Software vor dem 20. Oktober 2016 zeigt noch auf einen alten, nicht funktionierenden Update-Server. Einige Router laufen noch mit dieser Software. Die neue Konfiguration kann mit wenigen Befehlen auf dem Router importiert werden, ohne dass der Router neu installiert werden muss.
Dazu habe ich die Konfiguration in der Datei autoupdater.uci auf dem Image Server abgelegt. Ist der eigenen Rechner im Freifunk-Netz angemeldet, lässt sich ein Router mit dem folgenden Befehl auf die neue Konfiguration umstellen.
Wer mittels SSH auf seinem Router angemeldet ist, kann die Änderung mit folgendem Befehl anstoßen. Dabei ist<ipv6-addr-des-router> durch die IPv6-Adresse des Routers zu ersetzen.
wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/autoupdater.uci | uci import
Wer sich nicht extra auf dem Router einloggen will, der kann es auch schneller mit folgendem Befehl erledigen:
wget -O - http://images.freifunk-rheinbach.de/autoupdater.uci | ssh root@<ipv6-addr-des-router> uci import
Oder (in diesem Fall wird die Datei autoupdater.uci von einem meiner Freifunkrouter heruntergeladen.)
wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/autoupdater.uci | ssh root@<ipv6-addr-des-router> uci import
Mit dem anschließenden Befehl zieht der Router sich sofort die aktuelle Firmware aus dem Zweig stable:
ssh root@<ipv6-addr-des-router> autoupdater -f