Entwicklung
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
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.
# | 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 | Neue Firmware |
Infrastruktur
Zur Entwicklung verwenden wir
- Redmine (Issue-Tracking, Projektplanung): https://redmine.kbu.freifunk.net
- Jenkins (builds, CI): http://jenkins.kbu.freifunk.net
Software
Firmware
Hinweis: Der Text bezieht sich in Teilen auf die kommende Version der Firmware - alte Firmware-Version siehe: Firmware_Build
Ü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 Redmine https://redmine.kbu.freifunk.net/projects/fff 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 v0.3.x $ cd fff $ scripts/feeds update -a $ scripts/feeds install -a $ make
Für TP-Link 1043ND muss der Branch v0.3.x-tl-wr1043nd verwendet werden: git clone git://github.com/ff-kbu/fff.git -b v0.3.x-tl-wr1043nd
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], [2]. Der Jenkins Build kann auch über das Webinterface gestartet werden. Hierzu ist ein Account [3] notwendig.
Source Code Organisation
Der Source-Code der Firmware steht bei github zur Verfügung. Für commits wird ein Github-Account benötigt. Diese Repositories sind am Build der Firmware beteiligt: