# Firmware von Freifunk Paderborn * Basis: [Gluon](https://github.com/freifunk-gluon/gluon) * Site-Repository: [FFPB](https://git.c3pb.de/freifunk-pb/site-ffpb) ## Vorbereitung / Umgebung Die Firmware wird auf Debian/Ubuntu gebaut. Als Requirements sind üblicherweise nur die allgemeinen Build-Tools sowie libfaketime nötig. Zum Bauen des gcc in der Toolchain sind noch drei weitere Bibliotheken notwendig: ` sudo apt-get install build-essential libfaketime lib{gmp,mpfr,mpc}-dev ` ## Bauen Rufe `build.sh` auf und übergebe folgende Umgebungsvariablen: * **BASE** gibt die Gluon-Version an, als Basis benutzt werden soll (z.B. 'v2014.4') * **BRANCH** ist der Name des Firmware-Branches (also /stable/, /testing/ oder /experimental/) * **VERSION** wird die Versions-Nr. der neuen Firmware (kann bei BRANCH=experimental) weggelassen werden * **BROKEN** falls "1", erzeuge ebenfalls Firmware-Images für ungetestete Plattformen (default: "0") * **MAKEJOBS** spezifiziert die Anzahl der parallel laufenden Compiler-Prozesse (falls nicht angegeben, wird ein Prozess pro CPU/Kern gestartet) * **TARGET** ein Liste durch Leerzeichen separierter Hardware-Zielplattformen (falls nicht angegeben, werden Images für alle bekannten Plattformen erzeugt) * **PRIORITY** spezifiziert die maximale Anzahl an Tagen, die ein Knoten das Einspielen des Updates verzögern darf ```bash # Baut eine testing-Firmware auf Basis von Gluon 2014.4 BASE=v2014.4 BRANCH=testing VERSION=0.6~rc1 ./build.sh # Baut eine experimental-Firmware auf Basis des aktuellen Gluon-Master (nur für Experten) BASE=master BRANCH=experimental ./build.sh ``` Nach erfolgreichem Build-Vorgang liegt die Firmware fertig paketiert im `output/` Verzeichnis und in `versions/` wurde (außer bei BRANCH=experimental) eine Versions-Informationsdatei abgelegt. Mit dieser (nur der Name) kann `build-version.sh` die gegebene Version erneut bauen.