Firmware

Letztes Wochenende habe ich wieder eine neu Firmware erstellt. Diese sollte nun auf fast allen Routern installiert sein, soweit sie diese Woche einmal lange genug online waren und schon auf eine automatische Aktualisierung umgestellt sind. Zu beachten ist, dass die Firmware freifunk-rhein-sieg.de keine automatische Aktualisierung vornimmt, weil die Konfiguration zwei gültige Signaturen erwartet, aber nur eine Signatur definiert ist. Wer also die Firmware für Rheinbach der Freifunker Rhein-Sieg nutzt, muss seine Router manuell aktualisieren.

Neue Firmware: Autoupdate und USB

Die neue Firmware von 20. Oktober 2016 bringt einige Verbesserungen mit sich. Die Firmware basiert nun auf Gluon v2016.2. Für Rheinbach erstelle ich nur noch zwei grundsätzliche Zweige: Mit USB-Unterstützung (stableusb) und ohne USB-Unterstützung (stable). Der frühere Zweig „Managed“ entfällt. Der Zeitaufwand mehrere Zweige zu verwalten und zu erstellen ist mir zu hoch geworden. Außerdem bin ich mehr oder weniger der einzige Nutzer.

Fernwartung

Wie beim früheren Zweig „Managed“ enthält die Firmware den öffentlichen Teil meines geheimen Schlüssels, mit dem ich mich bei den Router identifizieren und sie anschließend mit einer Konsole warten kann. Wer dies nicht möchte, kann den Schlüssel entfernen und ersetzt ihn bei Bedarf durch einen eigenen Schlüssel oder ein Kennwort für root.

Inzwischen sind fast alle Router, die ich verwalte aus die neue Firmware umgestellt. Nur ein paar Router sind offline und haben daher noch eine alte Firmware.

Kernel-Module

Die Firmware der Router lässt sich auch nach der Installation anpassen oder um zusätzliche Programme erweitern. Mit der Gluon Firmware werden spezielle Module für den Kernel generiert, die von OpenWRT abweichen. Diese stehen jetzt über einen Router (Link nur im Freifunknetz erreichbar) bereit, den ich dafür zum Server erweitert habe. Die Quelle der Module ist in der Datei /etc/opkg/customfeeds.conf eingetragen. Wie zusätzliche Software installiert werden kann, ist an mehreren Stellen im Wiki beschrieben.

Zeitserver

Als Zeitserver wird jetzt einer meiner Nodes verwendet. Dies hatte ich schon Ende September in einem Image eingebaut, jetzt gibt es nur noch meinen Router als Zeitserver. Die ursprünglich verwendeten Zeitserver aus dem Pool waren von den Routern nicht erreichbar. Infolgedessen hatten die Router immer eine falsche Uhrzeit. Jetzt haben alle Router jetzt ungefähr die gleiche Zeit (+/- wenige Sekunden). Das Ein- und Ausschalten der kompletten Router mit einer Zeitschaltuhr, wie an einigen Stellen üblich, kann damit entfallen und durch einen cron-Job ersetzt werden. Vorteil ist: Zwar kann keiner mehr über das offene WLAN des Routers ins Netz, aber das Netz an sich bleibt erhalten.

Autoupdate

Einer meiner Router dient als Server für die Firmware. Wenn die Funktion Autoupdater aktiviert ist, laden die Router automatisch die aktuelle Firmware. Ganz wie bei Samsung und Co. Derzeit ist die Funktion bei der Erstinstallation mit dem Factory Image ausgeschaltet und muss von Hand eingeschaltet werden.

Die Firmware wird nur von mir signiert; leider bin ich nur einer. Wenn sich noch ein, zwei oder mehr Mitstreiter an der Technikfront treffen würden, könnten wir ein „Mehr-als-zwei-Augen-Prinzip“ einführen. Aber dieses Schicksal trifft mich in der Regeln nicht allein. (ITIL in einer Person.)

Die Funktion es Autoupdate wird mir in Zukunft einiges an Zeit ersparen. Künftig muss ich die Firmware nicht mehr aufspielen. Darum kümmert sich der gute Router künftig selber.

(Natürlich könnte ich an Stelle eines Routers auch diesen Server nehmen, aber dazu müsste ich ihn ins Freifunk Netz einbinden, was etwas mehr Arbeit ist, als einen Router entsprechend zu konfigurieren.)

USB-Support

