Entwicklung: Unterschied zwischen den Versionen
Yanosz (Diskussion | Beiträge) |
Yanosz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(76 dazwischenliegende Versionen von 6 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 = | |||
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 | |||
|- class="hintergrundfarbe6" | |- class="hintergrundfarbe6" | ||
!| Software !! | Funktion | !| # !! |Software !! | Funktion !! | github-Repository !! class="unsortable" | Hinweis | ||
|- | |- | ||
| 1 | |||
| Firmware | |||
| OpenWRT für Nodes | |||
| | |||
* https://github.com/ff-kbu/fff (neu) | |||
* https://github.com/ff-kbu/fff-kbu (alt) | |||
| Zzgl. git-repos für packages, submodules. | |||
|- | |||
| 2 | |||
| ff-serv | | ff-serv | ||
| | | Portal-Seite: | ||
* Node-Registrierung / Karte | * Node-Registrierung / Karte | ||
* Annahme von Tinc-Keys | * Annahme von Tinc-Keys | ||
| https://github.com/ff-kbu/ff-serv/tree/v2 | | | ||
* https://github.com/ff-kbu/ff-serv/tree/v2 | |||
| Aktuelle Entwicklung im "v2"-branch | | Aktuelle Entwicklung im "v2"-branch | ||
|- | |- | ||
| 3 | |||
| client-script | |||
| Konfiguration Debian-Clients für das mesh-Netz | |||
| | |||
* https://github.com/ff-kbu/client-script | |||
| Alte Firmware | |||
|- | |||
| 4 | |||
| Info Seite | |||
| Information für Freifunk-Nutzer (eigene SSID) | |||
| | |||
* https://github.com/ff-kbu/freifunk-kbu-info-page (Quellcode) | |||
* https://github.com/ff-kbu/freifunk-kbu-info-page-export (HTML-Export) | |||
| Alte Firmware - Nutzung in Zukunft? | |||
|- | |||
| 5 | |||
| fastd-upload | | fastd-upload | ||
| Annahme von fastd-Keys auf VPN-Servern ( | | Annahme von fastd-Keys auf VPN-Servern | ||
| https://github.com/ff-kbu/ | | | ||
* https://github.com/ff-kbu/fastd-service | |||
| | | deprecated, server pruefen node keys nicht mehr | ||
|- | |||
|} | |||
= Infrastruktur = | |||
Zur Entwicklung verwenden wir | |||
* YouTrack: http://tracker.kbu.freifunk.net/ | |||
* Jenkins (builds, CI): https://kbu.freifunk.net/jenkins | |||
= Software = | |||
== Firmware == | |||
<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 === | |||
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 . <br /> | |||
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 === | |||
* OpenWRT 12.09 "Attitude Adjustment" pre-Release, Snapshot - https://dev.openwrt.org/ | |||
* batman-adv 2012.4.0 http://www.open-mesh.org/projects/batman-adv/wiki | |||
* fastd 6 https://projects.universe-factory.net/projects/fastd | |||
Als Topologie wird [[Netzwerk-Konfiguration#Komplettes_Bridging |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 [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. | |||
=== 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: | |||
{| class="wikitable" | |||
|- class="hintergrundfarbe6" | |||
!| Name !! | URL !! | Funktion | |||
|- | |- | ||
| | | fff | ||
| | | https://github.com/ff-kbu/fff | ||
| https://github.com/ff-kbu/ | | 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 <tt>fff</tt> Repository zu finden. Alle andere Repositories sind in <tt>feeds.conf.default</tt> 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 <tt>v0.3.x</tt> bzw. <tt>v0.3.x-tl-wr1043nd</tt>. Die Umbenennung erlaubt ein einfaches, lokales Wechseln der Branches | |||
* Key-Upload via curl ([https://github.com/ff-kbu/fff/commit/3f2e1feba5d6661321bb8bff0ad7e9ffeb716da4], [https://github.com/ff-kbu/fff/commit/21a430cdce3f0bc1f580bab1278a67500ca338f4]) | |||
* Mesh-VPN per default aktiviert. [https://github.com/ff-kbu/fff/commit/2895b16d0b3f75497dcc5f7ec0280e787d615ee4] | |||
* BSSID / ESSID geändert [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-generic] 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 | |||
[[Kategorie:Netz-und-Technik]] |
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:
|
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
- YouTrack: http://tracker.kbu.freifunk.net/
- Jenkins (builds, CI): https://kbu.freifunk.net/jenkins
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
- OpenWRT 12.09 "Attitude Adjustment" pre-Release, Snapshot - https://dev.openwrt.org/
- batman-adv 2012.4.0 http://www.open-mesh.org/projects/batman-adv/wiki
- fastd 6 https://projects.universe-factory.net/projects/fastd
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