Gluon ist die Firmware, die wir bei Freifunk Nord für unsere Router verwenden. Entwickelt wurde diese vom Freifunk Lübeck. Die Firmware basiert auf OpenWrt und bietet eine einheitliche Konfiguration für die gesamte Community. Beispielsweise ist es auf einem laufenden Router nicht ohne weiteres möglich die Konfiguration zu ändern. Hierzu sind ein erneutes Kompilieren der Firmware oder ein kompliziertes eingreifen mittels Befehlseingabe nötig. Welche Router man verwenden kann, ist in der Liste der mit Gluon kompatiblen Router zu finden.
Wenn du kein Linux verwendest, du dich nicht mit Linux auskennst oder dir einfach nur die Arbeit ersparen willst, dann kannst du die fertigen Images in der Liste der mit Gluon kompatiblen Router herunterladen.
Hier findest du eine Anleitung wenn du Einen Knoten einrichten möchtest.
in NOrdlippe gibt es noch:
https://wiki.freifunk.net/Freifunk_Nordlippe_Firmware
make dirclean
make -j$X GLUON_BRANCH=experimental
- # Um Gluon zu kompilieren installiert man die benötigten Pakete
sudo apt-get install git make gcc g++ unzip libncurses5-dev zlib1g-dev subversion gawk bzip2 libssl-dev
- # Diese Pakete werden benötigt, um nachher die Toolchain und die Firmware an sich zu kompilieren. Des weitern sollten mind. 7 GB je Target an freiem Speicher auf der Festplatte verfügbar sein. Bei aktuell 7 möglichen Targets sollten bis zu 49 GB an Platz eingeplant werden. Man kann den Freien Speicher im aktuellen Verzeichnis anzeigen mit
df -BG .
- # Hinweis: Wer sein gluon Verzeichnis von der Festplatte gelöscht hat, der kann an dieser Stelle fortsetzen.
- # Nun lädt man sich die Source-Files für Gluon aus dem GitHub-Repository von Freifunk Lübeck herunter:
git clone https://github.com/freifunk-gluon/gluon.git
- # Wichtig hierbei ist, dass man sich die Dateien NICHT als root und auch ohne sudo herunterlädt, da es sonst später zu Problemen beim Kompilieren kommen kann:
if [[ $EUID -eq 0 ]]; then echo "cannot be run as root"; exit; fi;
- # Als nächstes wechselt man in das automatisch erstellte Verzeichnis
cd gluon
- # Bevor man mit dem Kompilieren beginnen kann ist der richtige Versionszweig (branch, englisch revision) auszuwählen.
- # Verfügbare Versionszweige anzeigen
git branch -a
- # z.B. die z.Z. aktuelle stabile Version: 2015.1.x auswählen
git checkout v2015.1.x
- # Wer hier nichts auswählt landet in dem experimentellen Zweig master und riskiert, dass das Kompilieren fehlschlägt.
- # (Eine Anleitung wie der Gluon Master erfolgreich gebaut werden kann ist weiter unten zu finden.)
- # Wer bisher versucht hat eine experimentelle Version von Gluon zu bauen (gemäß der bisherigen Fassung dieser Anleitung) und auf den stabilen Zweig umsteigen möchte, der sollte sein gluon Verzeichnis auf der Festplatte rekursiv, also inclusive aller Unterverzeichnisse, löschen und neu auschecken also Gluon neu von github.com/freifunk-gluon rerunterladen.
- # Da in diesem Repository noch keine Konfiguration dabei ist, muss diese extra heruntergeladen werden. Hierzu führt man in dem Verzeichnis gluon, wo man sich an dieser Stelle der Anleitung schon befinden sollte, folgenden Befehl aus:
git clone https://github.com/ffnord/site-nord.git site
- # Auch hier sicherheitshalber noch darauf achten, den richtigen Zweig auszuwählen.
- # wähle den richtigen Zweig aus, z.B. 'master' um die Version 0.7.2 zu bauen
git checkout master
- # (Die Version steht in der Variable DEFAULT_GLUON_RELEASE in der Datei site.mk)
- # Dann in das übergeordnete Verzeichnis gluon zurückkehren
cd ..
- # Nun sind fast alle Dateien vorhanden, um mit dem Kompilieren zu beginnen. Die letzten Dateien erhält man mit dem Befehl
make update
- # Dies dauert nur ca eine Minute.
- # Am besten die Starzeit merken und dann das Kompilieren starten
START=$(date)
- # Wer ein anderes Target als ar71xx-generic kompilieren möchte muss dieses seperat mit dem Parameter GLUON_TARGET=... angeben
- # Eine Liste der vorhandenen Targets gibt es mit
make GLUON_TARGET=?
- # Seit Gluon Version 2014.4.x kann auch beim ersten Build der Paramiter -j siehe weiter unten zur Steigerung der Geschwindigkeit des Kompilierens genutzt werden.
- # Es werden nur die gerade kompilierten Dateien angezeigt.
- # Wer am Ende wissen möchte warum das Kompilieren fehlschlägt oder zuschauen möchte was im einzelnen passiert der benutzt
make V=s
- # Für den Fall, dass du einen Prozessor mit mehreren Kernen verwendest kannst du hinter "make" die Option "-jX" setzen, wobei X der Anzahl der Kerne deines Prozessors entspricht. Durch diese Zusatzoption arbeiten mehr Kerne am Kompilieren des Codes und es geht schneller als nur mit einem. Wenn man auf einem Server über SSH kompiliert, ist es zu empfehlen das ganze in einer screen, tmux o.ä. Sitzung auszuführen. Das komplette Kompilieren dauert ca. 2 Stunden mit einem Kern, bei einem i7-2600k mit der Option "-j8", also mit 8 Kernen nur kanpp 30 Minuten.
- # Die Anzahl Kerne zeigt der Befehl lscpu an, man kann dies automatisch in eine Variable setzen und dann den make Befehl ausführen
X=$(lscpu|grep -e '^CPU(s):'|xargs|cut -d" " -f2) make -j$X V=s
- # Nun kann man sich einen Kaffee, eine Mate oder sonst etwas holen, ein paar Dehnübungen machen und warten bis man sich die Kompilierdauer anschauen kann
date echo "Kompiliervorgang abgeschlossen" echo "begonnen um $START"
- # Sobald das Kompilieren ohne Fehler abgeschlossen ist, findet man die Images im gluon-Ordner unter
images/factory/
Hierzu ist im wesentlichen die Anleitung der stable Version zu befolgen mit folgenden Änderungen:
- Der Branch von Gluon ist nicht v2015.1x sondern master
- Der Branch für die FFNord site Dateien ist nicht master sondern 2015.2.x
Dieser Branch wird ersetzt, wenn die fertige Version veröffentlicht wird - Das Ergebnis des Kompiliervorgangs liegt unter ./output/images
Wer dieses Feature nutzen möchte kompiliert am Besten mit dem BROKEN=1 Parameter Dann wird zum Beispiel auch der ARCER C5/C7 experimentell unterstützt.
Der Aufruf des kompilierungsvorgangs lautet dann
make -j8 BROKEN=1
Warnung: Das Bauen des Master Branches ist nur Linux Experten zu empfehlen.
Es kann nicht garantiert werden dass das Kompilieren erfolgreich verläuft da an dem Master Branch ständig gearbeitet wird.
Wenn man die Gluon-Images für automatische Updates signieren möchte muss man zuerst eine Manifest-Datei erzeugen, in der die Signaturen enthalten sein werden. Wichtig hierzu ist, dass auf dem System die ECDSA Utils vorhanden sind.
Um die Manifest-Datei zu erzeugen gehen wir in das Gluon Verzeichnis und führen dort den folgenden Befehl aus:
make manifest GLUON_BRANCH=stable
Nun finden wir unter images/sysupgrade eine Datei mit dem Namen "stable.manifest".
Nun müssen wir nur noch den script zum signieren der Images ausführen. Die Befehlsreihenfolge ist die folgende:
./contrib/sign.sh pfad/zur/secret/key/datei pfad/zur/manifest/datei>
- Offizielles Git Repository auf GitHub
- Offizielle Dokumentation von Gluon
- ECDSA Utils - Software zum Signieren von Updates
- Nützliche Commandline Befehle für Gluon