MR3020 als mobiler Freifunk Hotspot
MR3020 als mobiler Freifunk Hotspot
Mit der neuen Firmware gibt es auch einen Zweig stableusb, der an Routern mit USB-Port den Betrieb von USB-Geräten ermöglicht.

Derzeit nutze ich einen TP-Link TL-WR1043ND v2 mit einem 16 Gigabyte USB-Stick als Server für die Firmware im Freifunknetz. Ein TP-Link TL-MR3020 wird mittels USB-Tethering und einem Smartphone zum mobilen Freifunk Hotspot. Aufgrund des geringen Speichers lässt der MR3020 nicht mehr zu. Für die USB-Pakete musste schon die Statusseite weichen.

Bei Routern ohne USB-Port ist die Firmware in beiden Zweigen identisch.

Freifunk Router mit UMTS

In den letzten Tagen habe ich mir etwas Bastelzeit gegönnt und versucht einen Freifunk-Router über UMTS ans Internet anzubinden. Die Versuche waren nach einigen Fehlerversuchen heute erfolgreich. Die Beschreibung der Modifikation der Router habe ich im Wiki unter UMTS abgelegt.

Der TP-Link TL-MR3020 hat leider etwas wenig Speicher. Kaum zu glauben, dass dieser Router, der als 3G/4G-Hotspot verkauft wird, solche Probleme bereitet. Mir ist es durch entfernen der Statusseite geglückt, den Router zumindest über mein Smartphone per USB-Tethering ans Internet zu bringen. Aufgrund des größeren Speichers sind die TP-Link TL-WR1043 v2 und v3 deutlich leichter mit einem USB-3G-Dongle S4222 (UMTS-Stick) von Medion ans Internet zu bringen. Alle benötigten Pakete (und einige mehr) lassen sich ohne Probleme in die Firmware packen.

Grundsätzlich lässt sich der Router auch über UMTS und DSL gleichzeitig ans Internet bringen, aber er sucht sich dabei nicht immer die schnellste (und preiswerteste) Verbindung zu den fastd Servern.

Zur Zeit wird gerade die neuen Firmware gebacken. Noch ist nach der Installation etwas Handarbeit erforderlich, aber bei Gelegenheit werde noch eine Konfigurationsseite einbauen.

Genug für heute.

Neue Firmware mit USB Support

Vor ein paar Tagen wurde Gluon 2016.2 freigegeben. Dies habe ich zum Anlass genommen, mich mit der Unterstützung von USB auf den Freifunkroutern zu beschäftigen. Zwar haben die Brot und Butter Router TP-LINK TL-WR841N(D) keinen USB-Port, aber meine Router sind zum größten Teil mit einem USB-Port ausgestattet.

Meine Ziele waren einen „mobilen“ Router mit einem UMTS-Stick über Mobilfunk ans Internet anzubinden und einen Router mittels USB-Stick zum File Server auszubauen. Die Einbindung des USB-Speicherstick ist relativ einfach. Aufwändiger ist der Anschluss eines UMTS-Stick. Recht besehen: Wenn man weiß, wie es geht, ist beides ganz einfach.

Den Anschluss eines USB-3G-Dongle für den Mobilfunk habe ich im Wiki unter UMTS beschrieben. Die Beschreibung für den USB-Speicherstick folgt noch.

Um dies gleich umzusetzen habe ich meinen Router im Arbeitszimmer zum Fileserver umgebaut. Über diesen Router stelle ich zusätzlich die Firmware[1] bereit. Auch die Module um zusätzliche Software auf die Router zu bringen, stehen jetzt neben der Firmware zum Herunterladen bereit. Später soll über diesen Router der automatische Update aller Router möglich sein. (Dazu muss ich nur noch herausfinden, wie ich eine manifest-Datei erstelle.)

Als Nebenprodukt werden mit dem neuen Image die Raspbery PI 1 und 2 unterstützt. Mein Raspbery PI 2 mit EDIMAX Nano WLAN Dongle mag sich jedoch nicht mit anderen Nodes in der Umgebung verbinden. Dies scheint der WLAN-Stick nicht zu unterstützen.

Genug für heute.

  1. [1]Der Link funktioniert nur im Freifunk-netz!

Neue Firmware

Nach langer Zeit habe ich es endlich wieder geschafft ein neues Image zu erzeugen und auch Online zu stellen. (Kultur im Hof geht langsam in die Winterpause). Die zwischenzeitlichen Images dienten mehr dem Versuch die Probleme mit den zwei TP-Link CPE210 in der Kriegerstraße in den Griff zu bekommen. Einige unschöne „Fehler“ im Gluon ließen ein allgemeines Update nicht ratsam erscheinen.

