Firmware
Grundsätzlich können alle OpenWRT-fähigen Geräte im Freifunk-KBU-Netz genutzt werden. Hierbei gibt es leider eine wesentlich Einschränkung:
- Jedes Gerät muss zwei WLAN-Netze (ad-hoc + Infrastruktur) betreiben.
- Ad-hoc, um zu meshen
- Infrastruktur, um die Clients zu bedienen.
Viele ältere Geräte können dies nicht (z.B. WRT54G). Dies kann grundsätzlich durch die Nutzung mehrere Geräte umgangen werden. Bitte wende Dich an uns, wenn Du hieran Interesse hast - es wird jedoch kompliziert.
Diese Artikel beschreibt die im Freifunk-KBU-Netz von uns verwendete Firmware.
Hierbei verwenden wir OpenWRT "Attitude Adjusment" (12.09).
Die Firmware basiert auf der Lübecker Freifunk Firmware (LFF).
Für folgende TP-Link Geräte gibt es vorkonfigurierte Downloads (Siehe Installation):
- WRD4300
- WRD3500
- WR1043ND
- WR841N(D)
- WR842N
- WR740N-v4
- WR741ND
Für andere, ebenfalls "Atheros"-basierte Geräte bieten wir ebenfalls Downloads an, die wir - mangels Hardware - jedoch nicht testen können.
Falls keine Downloads für Dein Gerät existieren ist Handarbeit und Expertenwissen notwendig. Falls Du Lust und Zeit hast, vorkonfigurierte Firmware-Dateien für Dein Gerät zu bauen und zu testen, stellen wir die Images gerne ebenfalls online. Frage uns einfach über die Mailingliste
Release
Aktuelle Version
Bitte zur Zeit folgende Hinweise zum Ath9k-Problem beachten
Namensraumen für zukünftige Releases: Freie Filme (http://wiki.creativecommons.org/Films) Das Release 1.2 hat noch keinen Namen (Vorschläge sind willkommen).
Konfiguration
Alle Nodes, die am Freifunk-Netz betrieben werden, müssen wie folgt konfiguriert sein:
- Wlan
- Infrastruktur-Netz: SSID: kbu.freifunk.net
- Ad-Hoc-Netz: ESSID / BSSID: 02:d1:11:37:fc:39 - Kanal: 1
- Netzwerk- / IP-Adressen
- batman-adv, Infrastruktur-Netz müssen in einer Bridge zusammen gefasst werden
- Kein DHCP
- Keine IPv4-Adressen konfigurieren - auch keinen DHCP-Client.
- VPN / fastd:
- Peers
- Konfiguration: - Hinweis: Das wget-Applet in Busybox < 1.19 unterstützt keine Post-Request. Es muss das wget(-no-ssl) Paket verwendet werden.
- batman-adv
- Zugewiesene Interfaces: ad-hoc, VPN
Die einzelnen Konfigurationsdatein können im github heruntergeladen werden. Bitte beachte, dass einige Dateien erst durch Scripts beim ersten Boot generiert werden.
Hinweis: fastd ist in OpenWRT nicht enthalten und muss zusätzlich kompiliert werden.
Optionale Erweiterungen
Statistiken
Es besteht die Möglichkeit, dass wir statistische Daten (Don't Panic) deines Nodes zentral von deinem Node geschickt bekommen und dann graphisch darstellen. Damit wir die Daten von deinem Node erhalten können, benötigst du ssh Zugriff auf deinen Node, sowie die Pakete collectd, collectd-mod-interface und collectd-mod-network.
Hinweis:
Die Pakete sind bei der aktuellen Firmwareversion (1.x) default installiert und konfiguriert . Brauchen also derzeit nicht nachinstalliert zu werden!
Andernfalls:
- Installation der Pakete:
root@node # opkg update root@node # opkg install collectd collectd-mod-interface collectd-mod-network
- Kopiere folgende Datei nach /tmp/collectd.conf.sh und führe sie mit sh /tmp/collectd.conf.sh aus:
#!/bin/sh #Include lib_node.sh for accessing node_id . /lib/freifunk/lib_node.sh # This script creates collectd.conf after flashing. # collectd uses node_id.nodes.kbu.freifunk.net as hostname # nodes.kbu.freifunk.net does not exists at this time (2012-01-15). # However, if needed, it can be set up using register / mysql- or ldap-based bind9 easily - or - # mdns if avahi is configured to resove nodes.kbu.freifunk.net and not .local local hostname="$(get_node_id).nodes.kbu.freifunk.net" cat > /etc/collectd.conf <<EOF Hostname "${hostname}" BaseDir "/var/lib/collectd" PIDFile "/var/run/collectd.pid" Interval 10 ReadThreads 2 LoadPlugin network LoadPlugin interface <Plugin interface> Interface "br-wan" Interface "wlan0-1" IgnoreSelected false </Plugin> <Plugin network> Server "collectd.kbu.freifunk.net" "25827" </Plugin> EOF
Anschließend starte deinen Node neu.
Uplink mit Android-tethering/USB Netzwerkkarte
(ssh Zugang Erfahrung nötig)
Das ganze sei von Anfang an als "sportlich" zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause "DSL" Ersatz Tarife -> 386kbit/s). Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch "traditionell" via LAN Kabel anbinden. Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt. Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -> nicht schöne, aber einfache "Immer"netzlösung? Mein Tablet zeigt nicht dieses Verhalten.)
Blablabla, jetzt geht es los: Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:
- Per ssh in den router einloggen - Installieren der notwendigen Treiber
opkg update opkg install kmod-usb-uhci kmod-usb-net-rndis
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)
- Ihr müsst den Netzwerkzugang für da neue Interface "usb0" noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:
config interface 'wan2' option ifname 'usb0' option proto 'dhcp' option type 'bridge'
Auch unter Luci sollte dies konfigurierbar sein.
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren. - Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.
ifup wan2
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)
Sourcecode-Quellen
Falls Du unsere OpenWRT-Quellen verwenden möchtest (inkl. fastd), dann forke bitte https://github.com/ff-kbu/fff.
Für jedes (beta)-Release gibt es einen Tag.
feeds.conf.default enthält bereits neuere batman-adv und fastd-Pakete.
Somit ist es bspw. möglich, auf dem Router ein gewöhnliches OpenWRT zu installieren und die selbstgebauten Pakete (z.B. fastd) nachträglich einzuspielen.
Bitte beachte die Hinweise zum Kompilieren von OpenWRT (howto build) - Es gibt keine Abweichungen bei dem Build unseres Forks - abgesehen vom git-Repository - es ist kein svn update erforderlich.