Skip to content

Latest commit

 

History

History
158 lines (91 loc) · 7.98 KB

README.wikitext

File metadata and controls

158 lines (91 loc) · 7.98 KB

Gluon ist die Firmware, die wir bei Freifunk Nord für unsere Router verwenden. Entwickelt wurde diese vom Freifunk Lübeck. Die Firmware basiert auf OpenWrt und bietet eine einheitliche Konfiguration für die gesamte Community. Beispielsweise ist es auf einem laufenden Router nicht ohne weiteres möglich die Konfiguration zu ändern. Hierzu sind ein erneutes Kompilieren der Firmware oder ein kompliziertes eingreifen mittels Befehlseingabe nötig. Welche Router man verwenden kann, ist in der Liste der mit Gluon kompatiblen Router zu finden.

Table of Contents

Fertiges Image herunterladen

Wenn du kein Linux verwendest, du dich nicht mit Linux auskennst oder dir einfach nur die Arbeit ersparen willst, dann kannst du die fertigen Images in der Liste der mit Gluon kompatiblen Router herunterladen.

Hier findest du eine Anleitung wenn du Einen Knoten einrichten möchtest.

Kompilieren von Gluon

TODO

in NOrdlippe gibt es noch:

https://wiki.freifunk.net/Freifunk_Nordlippe_Firmware

make dirclean

 make -j$X GLUON_BRANCH=experimental

# Um Gluon zu kompilieren installiert man die benötigten Pakete
 sudo apt-get install git make gcc g++ unzip libncurses5-dev zlib1g-dev subversion gawk bzip2 libssl-dev

# Diese Pakete werden benötigt, um nachher die Toolchain und die Firmware an sich zu kompilieren. Des weitern sollten mind. 7 GB je Target an freiem Speicher auf der Festplatte verfügbar sein. Bei aktuell 7 möglichen Targets sollten bis zu 49 GB an Platz eingeplant werden. Man kann den Freien Speicher im aktuellen Verzeichnis anzeigen mit
 df -BG .

# Hinweis: Wer sein gluon Verzeichnis von der Festplatte gelöscht hat, der kann an dieser Stelle fortsetzen.
# Nun lädt man sich die Source-Files für Gluon aus dem GitHub-Repository von Freifunk Lübeck herunter:
 git clone https://github.com/freifunk-gluon/gluon.git

# Wichtig hierbei ist, dass man sich die Dateien NICHT als root und auch ohne sudo herunterlädt, da es sonst später zu Problemen beim Kompilieren kommen kann:
if [[ $EUID -eq 0 ]]; then echo "cannot be run as root"; exit; fi;
# Als nächstes wechselt man in das automatisch erstellte Verzeichnis
 cd gluon

# Bevor man mit dem Kompilieren beginnen kann ist der richtige Versionszweig (branch, englisch revision) auszuwählen.
# Verfügbare Versionszweige anzeigen
 git branch -a

# z.B. die z.Z. aktuelle stabile Version: 2015.1.x auswählen
  git checkout v2015.1.x

# Wer hier nichts auswählt landet in dem experimentellen Zweig master und riskiert, dass das Kompilieren fehlschlägt.
# (Eine Anleitung wie der Gluon Master erfolgreich gebaut werden kann ist weiter unten zu finden.)
# Wer bisher versucht hat eine experimentelle Version von Gluon zu bauen (gemäß der bisherigen Fassung dieser Anleitung) und auf den stabilen Zweig umsteigen möchte, der sollte sein gluon Verzeichnis auf der Festplatte rekursiv, also inclusive aller Unterverzeichnisse, löschen und neu auschecken also Gluon neu von github.com/freifunk-gluon rerunterladen.
# Da in diesem Repository noch keine Konfiguration dabei ist, muss diese extra heruntergeladen werden. Hierzu führt man in dem Verzeichnis gluon, wo man sich an dieser Stelle der Anleitung schon befinden sollte, folgenden Befehl aus:
 git clone https://github.com/ffnord/site-nord.git site

# Auch hier sicherheitshalber noch darauf achten, den richtigen Zweig auszuwählen.

# wähle den richtigen Zweig aus, z.B. 'master' um die Version 0.7.2 zu bauen
 git checkout master

# (Die Version steht in der Variable DEFAULT_GLUON_RELEASE in der Datei site.mk)
# Dann in das übergeordnete Verzeichnis gluon zurückkehren
 cd ..

