Wuppertaler Firmwarebäcker
In der Wuppertaler Firmwarebäckerei kann man die Firmware, die in den Funkzellen des Freifunk Rheinland e. V. eingesetzt wird, nach eigenen Wünschen und Bedürfnissen zur sofortigen Nutzung „backen“ lassen.
Die Firmware
Bei der Firmware handelt es sich um OpenWrt „Attitude Adjustment“ (Trunk) mit dem neuesten B.A.T.M.A.N. Advanced Kernel Modul. Dieser Unterbau wird mit einer in Jena entwickelten Zustandsmaschine ergänzt.
2012-02-02
Es ist die erste stabile Firmware welche in Funkzellen des Freifunk Rheinland eingesetzt wurde. Sie wurde in Jena entwickelt und im Neusser fNordeingang für Freifunk Rheinland angepasst. (Quellcode auf GitHub)
Nach der Installation:
- das voreingestellte Passwort „admin“ ändern
2012-04-07
Diese Version basiert auf der Februarversion mit wenigen behobenen Fehlern. Sie wurde in Wuppertal ausführlich getestet und ist stabil. Dies ist die letzte Firmware, die nicht von netifd abhängt. (Quellcode auf GitHub)
Nach der Installation:
- das voreingestellte Passwort „admin“ ändern
Spezialfirmware
Weitere Firmwareversionen, die zur Auswahl stehen, sind pure OpenWrt-, Entwickler- und Spezialversionen für besondere Geräte und Anlässe.
Die Hardware
Der Bäcker unterstützt zur Zeit folgende Router:
Weitere Router, die nach Anpassung der Konfigurationsdateien funktionieren werden:
Andere Router, die noch getestet und stabilisiert werden und nur mit bestimmten und nicht den stabilen Firmwareversionen funktionieren:
- atheros (z. B. D-Link DIR-300 Rev.A [7])
- brcm47xx (z. B. Linksys WRT54G, WRT54GL und WRT54GS [8])
- x86 (z. B. kleine Kisten mit langsamen, stromsparenden Prozessoren und etwas RAM)
Der Bäcker
… ist eigentlich ein CGI-Programm, welches den OpenWrt Image Generator steuert, Dateien aus den Firmware-Quellen hinzufügt und die vom Nutzer eingegebenen Informationen während des „Backvorgangs“ in die Firmware verewigt. Die so erstellte Firmware muss nur noch auf den Router installiert werden. Weitere Konfigurationsschritte auf dem Router sind nicht notwendig, es sei denn, dies wird in der gewünschten Firmwareversion explizit gefordert.
Dies wird vom Firmwarebäcker zu einem Teig zusammen geknetet und zu einem leckeren Firmware-Image gebacken:
- uClibc
- Linux Kernel
- Kernel Module
- die benötigten OpenWrt-Pakete, abhängig von der Firmware
- Dateien aus den Firmware-Quellen
- files/common
- files/trunk/${ARCH} (je nach Architektur, bei Bedarf)
- distnodeinfo, um die Knoten wie in OLSR-Zeiten zu identifizieren und auf einer Karte einzutragen
- weitere Pakete, die der Nutzer dem Bäcker mitteilen kann
- OpenVPN
- SSH-Schlüssel für die Fernwartung durch die Wolkenbetreuer
Die Bäckerei
… bietet noch vorkompilierte Pakete zum Download bereit, um sie im eigenen OpenWrt zu installieren ohne ihn neu flashen zu müssen. Außerdem bietet sie fast alle erdenklichen, von OpenWrt bereitgestellten Kernel Module (hold-packages), um die vom Bäcker gebackene Firmware nach eigenen Wünschen und Bedürfnissen zu erweitern; sei es, um USB-Geräte (Webcam, Soundkarte, USB-Stick, USB-WLAN …), andere Netzwerk-Technologien (IPv6 Tunnel, OpenSwan, Tinc …) zu erweitern oder andere, von der Standardinstallation nicht abgedeckte Routerfunktionen zu ermöglichen. Andere, nicht auf dem Kernel aufbauende Pakete können direkt bei OpenWrt heruntergeladen werden.
Nach der Installation
Das oberste Ziel des Bäckers ist ein vorkonfigurierter Router-Image: einfach backen lassen, auf dem Router installieren, Router aufstellen, einschalten und freifunken. Doch leider muss manches manuell erledigt werden. Dazu den Computer mit LAN-Port 1 am Router verbinden und mit SSH einwählen
- Windows: PuTTY auf 192.168.1.1
- Linux:
ssh root@192.168.1.1
Passwortänderung
So wird das Passwort geändert.
passwd neues Passwort noch ein mal neues Passwort
192.168.1.0/24 Hausnetzwerk
Die Adresse des LAN-Ports ist 192.168.1.1. Dies Kollidiert natürlich, wenn der Router über den WAN vom DHCP auch eine Adresse aus dem 192.168.1.0/24 Netz bekommt. Abhilfe schafft die Änderung der LAN-Adresse:
uci set network.lan.ipaddr=192.168.2.1 uci commit network.lan.ipaddr
Schnittstellenanpassung
Geräte mit nur einem Ethernet-Port (z. B. TP-Link TL-MR3020 oder MeschCube) müssen angepasst werden, damit sie der Wolke Internet bereitstellen können.
uci delete network.lan uci commit network.lan # ¹) uci set network.wan=interface uci set network.wan.ifname=eth0 uci set network.wan.proto=dhcp uci commit network.wan
¹) dieser Schritt jetzt ist leider wegen der Zustandsmaschine in der Firmware notwendig, derer temporäre Änderungen sonst dauerhaft in der Konfigurationsdatei verewigt werden.
Weblinks
- Wuppertaler Firmwarebäcker – sichere Verbindung, CACert signiert
- Wuppertaler Firmwarebäcker
- im Bäcker verarbeitete Firmware auf GitHub
- fNordeingang Firmware auf GitHub
- Firmwarebeschribung