Firmware-Freifunk-Lübeck

Aus Freifunk Köln, Bonn und Umgebung
Version vom 28. August 2019, 11:18 Uhr von Yanosz (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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

Einleitung

In Lübeck gibt es ein Freifunk-Netz, das mit unseren Ideen vergleichbar ist. Ihre Firmware kann Input oder Ausgangsbasis für unsere Firmware sein. Weitere Infos: http://krtek.asta.uni-luebeck.de/meutewiki/MetaMeuteMesh

Images der Firmware gibt es leider (Stand: 3.9. 2011) nicht zum Download - sie muss aus den Quellen kompiliert werden.

Strategie Freifunk Lübeck

Data Link Layer (OSI-2)

Anders als zunächst diskutiert, verwendet Freifunk Lübeck kein automatisches VPN auf den Routern selber - nur an gewählten Punkten werden manuell VPNs auf PCs oder Routern mit Alix Board (und demnächst auch TP-Link TL-WR1043ND) eingerichtet. Alle Nodes bilden über batman-adv eine große (OSI-2/3) Kollisionsdomäne. Verbindungen zwischen abgelegenen Nodes sollen (werden?) teilweise per Richtfunk überbrückt werden. Dabei gibt es einige technische Unterschiede zu unserer Planung

  • Fokus auf DIR-300 als Node-Hardware. Für andere Gerätetypen gibt es keine Firmware. In Planung: Images für TP-Link
  • Präferenz für tinc als VPN (im Gegensatz zu OpenVPN).
  • Kompilieren eigene Firmware aus den OpenWRT-Quellen - keine Verwendung des Image-Builders.

Die einzelnen Nodes sind (grob gesehen) wie folgt konfiguriert [1]

  • WLAN
    • Ad-Hoc
      • Modus: Adhoc
      • ESSID: 'mesh.freifunk.net' - BSSID / CellID: 02:22:B0:44:94:5D
      • Modulation: (mindestens) 802.11g - Kanal: 1 (= 2.412GHz)
    • Master / AP (falls zusätzlich möglich)
      • ESSID: 'luebeck.freifunk.net'
      • bridged mit bat0
    • Master / AP (2) (falls zusätzlich möglich)
      • SSID: 'luebeck.freifunk.net - Info'
      • Leitet jeden Webseitenzugriff auf einen Info-Seite um.
  • Routing
    • Protokoll: B.A.T.M.A.N.-Advanced, compat-Version 12 (z.B. batman-adv 2011.2.0, 2011.1.0 oder 2011.0.0)
    • Protokoll Konfiguration: i.d.R. gw_mode 'client' (außer man bietet einen Internetzugang mit DHCP an, dann 'server')

Entwicklung / Build

Der Build-Prozess ist unter: http://krtek.asta.uni-luebeck.de/meutewiki/MetaMeuteMesh/L%C3%BCbeck-Freifunk-Router/L%C3%BCbeck-Freifunk-Firmware dokumentiert.

Die Quellen der Lübecker Firmware verteilen sich auf 4 Repositories:

  • LuebeckFreifunkFirmware - Fork des OpenWRT-Repositories mit einigen, weniges Patches (genutzte seeds, dnsmasq).
    • master - Quellen der Lübecker Firmware
    • openwrt-backfire - Unmodifiziertes OpenWRT
  • LFF-Packages - Fork des OpenWRT-Package-Repositories mit evtl. Downgrades von Paketen zur Kompatibilität und wenigen extra Patches
    • master - OpenWRT-Package-Repository + Patches
    • openwrt - Unmodifiziertes OpenWRT-Package-Repository
  • LFF-Profiles - Ablage der Node-Konfiguration. Branches:
    • master - leer, uninteressant
    • lff-dlink-dir300 - Ablage der Konfiguration des DIR-300. Inhalt:
      • .config - Konfiguration für den OpenWRT-Build (aus make Menuconfig erstellt)
      • files - Konfiguration für das Lübecker Freifunk-Netz. Einige Dateien sind geräteabhängig.
    • lff-tl-wr1043nd - Ablage der Konfiguration des TP-Link WR1043ND. Inhalt: s.o.
    • lff-tl-wr741nd - Ablage der Konfiguration des TP-Link WR741ND. Inhalt: s.o.
  • LFF-Info - Info-Web-Seite. Wird über die andere SSID verteilt.

Hierbei refrenziert LuebeckFreifunkFirmware das LFF-Packages-Repository und LFF-Profiles-Repository, während LFF-Profiles das Repository LFF-Info referenziert. Somit es ein Klon des Repositories LuebeckFreifunkFirmware für die Entwicklung ausreichend.

Entwicklungsansätze

Zur Nutzung mit Freifunk-KBU sind diese Ansätze denkbar:

  • Trennung zwischen OpenWRT-Config (.config) und Paket-Konfigurationen (/etc/config) - Ziel: Vereinfachung der Distributierung, Unterstützung weiterer Plattformen.
  • Paketierung der Konfiguration
    • Es gibt ein plattformunabhängiges Konfigurationspaket dies zieht alle benötigten Pakete nach.
    • Für die Konfiguration gibt es template Dateien. Beispiel: /etc/config/network -> /etc/config/network.template und rsetzen der plattform-abhängigen Interface-Namen durch ein postinst-Scribt des Pakets(z.B. sed s/%wlan_if%/$REAL_WLAN_IF/g < /etc/config/network.template > /etc/config/network)
  • Nutzung des Image-Builders statt eigener Builds
  • Aufname von tinc / OpenVPN. Download zugh. config per http.