Firmware-Freifunk-Lübeck: Unterschied zwischen den Versionen
Yanosz (Diskussion | Beiträge) |
Yanosz (Diskussion | Beiträge) |
||
Zeile 47: | Zeile 47: | ||
Hierbei refrenziert LuebeckFreifunkFirmware das LFF-Profiles-Repository, während LFF-Profiles das Repository LFF-Info referenziert. Somit es ein Klon des Repositories LuebeckFreifunkFirmware für die Entwicklung ausreichend. | Hierbei refrenziert LuebeckFreifunkFirmware das 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: | 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. | * Trennung zwischen OpenWRT-Config (.config) und Paket-Konfigurationen (/etc/config) - Ziel: Vereinfachung der Distributierung, unterstützung weiterer Plattformen. |
Version vom 3. September 2011, 12:45 Uhr
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
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
- 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'
- brided mit bat0
- Master / AP (2) (falls zusätzlich möglich)
- SSID: 'luebeck.freifunk.net - Info'
- Leitet jeden Webseitenzugriff auf einen Info-Seite um.
- Ad-Hoc
- Routing
- Protokoll: B.A.T.M.A.N.-Advanced, compat-Version 12 (z.B. batman-adv 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 3 Repositories:
- LuebeckFreifunkFirmware - Fork des OpenWRT-Repositories mit einigen, weniges Patches (genutzte seeds, dnsmasq).
- master - Quellen der Lübecker Firmware
- openwrt-backfire - Unmodifiziertes OpenWRT
- LFF-Profiles - Ablage der Node-Konfiguration. Brances:
- 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-Info - Info-Web-Seite. Wird die andere SSID verteilt.
Hierbei refrenziert LuebeckFreifunkFirmware das 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 Ersetzen der plattform-abhängigen Interface-Namen durch ein postinst-Scribt des Pakets
- Nutzung des Image-Builders statt eigener Builds
- Aufname von tinc / OpenVPN. Download zugh. config per http.