Firmware-Freifunk-Lübeck: Unterschied zwischen den Versionen

Aus Freifunk Köln, Bonn und Umgebung
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(26 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Archiv]]
{{:Archiv-Hinweis}}
== Einleitung ==
== 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
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
Zeile 5: Zeile 8:


== Strategie Freifunk Lübeck ==
== Strategie Freifunk Lübeck ==
[[Datei:Vorgehen-lff.png|thumb|400px|right|Vorgehen Freifunk Lübeck]]
[[Datei:Vorgehen-lff.png|thumb|600px|right|Data Link Layer (OSI-2)]]


Anders als zunächst diskutiert, verwendet Freifunk Lübeck kein VPN. Alle Nodes bilden über batman-adv eine große (OSI-2/3) Kollisionsdomäne. Verbidungen zwischen abgelegenen Nodes sollen (werden?) teilweise per Richtfung überbrügt werden. Dabei gibt es einige technische Unterschiede zu unserer Planung
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''
* Fokus auf DIR-300 als Node-Hardware. Für andere Gerätetypen gibt es keine Firmware. ''In Planung: Images für TP-Link''
Zeile 13: Zeile 16:
* Kompilieren eigene Firmware aus den OpenWRT-Quellen - keine Verwendung des Image-Builders.
* Kompilieren eigene Firmware aus den OpenWRT-Quellen - keine Verwendung des Image-Builders.


Die einzelnen Nodes sind (grob gesehen) wie folgt konfiguriert [http://krtek.asta.uni-luebeck.de/meutewiki/MetaMeuteMesh/L%C3%BCbeck-Freifunk-Router/L%C3%BCbeck-Freifunk-Firmware/Richtlinien]
* 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
<br />
**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 =
= 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.
Der Build-Prozess ist unter: http://krtek.asta.uni-luebeck.de/meutewiki/MetaMeuteMesh/L%C3%BCbeck-Freifunk-Router/L%C3%BCbeck-Freifunk-Firmware dokumentiert.


Zur Organisation des Quellcodes gibt es seitens der Lübecker Freifunker leider keine sinnvoll nutzbare Dokumentation. http://krtek.asta.uni-luebeck.de/meutewiki/MetaMeuteMesh/L%C3%BCbeck-Freifunk-Router/L%C3%BCbeck-Freifunk-Firmware/Repository-Design-Concept soll dies zwar erklären, leistet dies aber nicht. Zitat: ''WIP WIP stupid text so far WIP WIP WIP'' (Stand: 3.9.2011).
Die Quellen der Lübecker Firmware verteilen sich auf 4 Repositories:
 
* [http://krtek.asta.uni-luebeck.de/repos/LuebeckFreifunkFirmware/ LuebeckFreifunkFirmware] - Fork des OpenWRT-Repositories mit einigen, weniges Patches (genutzte seeds, dnsmasq). 
** master - Quellen der Lübecker Firmware
** openwrt-backfire - Unmodifiziertes OpenWRT
* [http://krtek.asta.uni-luebeck.de/repos/LFF-Packages/ 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
* [http://krtek.asta.uni-luebeck.de/repos/LFF-Profiles/ 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.
* [http://krtek.asta.uni-luebeck.de/repos/LFF-Info/  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.


Die Quellen der Lübecker Firmware verteilen sich auf 3 Repositories:
= Entwicklungsansätze =
* http://krtek.asta.uni-luebeck.de/repos/LuebeckFreifunkFirmware/ - Fork des OpenWRT-Repositories mit einigen, weniges Patches (genutzte seeds, dnsmasq). Diese Haupt-Repositories refrenziert die beiden anderen und wird zum kompilieren geklont.
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.

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

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.