Arbeitsgruppe FoneraPlus

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche

Achtung dies ist ein WoW (Maintainer: siehe Changelog)


Auf dieser Seite sollen Informationen rund um die Fonera+ gesammelt werden: best practice Konfigurationen im Funknetz, neue Ideen, Probleme, Testergebnisse, Anleitungen. Dadurch sollen know how für den Einsatz im Funknetz gesammelt und die Weiterentwicklung von Firmwares vorangetrieben werden. Auch wenn diese Seite am Anfang nicht primär für unerfahrene Benutzer gedacht ist, werden die Informationen hier für die Entwicklung einer Enduserfirmware nützlich sein.

Hardware

Die Fonera+ unterscheidet sich äußerlich von der Fonera fast nur durch einen zweiten Ethernetport und das wesentlich größere Gehäuse. Schraubt man die Fonera+ auf, so sieht man, dass die Platine schon für die Fonera2 (mit USB) vorbereitet sein dürfte. Es sind also keine großen Änderungen zur Fonera2 zu erwarten - ein Grund mehr warum gute Unterstützung für die Fonera+ sinnvoll erscheint.

Die Fonera+ wird seit einiger Zeit von OpenWRT unterstützt, aber nicht vom letzten Release kamikaze 7.09. Allerdings gibt es derzeit noch einige Mängel...

Gleichzeitig ist die Fonera+ auch zur Fonera weitgehend kompatibel geblieben. Auf der OpenWRT Wiki-Seite zur Fonera findet man viele Informationen die auch für die Fonera+ gelten.

Konfiguration für aktuelles (8.09) kamikaze und 0xFF

Es gibt eine vorbereitete best practice Konfiguration für die Fonera(+) und kamikaze für den Einsatz im Funkfeuer Mesh. Die Installation ist denkbar einfach:

Entweder (für die Fonera+)

oder (für die Fonera)

herunterladen und nach /tmp auf dem Router, auf dem bereits kamikaze läuft, kopieren: | scp 0xff-bootstrap-fonera_0.4.tgz root@192.168.1.1:/tmp/

Dann auf dem Router einloggen, das Archiv entpacken und das 0xff-bootstrap Skript mit der gewünschten wlan-IP starten: | ssh root@192.168.1.1 | cd /tmp/ | tar -xzf 0xff-bootstrap-fonera_0.4.tgz | ./0xff-boostrap 10.42.42.1 # Use your own IP!!!

Das war's! Wenn du willst, kannst du selber noch ein paar Konfigurationsdateien bearbeiten, musst du aber wahrscheinlich nicht. Neu starten und die Fonera sollte sich mit dem Mesh verbinden.

Siehe den nächsten (obsoleten) Abschnitt für Hintergrundinformationen.

Experimentelle Firmware für 0xFF (obsolet)

Um die Arbeit an der Fonera+ zu erleichtern, gibt es eine eigene Firmware für Funkfeuer, die jeder verwenden kann, der mit ssh/putty und einem Texteditor umgehen kann. Die Firmware orientiert sich möglichst nahe an OpenWRT, hat aber ein paar kleinere Änderungen um Experimente leichter zu machen:

  • keine Firewall
  • statische IPs für LAN/WAN
  • Kein olsrd im read only Dateisystem, damit Tests mit verschienen Versionen leicht gemacht werden können
  • Das Tool "ip" ist installiert, wie in der Freifunkfirmware
  • Das Tool "patch" ist installiert, für einfache Konfigupdates
  • traffic priorization: OLSR traffic vor allem anderen

Herunterladen

Die Firmware besteht momentan aus folgenden Dateien:

Die Firmware funktioniert auch mit der "normalen" Fonera. Dafür gibt es einen eigenen leicht veränderten Konfigtarball:

Original OpenWrt

Der Konfigtarball funktioniert auch mit den originalen Firmwareimages von OpenWrt. (Aktuelle Snapshots oder Release Candidates) - Allerdings müssen ein paar Pakete nachinstalliert werden.

  • ip - für wait4default
  • kmod-sched - Kernelmodule für olsr traffic control
  • tc - für olsr traffic control

Für alles weitere sollte es keinen Unterschied machen welche Firmware verwendet wird.

Installation

Flashen

Zuerst müssen das Kernelimage und das Dateisystem auf die Fonera+ geschrieben werden. Eine recht ausfühliche Anleitung gibt's im OpenWRT-Wiki.