# Nun sind fast alle Dateien vorhanden, um mit dem Kompilieren zu beginnen. Die letzten Dateien erhält man mit dem Befehl
 make update

# Dies dauert nur ca eine Minute.
# Am besten die Starzeit merken und dann das Kompilieren starten
 START=$(date)


# Wer ein anderes Target als ar71xx-generic kompilieren möchte muss dieses seperat mit dem Parameter GLUON_TARGET=... angeben
# Eine Liste der vorhandenen Targets gibt es mit
 make GLUON_TARGET=?

# Seit Gluon Version 2014.4.x kann auch beim ersten Build der Paramiter -j siehe weiter unten zur Steigerung der Geschwindigkeit des Kompilierens genutzt werden.
# Es werden nur die gerade kompilierten Dateien angezeigt.
# Wer am Ende wissen möchte warum das Kompilieren fehlschlägt oder zuschauen möchte was im einzelnen passiert der benutzt
 make V=s

# Für den Fall, dass du einen Prozessor mit mehreren Kernen verwendest kannst du hinter "make" die Option "-jX" setzen, wobei X der Anzahl der Kerne deines Prozessors entspricht. Durch diese Zusatzoption arbeiten mehr Kerne am Kompilieren des Codes und es geht schneller als nur mit einem. Wenn man auf einem Server über SSH kompiliert, ist es zu empfehlen das ganze in einer screen, tmux o.ä. Sitzung auszuführen. Das komplette Kompilieren dauert ca. 2 Stunden mit einem Kern, bei einem i7-2600k mit der Option "-j8", also mit 8 Kernen nur kanpp 30 Minuten.
# Die Anzahl Kerne zeigt der Befehl lscpu an, man kann dies automatisch in eine Variable setzen und dann den make Befehl ausführen
 X=$(lscpu|grep -e '^CPU(s):'|xargs|cut -d" " -f2)
 make -j$X V=s

# Nun kann man sich einen Kaffee, eine Mate oder sonst etwas holen, ein paar Dehnübungen machen und warten bis man sich die Kompilierdauer anschauen kann
 date
 echo "Kompiliervorgang abgeschlossen"
 echo "begonnen um $START"

# Sobald das Kompilieren ohne Fehler abgeschlossen ist, findet man die Images im gluon-Ordner unter
 images/factory/

Kompilieren des Gluon Master Branch (aktuell experimental 2015.2)

nur für Experten die wissen was sie tun

Hierzu ist im wesentlichen die Anleitung der stable Version zu befolgen mit folgenden Änderungen:

  1. Der Branch von Gluon ist nicht v2015.1x sondern master
  2. Der Branch für die FFNord site Dateien ist nicht master sondern 2015.2.x
    Dieser Branch wird ersetzt, wenn die fertige Version veröffentlicht wird
  3. Das Ergebnis des Kompiliervorgangs liegt unter ./output/images
Der Sinn den Master Branch zu Bauen und die experimentelle Version 2015.2 zu testen liegt darin, dass die Router eine neue Statussseite erhalten haben. Ausserdem wurde die Anzahl der supporteten Router erhöht.

Wer dieses Feature nutzen möchte kompiliert am Besten mit dem BROKEN=1 Parameter Dann wird zum Beispiel auch der ARCER C5/C7 experimentell unterstützt.

Der Aufruf des kompilierungsvorgangs lautet dann

 make -j8 BROKEN=1 

Warnung: Das Bauen des Master Branches ist nur Linux Experten zu empfehlen.
Es kann nicht garantiert werden dass das Kompilieren erfolgreich verläuft da an dem Master Branch ständig gearbeitet wird.

Signieren von Images

Wenn man die Gluon-Images für automatische Updates signieren möchte muss man zuerst eine Manifest-Datei erzeugen, in der die Signaturen enthalten sein werden. Wichtig hierzu ist, dass auf dem System die ECDSA Utils vorhanden sind.

Um die Manifest-Datei zu erzeugen gehen wir in das Gluon Verzeichnis und führen dort den folgenden Befehl aus:

 make manifest GLUON_BRANCH=stable

Nun finden wir unter images/sysupgrade eine Datei mit dem Namen "stable.manifest".

Nun müssen wir nur noch den script zum signieren der Images ausführen. Die Befehlsreihenfolge ist die folgende:

 ./contrib/sign.sh pfad/zur/secret/key/datei pfad/zur/manifest/datei>

Links