Firmware selbst bauen - Kurzanleitung


#1

Es gibt bereits diverse Kurzanleitungen zum Kompilieren von Gluon. Für totale Einsteiger ist es aber evtl. hilfreich, hier eine kurze Schritt-für-Schritt-Anleitung speziell für Freifunk-Münsterland zu bekommen.

Hinweis vorab: Ihr benötigt (aktuell) mind. 15 GB freien Speicherplatz. Ich nutze Debian und Ubuntu, für andere Distributionen müssen die Befehle ggf. leicht angepasst werden.

Zunächst müssen die benötigten Programme installiert werden:
sudo apt-get install git make python gcc g++ unzip libncurses5-dev zlib1g-dev subversion gawk bzip2 libssl-dev

Dann geht’s weiter mit
git clone https://github.com/freifunk-gluon/gluon.git; cd gluon

Danach wählt ihr den gewünschten Branch per git checkout <branch>, also z. B. git checkout v2016.1.x aus. Die verfügbaren Branches könnt ihr euch mittels git branch -a anzeigen lassen.

Nun holen wir uns die passenden Einstellungen für unsere Domäne: git clone https://github.com/FreiFunkMuenster/site-ffms.git site. Dann wechseln wir ins site-Verzeichnis mit cd site und wählen dann mittels git checkout <Domäne>, z. B. git checkout Domäne-46 die passende Domäne aus. Die verfügbaren Domänen können wir uns mittels git branch -a anzeigen lassen. Mit cd.. geht’s zurück ins Hauptverzeichnis von Gluon.

Bevor der Buildprozess starten kann, muss noch ein make update ausgeführt werden. Danach starten wir den Kompilierungsvorgang: make -j<Threadanzahl> V=s GLUON_TARGET=ar71xx-generic GLUON_RELEASE=<Buildnummer>. Bei einem Quadcore mit 8 Threads sieht das dann z. B. so aus: make -j8 V=s GLUON_TARGET=ar71xx-generic GLUON_RELEASE=v2016.1.5

V=s sorgt dafür, dass mehr Textoutput in der Konsole landet, was das Beheben von Fehlern erleichtert. Nachteil: Durch den vielen Textoutput wird das Kompilieren verlangsamt, also weglassen, wenn man’s nicht braucht. Welche Versionierung ihr verwendet bleibt euch überlassen, GLUON_RELEASE könnt ihr dementsprechend anpassen. Man kann natürlich auch für andere Targets Images bauen, indem man GLUON_TARGET entsprechend wählt oder gleich ganz weglässt, dann wird für alle Targets gebaut.

Das Kompilieren kann je nach CPU-Power eine ganze Weile dauern. Die fertigen Images liegen dann im Verzeichnis output.

Hinweise, Ergänzungen und Verbesserungen sind natürlich erwünscht!