Für Experten: Der RedBoot der Fonera+ wartet auf der Adresse 192.168.1.1 und Port 9000 für 2 Sekunden auf eine Verbindung von 192.168.1.254.

Konfiguration

Nach dem Flashen wird die Fonera neu gestartet und wartet dann auf der Adresse 192.168.1.1 auf eine telnet Verbindung (diesmal standard telnet port). Sobald mit dem Befehl "passwd" ein Passwort gesetzt wird, kann man sich mit "ssh root@192.168.1.1" einloggen, dafür gibt es dann kein telnet mehr ...

Der Konfigtarball enthält ein vollständig lauffähiges Funkfeuersetup, allerdings sollten ein paar Dinge (zumindest die IP Adressen!) angepasst werden. Der Tarball kann einfach auf die Fonera+ kopiert und dann im Wurzelverzeichnis ausgepackt werden:

scp 0xff-config-fonera+_0.3.tgz root@192.168.1.1:/tmp/
cd /
tar -xzf /tmp/0xff-config-fonera+_0.3.tgz

Die zu ändernden Einstellungen sind durch spezielle Kommentare markiert, die mit grep leicht gefunden werden können:

grep -r Edit.this /etc  ... diese Einstellung MUSS geändert werden
grep -r Maybe.edit.this /etc  ... weitere Einstellungen wie Kanal
grep -ri edit.this /etc  ... findet noch mehr

Wer sich mit dem auf der Firmware installierten vi nicht wohlfühlt, kann den Konfigtarball auch zuerst am PC entpacken, dort editieren und dann erst auf die Fonera+ transferieren. Aber Vorsicht beim Entpacken am PC: Der Tarball legt kein eigenes Unterverzeichnis an, weil er für das Entpacken im / des Routers vorbereitet ist.

OLSR

Der Router sollte jetzt eigentlich fertig konfiguriert sein, aber wir brauchen noch zusätzliche Software - insbesonder den olsrd - bevor er einsatzbereit ist. Um die Installation auf Routern ohne Internet zu erleichtern, gibt es die Datei olsr-minimal.tgz, diese wird auf den Router kopiert, entpackt und die Pakete installiert:

am PC:

scp olsr-minimal.tgz root@192.168.1.1:/tmp/

am Router:

cd /tmp
tar -xzf olsr-minimal.tgz
opkg install libpthread_XXX_mips.ipk
opkg install olsrd_XXX_mips.ipk
opkg install olsrd-mod-httpinfo_XXX_mips.ipk
opkg install olsrd-mod-txtinfo_XXX_mips.ipk
/etc/init.d/olsr-ff enable        # Starte olsrd beim booten
/etc/init.d/olsr-ff start         # Starte olsrd jetzt!
/etc/init.d/rtprio enable
/etc/init.d/rtprio start

Spätestens jetzt sollten wir Internet auf unserem Router haben. Das heißt jetzt ist ein guter Zeitpunkt, um noch mehr Software (zum Beispiel tcpdump) zu installieren:

opkg update
opkg install foo
opkg install bar

Wer gerne eine aktuelle Zeit auf seinem Router hat, kann auch noch folgendes machen:

/etc/init.d/wait4default enable
/etc/init.d/rdate enable

Jetzt ist auch ein guter Zeitpunkt um den Router einmal neu zu starten und zu sehen, ob wirklich alles automatisch funktioniert wie es soll.

Probleme

Hier werden technische Mängel der Firmware gesammelt. Bei der Lösung ist enge Zusammenarbeit mit OpenWRT notwendig und sinnvoll. Je nach Möglichkeit bitte Verweise auf Tickets, Links, etc. einfügen.

  • Der Ethernet Switch empfängt keine Daten, wenn eth0 nicht im promiscuous mode ist - sobald man auf einem Ethernet Interface tcpdump startet geht alles. Als workaround wird derzeit auf einem der virtuellen Interfaces (meist eth0.0 - LAN) eine bridge angelegt.
  • Der Switch ist momentan nicht konfigurierbar.
  • Das Atheros Interface empfängt im promiscuous mode auch frames mit einer fremden BSSID solang der Kanal stimmt. Von diesem Problem sind auch die anderen Foneras betroffen. Vermutlich ein madwifi Problem. Workaround ist nicht notwendig, weil das Problem nicht besonders schlimm stört.

Was noch fehlt

Die folgenden Dinge müssen noch in einer Firmware implementiert werden, bevor die Fonera+ als unterstütze Hardware gelten kann:

  • testen
  • Noch mehr testen
  •  ?