Entwicklung: Unterschied zwischen den Versionen

Aus Freifunk Köln, Bonn und Umgebung
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Archiv]]
{{:Archiv-Hinweis}}
Diese Seite beschreibt die Entwicklung der Firmware und Tools für das Freifunk-KBU-Projekt. Dabei wird die Organisation der Git-Repositories, der Build-Prozess und die Architektur der Firmware beschrieben.
Diese Seite beschreibt die Entwicklung der Firmware und Tools für das Freifunk-KBU-Projekt. Dabei wird die Organisation der Git-Repositories, der Build-Prozess und die Architektur der Firmware beschrieben.


= Übersicht =
= Übersicht =
Bei Freifunk-KBU verwendet diese Software. Der Quellcode ist auf github abgelegt (https://github.com/ff-kbu). Nach einer kurzen Übersicht wird die Entwicklung im Detail beschrieben.
Freifunk-KBU verwendet diese Software. Der Quellcode ist auf github abgelegt (https://github.com/ff-kbu). Nach einer kurzen Übersicht wird die Entwicklung im Detail beschrieben.


{| class="wikitable"
{| class="wikitable"
Zeile 44: Zeile 47:
| Annahme von fastd-Keys auf VPN-Servern
| Annahme von fastd-Keys auf VPN-Servern
|  
|  
* https://github.com/ff-kbu/fastd-upload
* https://github.com/ff-kbu/fastd-service
| Neue Firmware
| deprecated, server pruefen node keys nicht mehr
|-
|-
|}
|}
Zeile 51: Zeile 54:
= Infrastruktur =
= Infrastruktur =
Zur Entwicklung verwenden wir
Zur Entwicklung verwenden wir
* Redmine (Issue-Tracking, Projektplanung): https://redmine.kbu.freifunk.net
* YouTrack: http://tracker.kbu.freifunk.net/
* Jenkins (builds, CI): http://jenkins.kbu.freifunk.net
* Jenkins (builds, CI): https://kbu.freifunk.net/jenkins


= Software =
= Software =
== Firmware ==
== Firmware ==
<span style="color:red"> Hinweis: Der Text bezieht sich in Teilen auf die ''kommende'' Version der Firmware - alte Firmware-Version siehe: [[Firmware_Build]]</span>
 
<span style="color: #C00">Hinweis. Die folgenden Informationen beziehen sich auf die derzeit stabile Version ("1.0").</span>
[[1.1-Test-Status|Aktueller Status]]


=== Übersicht ===
=== Übersicht ===
Zeile 62: Zeile 67:
Freifunk-Kiel stellt umfangreichere Informationen zum Umgang mit der Firmware zur Verfügung: http://freifunk.in-kiel.de/wiki/Firmware - hier wird die Installation der Firmware auf Freifunk-Nodes erklärt.
Freifunk-Kiel stellt umfangreichere Informationen zum Umgang mit der Firmware zur Verfügung: http://freifunk.in-kiel.de/wiki/Firmware - hier wird die Installation der Firmware auf Freifunk-Nodes erklärt.


Zur Koordination der Entwicklung wird Redmine https://redmine.kbu.freifunk.net/projects/fff verwendet.
Zur Koordination der Entwicklung wird http://tracker.kbu.freifunk.net/ verwendet.


=== Architektur / Technik ===
=== Architektur / Technik ===
Zeile 78: Zeile 83:
=== Build der Firmware ===
=== Build der Firmware ===
Der Build erfolgt analog zu OpenWRT - es werden die gleichen build-dependencies benötigt (vgl. http://wiki.openwrt.org/doc/howto/build). Ein einfacher build für ''TP-Link 741ND'' erfolgt wie folgt:
Der Build erfolgt analog zu OpenWRT - es werden die gleichen build-dependencies benötigt (vgl. http://wiki.openwrt.org/doc/howto/build). Ein einfacher build für ''TP-Link 741ND'' erfolgt wie folgt:
  $ git clone git://github.com/ff-kbu/fff.git -b v0.3
  $ git clone git://github.com/ff-kbu/fff.git -b 1_2_STABLE
  $ cd fff
  $ cd fff
  $ scripts/feeds update -a
  $ scripts/feeds update -a
Zeile 84: Zeile 89:
  $ make
  $ make


Für ''TP-Link 1043ND'' muss der Branch v0.3-tl-wr1043nd verwendet werden: <tt>git clone git://github.com/ff-kbu/fff.git -b v0.3-tl-wr1043nd</tt>
Firmware-Images für die Geräte TP-Link 741ND und TP-Link 1043ND werden täglich via Jenkins gebaut, falls Änderungen im fff-Repository vorliegen [http://jenkins.kbu.freifunk.net/jenkins/job/fff-v0.3-generic-continous/]. Der Jenkins Build kann auch über das Webinterface gestartet werden. Hierzu ist ein Account [mailto:jan@jluehr.de?subject=KBU-Jenkins-Account] notwendig.
 
Firmware-Images für die Geräte TP-Link 741ND und TP-Link 1043ND werden täglich via Jenkins gebaut, falls Änderungen im fff-Repository vorliegen [http://jenkins.kbu.freifunk.net/jenkins/job/fff-v0.3-continous/], [http://jenkins.kbu.freifunk.net/jenkins/job/fff-v0.3-tl-wr1043nd-continous/]. Der Jenkins Build kann auch über das Webinterface gestartet werden. Hierzu ist ein Account [mailto:jan@jluehr.de?subject=KBU-Jenkins-Account] notwendig.


=== Source Code Organisation ===
=== Source Code Organisation ===
Zeile 129: Zeile 132:
* BSSID / ESSID geändert [https://github.com/ff-kbu/fff/commit/e12d8d1d6f9472f6d775facf4559a00b96e10a52]
* BSSID / ESSID geändert [https://github.com/ff-kbu/fff/commit/e12d8d1d6f9472f6d775facf4559a00b96e10a52]
* fastd Verschlüsselung deaktiviert [https://github.com/ff-kbu/fff/commit/e12d8d1d6f9472f6d775facf4559a00b96e10a52]
* fastd Verschlüsselung deaktiviert [https://github.com/ff-kbu/fff/commit/e12d8d1d6f9472f6d775facf4559a00b96e10a52]
Weitere Änderungen sind dem commit-Log  zu entnehmen [https://github.com/ff-kbu/fff/commits/v0.3] und betreffen keine konzeptionell wichtigen Details.
Weitere Änderungen sind dem commit-Log  zu entnehmen [https://github.com/ff-kbu/fff/commits/v0.3-generic] und betreffen keine konzeptionell wichtigen Details.


=== Nützliche Dinge ===
=== Nützliche Dinge ===
* Liste aller offnen Issues: https://redmine.kbu.freifunk.net/projects/fff/issues
* Merge aus Lübeck (z.B. fff):
* Merge aus Lübeck (z.B. fff):
  $ git clone git://git.metameute.de/lff/firmware -b v0.3.x
  $ git clone git://git.metameute.de/lff/firmware -b v0.3.x
Zeile 140: Zeile 142:
  $ git merge v0.3.x
  $ git merge v0.3.x


== ff-serv ==
[[Kategorie:Netz-und-Technik]]
== client-script ==
== Info-Seite ==
== fastd-upload ==

Aktuelle Version vom 28. August 2019, 11:02 Uhr

Hinweis: Diese Seite wurde in das Archiv verschoben. Die Informationen sind größtenteils veraltet und nur für Spezialfälle relevant.

Diese Seite beschreibt die Entwicklung der Firmware und Tools für das Freifunk-KBU-Projekt. Dabei wird die Organisation der Git-Repositories, der Build-Prozess und die Architektur der Firmware beschrieben.

Übersicht

Freifunk-KBU verwendet diese Software. Der Quellcode ist auf github abgelegt (https://github.com/ff-kbu). Nach einer kurzen Übersicht wird die Entwicklung im Detail beschrieben.

# Software Funktion github-Repository Hinweis
1 Firmware OpenWRT für Nodes Zzgl. git-repos für packages, submodules.
2 ff-serv Portal-Seite:
  • Node-Registrierung / Karte
  • Annahme von Tinc-Keys
Aktuelle Entwicklung im "v2"-branch
3 client-script Konfiguration Debian-Clients für das mesh-Netz Alte Firmware
4 Info Seite Information für Freifunk-Nutzer (eigene SSID) Alte Firmware - Nutzung in Zukunft?
5 fastd-upload Annahme von fastd-Keys auf VPN-Servern deprecated, server pruefen node keys nicht mehr

Infrastruktur

Zur Entwicklung verwenden wir

Software

Firmware

Hinweis. Die folgenden Informationen beziehen sich auf die derzeit stabile Version ("1.0"). Aktueller Status

Übersicht

Die Firmware im Freifunk-KBU Netz ist ein Fork der Lübecker Freifunker und basiert auf OpenWRT 12.09 "Attitude Adjustment". Hinweise: http://freifunk.metameute.de/wiki/Firmware .
Freifunk-Kiel stellt umfangreichere Informationen zum Umgang mit der Firmware zur Verfügung: http://freifunk.in-kiel.de/wiki/Firmware - hier wird die Installation der Firmware auf Freifunk-Nodes erklärt.

Zur Koordination der Entwicklung wird http://tracker.kbu.freifunk.net/ verwendet.

Architektur / Technik

Als Topologie wird Komplettes Bridging verwendet. Über fastd werden batman-adv Frames versendet. Zu Testzwecken stehen diese fastd-Server zur Verfügung

  • fastd1.kbu.freifunk.net (RZ Berlin)
  • fastd3.kbu.freifunk.net (yanosz / Hetzner)

Der batman-adv Gateway-Modus wird verwendet. fastd-Server sind Gateways, Nodes sind Clients. Jedes Gateway gibt die Exit-Bandbreite an erfolgt der Exit via tor, so wird 1024K/1024K angegeben.

Build der Firmware

Der Build erfolgt analog zu OpenWRT - es werden die gleichen build-dependencies benötigt (vgl. http://wiki.openwrt.org/doc/howto/build). Ein einfacher build für TP-Link 741ND erfolgt wie folgt:

$ git clone git://github.com/ff-kbu/fff.git -b 1_2_STABLE
$ cd fff
$ scripts/feeds update -a
$ scripts/feeds install -a
$ make

Firmware-Images für die Geräte TP-Link 741ND und TP-Link 1043ND werden täglich via Jenkins gebaut, falls Änderungen im fff-Repository vorliegen [1]. Der Jenkins Build kann auch über das Webinterface gestartet werden. Hierzu ist ein Account [2] notwendig.

Source Code Organisation

Der Source-Code der Firmware steht bei github zur Verfügung. Für commits wird ein Github-Account benötigt. Die Organisation der Repositories ist von der Lübecker-Firmware abgeleitet. Für jedes dort genutzte Repository existiert ein Fork auf github. In (fast) alle Repositories existiert ein Branch v0.3 indem die aktuelle Entwicklung abgelegt ist. (Ausnahme: fastd, da eigene Releases)

Diese Repositories sind am Build der Firmware beteiligt:

Name URL Funktion
fff https://github.com/ff-kbu/fff OpenWRT-Fork mit Initial-Dateien zum Build der Firmware.
fff-luci https://github.com/ff-kbu/fff-luci Feed: Luci-Fork auf Codebasis des Config-Modes
fff-config-mode https://github.com/ff-kbu/fff-config-mode Feed: Luci Modul config_mode als OpenWRT-Paket
fff-fastd https://github.com/ff-kbu/fff-fastd Feed: fastd als OpenWRT-Paket
fff-packages https://github.com/ff-kbu/fff-packages Feed: Fork des OpenWRT-Package-Feeds

Hinweise:

  • Das Makefile ist im fff Repository zu finden. Alle andere Repositories sind in feeds.conf.default referenziert und werden automatisch beim Build eingebunden.
  • Zukünftigt ist ggf. ein Verzicht auf einige OpenWRT-Forks (Basis, Luci, Packages) möglich. Voraussetzung hierfür sind nutzbare OpenWRT-Releases von Attitude Adjustment. Hintergrund: Kein build gegen moving-targets - builds müssen reproduzierbar sein.

Abweichungen Freifunk-Lübeck

Folgende Abweichungen existieren:

  • Namen der Branches - Lübeck verwendet v0.3.x bzw. v0.3.x-tl-wr1043nd. Die Umbenennung erlaubt ein einfaches, lokales Wechseln der Branches
  • Key-Upload via curl ([3], [4])
  • Mesh-VPN per default aktiviert. [5]
  • BSSID / ESSID geändert [6]
  • fastd Verschlüsselung deaktiviert [7]

Weitere Änderungen sind dem commit-Log zu entnehmen [8] und betreffen keine konzeptionell wichtigen Details.

Nützliche Dinge

  • Merge aus Lübeck (z.B. fff):
$ git clone git://git.metameute.de/lff/firmware -b v0.3.x
$ git remote add github git@github.com:ff-kbu/fff.git 
$ git fetch github 
$ git checkout -t github/v0.3 
$ git merge v0.3.x