Arbeitsgruppe FoneraPlus: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche
K (Klammer vergessen)
(Auch die normale Fonera wird von der Firmware unterstützt)
Zeile 18: Zeile 18:
 
* Kein olsrd im read only Dateisystem, damit Tests mit verschienen Versionen leicht gemacht werden können
 
* Kein olsrd im read only Dateisystem, damit Tests mit verschienen Versionen leicht gemacht werden können
 
* webserver startet nicht (Bug in der Konfig, wird in der nächsten Version wieder gehen)
 
* webserver startet nicht (Bug in der Konfig, wird in der nächsten Version wieder gehen)
 +
* Das Tool "ip" ist installiert, wie in der Freifunkfirmware
 
* Das Tool "patch" ist installiert, für einfache Konfigupdates
 
* Das Tool "patch" ist installiert, für einfache Konfigupdates
  
Zeile 26: Zeile 27:
 
* http://texas.funkfeuer.at/~harald/firmware/0xff-atheros-minimal-ipk.tgz - Alle Pakete die notwendig sind, um den olsrd zu starten
 
* http://texas.funkfeuer.at/~harald/firmware/0xff-atheros-minimal-ipk.tgz - Alle Pakete die notwendig sind, um den olsrd zu starten
 
* http://texas.funkfeuer.at/~harald/firmware/0xff-config-fonera+_0.1.tgz - tarball mit Konfiguration für Funkfeuer (olsr, Kanal 13 freischalten, etc.)
 
* http://texas.funkfeuer.at/~harald/firmware/0xff-config-fonera+_0.1.tgz - tarball mit Konfiguration für Funkfeuer (olsr, Kanal 13 freischalten, etc.)
 +
 +
Die Firmware funktioniert auch mit der "normalen" Fonera. Dafür gibt es einen eigenen leicht veränderten Konfigtarball:
 +
* http://texas.funkfeuer.at/~harald/firmware/0xff-config-fonera_0.1.tgz
  
 
==Installation==
 
==Installation==

Version vom 19. August 2008, 04:55 Uhr

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.

Experimentelle Firmware für 0xFF

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
  • kein DHCP - Client (kommt bei der nächsten Version aber wieder falls Platz ist)
  • Kein olsrd im read only Dateisystem, damit Tests mit verschienen Versionen leicht gemacht werden können
  • webserver startet nicht (Bug in der Konfig, wird in der nächsten Version wieder gehen)
  • Das Tool "ip" ist installiert, wie in der Freifunkfirmware
  • Das Tool "patch" ist installiert, für einfache Konfigupdates

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:

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.1.tgz root@192.168.1.1:/tmp/
cd /
tar -xzf /tmp/0xff-config-fonera+_0.1.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 0xff-atheros-minimal-ipk.tgz, diese wird auf den Router kopiert, entpackt und die Pakete installiert:

am PC:

scp 0xff-atheros-minimal-ipk.tgz root@192.168.1.1:/tmp/

am Router:

cd /tmp
tar -xzf 0xff-atheros-minimal-ipk.tgz
ipkg install libpthread_XXX_mips.ipk
ipkg install olsrd_XXX_mips.ipk
/etc/init.d/olsrd enable        # Starte olsrd beim booten
/etc/init.d/olsrd start         # Starte olsrd jetzt!

Bei vorigem Schritt ist zu beachten: Da wir für den olsrd bereits eine Konfiguration aus dem Konfigtarball haben, müssen wir die Frage, ob wir die bestehende Konfiguration durch eine Neue ersetzen wollen mit Nein beantworten!

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

ipkg update
ipkg install foo
ipkg install bar

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.
  • Wenn am LAN und am WAN Interface gleiche Subnetze vergeben werden, dann werden arp requests nur auf einem Interface gesendet, das andere hat dadurch defakto keine Konnektivität. Dies ist vermutich ein Problem des OpenWRT Kernels. Um das Problem zu umgehen müssen IPs aus verschiedenen Subnetzen verwendet werden. (Siehe Bemerkungen auf der Diskussionsseite)
  • 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:

  • traffic priorization: OLSR traffic vor allem anderen
  • Größere Auswahl an Paketen kompiliern oder ausprobieren ob ein Pool von OpenWRT verwendet werden kann.
  •  ?