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 und ausserdem den Marvel Switch und 2 PHY's für die beiden Netzwerkanschlüsse. 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 OpenWRT 8.09.2 praxistauglich unterstützt. Kleinigkeiten wie die Nichterreichbarkeit der beiden Ehternetinterfaces nach Änderungen in der Netzwerk/Wifi Konfiguration (inkl. /etc/init.d/network reload) und die fehlende Möglichkeit den Switch zu verwalten sind allerdings noch vorhanden.

Der Rest ist bei 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.

Bei älteren Firmwareversionen als 8.09.2 kommt es vor, dass die Fonera+ nach dem Flashen nicht auf 192.168.1.1 per Ping erreichbar ist, da Bugs im Ethernet/Switchtreiber (Marvel) vorhanden waren. Man kann dann immer noch mit einem Seriellen Kabel auf die Fonera zugreifen und WLAN aktivieren (ist standardmässig deaktiviert)

Openwrt Kamikaze flashen

Zuerst müssen das Kernelimage und das Dateisystem auf die Fonera+ geschrieben werden. Eine recht ausfühliche Anleitung gibt's im OpenWRT-Wiki. Dort sind auch die aktuellen Dateien der Firmware zum Download verfügbar:

Rootfs: openwrt-atheros-combined.jffs2-64k.img (bitte "combined" verwenden, openwrt-atheros-root.jffs2-64k funktioniert auf der fonera+ nicht!) Kernel: openwrt-atheros-vmlinux.lzma

Am einfachsten geht das Flashen allerdings mit dem AP51-Flash-gui Tool oder dem Programm Fon-Flash.

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. D.h. der Router kann dann auch mit Hilfe eine TFTP Servers (z.B. der Opensource Server TFTP32) auf dem eigenen PC und Konfiguration via Telnet geflasht werden. PC Bekommt dazu die IP 192.168.1.254 und sollte mit der Fonera (Lan Port) am besten über einen alten 10Mbit Hub verbunden sein. Die Notwendigen Befehle sieht man im Fon-Flash Tool bzw. im Openwrt Fonera Wiki.

Fonera+ Funkfeuer tauglich machen=

still to be written - siehe Funkfeuer Wiki OLSR Installationsseite für die neusten OLSR Versionen - für fonera/fonera+/asuswl500x auf kamikaze sind die mipsel builds relevant

Konfiguration für aktuelles (8.09) kamikaze und 0xFF (Outdated, Update notwendig)

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.5.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.5.tgz
./0xff-bootstrap 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 (Outdated, teilweise verwendbar)

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

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
  •  ?