[FORK]

Karsten Böddeker 43f1769ab6 ReadMe: remove SITE_REPO_FETCH_METHOD 6 anni fa
.gitignore c87322c56a gitignore: ignore .log files 7 anni fa
LICENSE 05a8005850 We are FFHO now 8 anni fa
ReadMe.md 43f1769ab6 ReadMe: remove SITE_REPO_FETCH_METHOD 6 anni fa
build-version.sh 70da002708 make versions directory definable 7 anni fa
build.sh e7e06179c9 build.sh: fix GLUON_REPO_URL 6 anni fa
functions.sh 05a8005850 We are FFHO now 8 anni fa

ReadMe.md

Firmware von Freifunk Hochstift

Dieses Repository beherbergt die Skripte, um die Firmware von Freifunk Hochstift zu bauen. Die Inhalte dieses Repositories werden unter einer "2-clause BSD" Lizenz veröffentlicht. Details sind der Datei LICENSE zu entnehmen.

Beim Bauen der Firmware werden weitere Git-Repositories heruntergeladen und benutzt:

Vorbereitung / Umgebung

Für das Build-System werden die gennerell für Gluon notwendigen Pakete, sowie lua5.1 benötigt.

sudo apt-get install git subversion python build-essential gawk unzip \
  libncurses-dev libz-dev libssl-dev lua5.1

Bauen

Klone das Repository in dem diese ReadMe liegt (falls noch nicht geschehen) und wechsle in das Verzeichnis:

git clone https://git.ffho.net/freifunkhochstift/ffho-firmware-build.git build
cd build

Rufe build.sh auf und übergebe folgende Umgebungsvariablen:

  • BASE gibt die Gluon-Version an, die 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)

optional:

  • AUTOUPDATER setzt den Autoupdater auf einen anderen Branch als bei BRANCH angegeben ('stable', 'testing', 'experimental' oder 'off', default: BRANCH)
  • BROKEN falls "1", erzeuge zusätzlich Firmware-Images für ungetestete Plattformen (default: "0")
  • BUILD_TS setzt den Zeitstempel für den Build-Prozess (format: %Y-%m-%d %H:%M:%S)
  • CLEAN falls "dirclean", wird make dirclean ausgeführt, falls "clean" wird make clean ausgeführt, ansonsten keins von beidem (default: "none")
  • DEVICES baut nur die Images für die angegebenen Devices und nicht für das gesamte Target
  • KEY_DIR gibt das Verzeichnis für gluon-opkg-key an (default: ./opkg-keys)
  • MAKEJOBS spezifiziert die Anzahl der parallel laufenden Compiler-Prozesse (default: ein Prozess pro CPU/Kern)
  • PRIORITY spezifiziert die maximale Anzahl an Tagen, die ein Knoten das Einspielen des Updates verzögern darf (default: $(DEFAULT_GLUON_PRIORITY))
  • PUBLISH falls "1", veröffentliche die Firmware nach dem bauen
  • SITE_ID gibt die Commit-ID des Site-Repos an (default: HEAD)
  • TARGETS ein Liste durch Leerzeichen separierter Hardware-Zielplattformen (default: alle bekannten Plattformen)
  • VERBOSE falls "1", schaltet Debug-Ausgaben mit an - dies ist nur notwendig wenn Fehler beim Build auftreten (default: "0")
  • VERSIONS_DIR gibt das Verzeichnis für die Versions-Dateien an (default: ./versions)

Beispiele

# 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
BASE=master BRANCH=experimental ./build.sh

Nach erfolgreichem Build-Vorgang liegt die Firmware fertig paketiert im src/output/ Verzeichnis und in versions/ wurde eine Versions-Informationsdatei abgelegt. Unter Angabe dieser Datei kann mit build-version.sh die Version erneut gebaut werden. (siehe auch: Kontroll-Build einer Firmware)

Kontroll-Build einer Firmware

Klone das Repository in dem diese ReadMe liegt, falls noch nicht geschehen und wechsle in das Verzeichnis:

git clone https://git.ffho.net/freifunkhochstift/ffho-firmware-build.git
cd firmware

Durch Aufruf von build-version.sh und Übergabe des Versions-Datei kann eine Firmware erneut gebaut werden. Es werden folgende Umgebungsvariablen optional unterstützt:

  • BROKEN falls "1", erzeuge zusätzlich Firmware-Images für ungetestete Plattformen (default: "0")

Beispiel für Firmware 1.0.6

wget -O versions/1.0.6 https://firmware.hochstift.freifunk.net/1.0.6/build-info.txt
./build_version.sh ./versions/1.0.6