Freifunk Aachen/Firmware/Kompilieren

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

Hier die Anleitung, wie man die Aachener Firmware selber kompilieren kann. Dieser Build kann dann die Grundlage für eigene Modifikationen, etwa durch Änderungen der site.conf oder Einbringen von neuen Treibern.

Dies wird nur für stark fortgeschrittene Anwendungszwecke gebraucht. Bestimmt 99% aller Benutzer oder sogar mehr fahren ganz gut mit unseren vorkompilierten Images, die man unter https://images.aachen.freifunk.net herunterladen kann.

Diese Anleitung ist eine Textversion der großartigen Videoanleitung der Freifunkthek unter https://www.youtube.com/watch?v=2rEm0OFOFE0

Build-Umgebung einrichten

Die meisten Linux-User haben schon alles vorliegen, und müssen gegebenenfalls nur noch einige Pakete nachinstallieren. Auf Ubuntu funktioniert das ganz einfach per:

sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev libssl-dev

Bei anderen Distributionen heißen die Pakete ähnlich.

Windows-Nutzern wird tatsächlich empfohlen, einfach eine virtuelle Maschine wie Virtualbox zu installieren und in dieser virtuellen Maschine ein Ubuntu zu installieren. Das Video erklärt in diesem Fall das weitere Vorgehen.


Build-Dateien herunterladen / auschecken

Wir nutzen den Befehl git um Gluon aus dem Entwickler-Repository herunterzuladen. Dabei muss immer die gewünschte Version angegeben werden. Die neueste kann man bei https://gluon.readthedocs.org nachschauen. Für die Version v2015.1.2 lautet der Befehl beispielsweise:

git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2015.1.2

Für andere Versionen bleibt alles gleich, nur der Teil v2015.1.2 muss natürlich ersetzt werden.

Die speziellen Einstellungen für die Regio Aachen befinden sich auf unserer Github-Seite im site-Repository. Wir wechseln in das Verzeichnis gluon (das wir eben beim Auschecken automatisch angelegt haben) und laden das site-Repository in das Unterverzeichnis site herunter.

cd gluon

git clone https://github.com/ffac/site.git site


Build starten

Wir laden nun die restlichen Daten herunter, die der Build benötigt. Dies sind externe Abhängigkeiten wie OpenWRT und die gesamte Toolchain.

make update

Wir müssen uns nun ein sogenanntes Target für den Build auswählen. Ein Target ist eine Sammlung technisch ähnlicher Router, für die in einem Rutsch relativ ähnliche (aber trotzdem inkompatible!) Images erstellt werden können. Die verfügbaren Targets lassen wir uns wie folgt anzeigen:

make GLUON_TARGET=

Also die Variable GLUON_TARGET auf einen leeren Wert setzen und damit make aufrufen.

Der Output sollte ungefähr so aussehen:

Please set GLUON_TARGET to a valid target. Gluon supports the following targets:
 * ar71xx-generic
 * ar71xx-nand
 * mpc85xx-generic
 * x86-generic
 * x86-kvm_guest
Makefile:63: die Regel für Ziel „prepare-target“ scheiterte
make: *** [prepare-target] Fehler 1

Eines der beliebtesten Targets sind die ar71xx-generic Images, zu denen auch z.B. der beliebte TP-Link WR841N gehört.

Wir rufen also einen Build auf. Wir setzen zusätzlich die Variable BROKEN auf den Wert 1, um den Build-Prozess anzuweisen, auch ungetestete Images zu bauen. Diese laufen aber eventuell nicht ganz rund, also Vorsicht! Wer dem Rechner den zusätzlichen Aufwand ersparen möchte, lässt diese Variable einfach weg. Außerdem ist es sehr empfehlenswert den -j Schalter mit einer hinreichend großen Zahl zu setzen. Dieser Schalter gibt an, wieviele Kompilierungsvorgänge gleichzeitig laufen dürfen. Wer nur einen Prozessor hat nimmt -j1, wer einen Quadcore hat, nimmt offensichtlich mindestens -j4. Insgesamt lautet der Befehl (im Beispiel für einen Dualcore):

BROKEN=1 GLUON_TARGET=ar71xx-generic make -j2

Nun heißt es warten. Je nach CPU-Leistung kann dies in 30 Minuten erledigt sein oder auch eine ganze Nacht dauern.

Wenn der Prozess abgeschlossen ist (d.h. wieder die Shell sichtbar ist, und kein Fehler erschien), dann findet ihr unter build/ar71xx-generic die fertigen Images!