Freifunk Aachen/Firmware/Kompilieren
Dies wird nur für fortgeschrittene Anwendungszwecke gebraucht. Für den Normalbetrieb empfehlen wir unsere vorkompilierten Images unter images.aachen.freifunk.net.
Build-Umgebung einrichten
Zum Kompilieren von Gluon werden einige Build-Tools und Entwicklungsbibliotheken benötigt. Unter aktuellen Debian- und Ubuntu-Versionen (empfohlen: Debian 13 oder Ubuntu 26.04 LTS) werden die Pakete wie folgt installiert:
sudo apt update
sudo apt install clang git python3 python3-dev python3-pyelftools \
python3-setuptools build-essential gawk unzip libncurses5-dev \
zlib1g-dev libssl-dev libelf-dev llvm wget rsync time qemu-utils \
ecdsautils swig jq
Alternativ stellt Gluon ein Container-Buildskript (Docker / Podman) bereit, siehe auch die offizielle Gluon Getting-Started Dokumentation.
Methode 1: Automatisierter Build über das Aachener Site-Repository (Empfohlen)
Das Aachener Site-Repository enthält ein fertiges Makefile, welches das passende Gluon automatisch herunterlädt, Aachen-spezifische Patches anwendet, externe Paketfeeds aktualisiert und die Images kompiliert.
1. Repository klonen
git clone https://github.com/ffac/site.git cd site
2. Build starten
Alle Targets und Manifeste bauen
Um alle konfigurierten Plattformen zu bauen und direkt die Autoupdater-Manifeste (experimental, beta, stable) zu erstellen:
make manifest
Hinweis: Dies lädt bei Bedarf automatisch die in release.mk definierte Gluon-Version in den Ordner gluon-build/, patcht diese und startet die Kompilierung mit allen verfügbaren CPU-Kernen (parallele Jobs).
Einzelne Targets oder Geräte bauen
Das Kompilieren aller Targets benötigt sehr viel Zeit und Festplattenplatz. Wenn du nur Firmware für ein bestimmtes Target (z. B. mediatek-filogic oder ramips-mt7621) benötigst:
make build GLUON_TARGETS=mediatek-filogic
Oder nur für ein einzelnes Endgerät:
make build GLUON_DEVICES="openwrt-one"
3. Nützliche Make-Befehle der FFAC-Site
make print-targets: Zeigt alle in Aachen aktivierten Targets an.make build: Baut Firmware-Images ohne Manifeste zu generieren.make manifest: Baut Firmware-Images und generiert die Manifest-Dateien.make sign: Signiert die Manifest-Dateien (erfordert Secret-Key unter~/.gluon-secret-key).make clean: Bereinigt die Build- und Ausgabeverzeichnisse.
Die fertigen Images liegen nach Abschluss im Ordner output/images/ (bzw. bei GLUON_DEVICES unter devices/).
Methode 2: Manueller Build über das Upstream-Gluon
Alternativ kann der Build auch klassisch über das Haupt-Gluon-Repository aufgerufen werden:
1. Gluon und Aachener Site klonen
# Gluon-Version auschecken (z. B. v2025.1.2) git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2025.1.2 cd gluon # Aachener Site in das Unterverzeichnis "site" klonen git clone https://github.com/ffac/site.git site
2. Abhängigkeiten aktualisieren
make update
3. Target kompilieren
Verfügbare Targets anzeigen:
make list-targets
Beispiel für das Bauen des gängigen mediatek-filogicTargets mit allen Kernen:
make GLUON_TARGET=mediatek-filogic -j$(nproc)
Hinweis: Beim manuellen Bau über das Upstream-Gluon werden eventuelle Patches aus dem Aachener patches/-Verzeichnis nicht automatisch angewendet. Verwende hierfür Methode 1.