In der Kriegerstraße laufen die CPE210 jetzt einigermaßen rund, der Low Noise Amplifier (LNA) wird nun von den neueren Images genutzt und ich kann mir die manuellen Eingriffe auf den beiden Routern sparen. Die Verbindung ist deutlich stabiler geworden; es könnte noch ein wenig besser sein. Ein Cron-Job auf jedem Router sorgt für einen Neustart, wenn die Router wieder die Verbindung verloren haben. Trotz aller Schwierigkeiten ist die Verbindung eine der schnellsten in Rheinbach. Wenn es läuft, dann sind dauerhaft 4 bis 5 MBit/s drin.

Neben einem aktuellen und stabilen Gluon bietet das neue Image eine „Rheinbacher“ Verbesserung. Die Zeitserver im Internet waren aufgrund der Gluon-eigenen Firewallregeln nicht erreichbar. Dadurch hatten alle Router eine zufällige Uhrzeit. Im neuen Image dient einer meiner Router als Zeitserver, so dass alle Router eine einheitliche und nahezu gleichen Zeit haben. Die richtige Zeit spielt für den normalen Betrieb keine Rolle, aber wer einen Cron-Job zur richtigen Zeit ausführen lassen will, der braucht eine genaue Zeit auf dem Router.
Das neue Image findet sich unter: http://images.freifunk-rheinbach.de/v2016.1/20160925/. Auf die verwalteten Router werde ich das Image in den nächsten Tagen aufspielen.

Experimentelle Firmware

Am Freitag habe ich eine neue experimentelle Firmware erstellt und heute unter v2016.1 beta bereitgestellt. Mit der Version 2016.1 gibt es einige Änderungen, die ich nur Stück für Stück begreife und in der Konfiguration einbauen muss.

Mesh

Mit der neuen Gluon Version gibt es zwei Protokolle für die Verbindung der Router untereinander (Meshing) – IBSS (Adhoc) und 802.11s. Das IBSS Netzwerk ist in an der SSID su-ff-mesh erkennbar.

Bisher hatte ich in der Firmware beide Protokolle definiert und aktiviert. Dies ist nur beschränkt sinnvoll. Um sich mit Routern mit alter Firmware v2012.1.2 oder älter, wird weiterhin IBSS benötigt. Router mit Gluon v2016.1 unterhalten sich meines Erachtens besser über 802.11s. Ein Mischbetrieb ist zwar möglich, angeblich könnte es Probleme in größeren Netzen geben. Neuere Router können sich ausschließlich über das neue Protokoll 802.11s verbinden.

Hier in Rheinbach laufen die meisten Knoten mit einer Firmware, die beide Protokolle unterstützt. So nutzen alle WR841ND v10 und WR941ND V6 eine experimentelle Firmware, da die Geräte in Gluon v2015.1.2 nicht unterstützt werden. Dies sind bereits 30% der Router. Tatsächlich nutzen nur noch ~20 Router eine nicht experimentelle Firmware ohne 802.11s Unterstützung.

Mit der Zeit möchte ich daher den Adhoc Verbindungen weg und die Router ausschließlich über 802.11s untereinander verbinden. In der neuen experimentellen Firmware habe ich deshalb das IBSS Netzwerk in der Voreinstellung deaktiviert. Es ist zwar vollständig definiert, aber nach einem Factory Upgrade nicht aktiv. Beim Sysupgrade bleiben die Einstellungen des Routers in der Regel erhalten. D.h. das Adhoc Netzwerk wird durch einen sysupgrade nicht ausgeschaltet. Ob das Adhoc Netzwerk noch verfügbar ist, ist an der SSID su-ff-mesh erkennbar.

IBSS kann mit folgenden Befehlen im Terminal für 2.4 Ghz (radio0) oder – bei Routern, die dieser Frequenz unterstützen, – 5 GHz (radio1) getrennt wieder angeschaltet werden.

 
uci set wireless.ibss_radio0.disabled='0'
uci set wireless.ibss_radio1.disabled='0'
uci commit
wifi

Wird 0 durch 1 ersetzt, wird IBSS entsprechend deaktiviert.

So Schluss jetzt. Es gibt auf GitHub einen neuen Branch Gluon v2016.1.x. Da kann ich mich gleich an ein neues, stabiles Release machen, das auch neuere Hardware unterstützt.