Area51
Dies ist eine Dokumentation der Hard- und Firmware von AP81 und AP12.
Sie soll vor allem als Gedankenstütze für mich dienen und ist noch unvollständig.
Für Anregungen und Verbesserungsvorschläge bin ich immer offen.
Siehe auch Fonera
Inhaltsverzeichnis |
Ausgangslage
Eine unmodifizierte "La Fonera" FON2100A/B/C ist "übrig"...
Der Vorbesitzer meint, daß die sich immer aufhängt und hat kein Bock mehr auf FON.
Nach einigen Tests bestätigt sich schnell meine erste Vermutung: Die kleine Box leidet an Überhitzung.
Lüftermod
Also Gehäuse aufgeschrauben und Lüfter raufmachen...
Ich verwende einen Prozessorlüfter von einem alten Pentium.
Der Lüfter is eigentlich für 12V und die Box hat nur 5V, aber das is OK.
Dadurch läuft der Lüfter nicht so schnell und macht folglich nicht soviel Krach.
Das Kabel vom Lüfter wird direkt an die Platine gelötet. (siehe Bild 3und Bild 4)
Der Lüfter wird mit einer kleinen Schraube am Kühlkörper befestigt.
Das Lüfterkabel wie auf Bild 3 durch das Gehäuse zu fädeln, hat sich als ungünstig erwiesen.
Wie sich herausstellte, sind Überhitzungsprobleme bei den Boxen nicht unüblich.
Für nähere Infos einfach mal auf fonboard.de im Forum nach "Hitzetod" oder "Wärmebild" suchen.
Mit Lüfter und der richtigen Firmware läuft die Box seitdem stabil.
SSH
Auf der Box läuft ein von FON modifiziertes OpenWRT.
FON selbst hat her SSH Vollzugriff auf die Boxen.
So werden z.B. ohne Zutun des Users Firmware-Updates und Patches eingespielt.
Für die User selbst ist der SSH-Zugang zur Box allerdings gesperrt.
Nun gibt es mehrere dokumentierte Wege, per "Hack" den SSH-Zugang über das Web-Interface trotzdem freizuschalten.
Z.B. http://stefans.datenbruch.de/lafonera Dazu vielleicht später mehr.
Ich bevorzuge die Variante mit dem Seriellen Konsolenkabel.
http://jauzsi.hu/2006/10/13/inside-of-the-fonera
Die Serielle Schnittstelle der Fonera arbeitet mit einem Pegel von ca. 3,3 Volt.
Die des PCs hat einen Pegel von 12 Volt. Daher wird ein Pegelwandler benötigt.
Ich verwende einen "CCBasic M Programmer" den ich über die Fonera mit Strom versorge.
Es gibt auch kleinere Varianten und Ausführungen für USB.
Wer gern bastelt, kann sich sowas auch selber bauen, beliebt dafür sind Datenkabel von alten Handys.
!!! Es geht zwar auch komplett ohne, aber falls etwas schief geht, ist ein Konsolenkabel immer sehr praktisch. !!!
Evtl. später mehr.
RedBoot
Der Bootloader
Zugriff über Telnet freischalten
Es gibt 2 Möglichkeiten:
1. Per SSH also Lan-Kabel aus dem laufenden Betrieb
2. Per seriellem Konsolenkabel beim Booten
Ich bevorzuge das serielle Konsolenkabel.
Per Konsolenkabel:
Wenn die Box bootet "^c" (STRG+C") dücken.
Die RedBoot Konsole erscheint.
RedBoot>
Dort folgende Befehle ausführen.
RedBoot> fconfig bootp_my_ip 169.254.255.1 RedBoot> fconfig bootp_my_ip_mask 255.255.0.0 RedBoot> fconfig boot_script_timeout 10
Jetzt ist der Bootloader der Box beim Booten 10 Sekunden lang per Telnet erreichbar.
Diese Einstellungen sind wichtig, damit Flash-AP51 funktioniert.
Weitere Funktionen:
Vorsicht!
RedBoot>fis init
formatiert den Flash
RedBoot>fis list
listet die "Partitionstabelle" auf
RedBoot>fis free
zeigt den freien Speicher an
Dazu vielleicht später mehr.
OpenWRT
Nun zur Firmware:
Nach verschiedenen Experimenten entscheide ich mich für Legend - OpenWRT-Kamikaze 7.09 mit für Injektion gepatchten Madwifi-Treibern
Wir brauchen 2 Dateien:
Nachtrag:
Das unmodifizierte Kamikaze 7.09 geht auch, allerdings müssen da mehr Pakete nachinstalliert werden.
Wir brauchen wieder den Kernel und das Dateiesystem.
Am stabilsten läuft bisher Kamikaze 8.09
Wesentliche änderung zum Vorgänger ist die neue Weboberfläche Luci.
Damit läßt sich OLSR über den Browser konfigurieren und die Statusseite ohne Anmeldung funzt endlich.
AP51-Flash
Tool zum Flashen mit Grafischer Oberfläche von svenola
http://download.berlin.freifunk.net/fonera/
Je nach Betriebssystem die Richtigen Versionen von ap51-flash und ap51-flash-gui runterladen.
Am besten ist eine 2. Netzwerkkarte mit einer statischen IP.
AP51-Flash-GUI starten, Kernel und jffs auswählen und die richtige Lan-Karte einstellen, sonst nix ändern.
Auf "Go!" drücken und die Box booten.
Der Rest passiert automatisch.
Dazu vielleicht später mehr.
IPKG
Zusätzliche Pakete
Einiges fehlt noch...
Für Legend brauchen wir noch:
kmod-tun
olsrd
olsrd-mod-httpinfo
openvpn
openssl-util
openssl-easy-rsa
ntpclient
und evtl. noch einige andere.
Für Kamikaze 7.09 zusätzlich kmod-tun, libpthread und einige andere.
Bei Kamikaze 8.09 wurde ipkg durch opkg ausgetauscht.
Die Freifunk-Mods sind recht interessant und lassen sich teilweise auch fürs Opennet verwenden.
später mehr
OLSR
Zur Konfuguration für opennet-initiative.de
Da olsrd irgendwie die /etc/olsrd.conf ignoriert,
habe ich die Datei /etc/config/olsr wie folgt bearbeitet:
config "olsr" "general" option DebugLevel '0' option IpVersion '4' option AllowNoInt 'yes' option Pollrate '0.075' option TcRedundancy '2' option MprCoverage '7' option LinkQualityFishEye '1' option LinkQualityWinSize '100' option LinkQualityDijkstraLimit '3 5.0' option LinkQualityLevel '2' option UseHysteresis 'no' config "LoadPlugin" "httpinfo" option Library 'olsrd_httpinfo.so.0.1' option port '8080' option host '127.0.0.1' option net '192.168.0.0 255.255.0.0' config "Interface" option Interface "wlan" option HelloInterval '6.0' option HelloValidityTime '108.0' option TcInterval '4.0' option TcValidityTime '324.0' option MidInterval '18.0' option MidValidityTime '324.0' option HnaInterval '18.0' option HnaValidityTime '108.0'
Die Werte evtl. anpassen.
Falls OLSR auch auf eth0 laufen soll, noch folgendes hinzufügen:
config "Interface" option Interface 'lan' option HelloInterval '6.0' option TcInterval '4.0' option MidInterval '18.0' option HnaInterval '18.0' option HelloValidityTime '108.0' option TcValidityTime '324.0' option MidValidityTime '324.0' option HnaValidityTime '108.0'
Damit das auch funktioniert, sollte /etc/config/network folgenden Inhalt haben:
config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname eth0 option proto static option ipaddr 192.168.33.251 option netmask 255.255.0.0 option dns 192.168.0.247 config interface wlan option ifname ath0 option proto static option ipaddr 192.168.33.251 option netmask 255.255.0.0
"192.168.33.251" mit der eigenen IP aus der Opennet_Nodes-Liste austauschen.
evtl. die IP von eth0 auf "172.16.0.1"
Einige Einstellungen in /etc/config/wireless müssen noch angepaßt werden:
config wifi-device wifi0 option type atheros option channel 1 option country de option diversity 0 option txantenna 1 option rxantenna 1 option disabled 0 option agmode 11bg config wifi-iface option device wifi0 option mode "adhoc" option ssid "olsr.opennet-initiative.de" option bgscan "0" option hidden "0" option txpower "18"
txpower evtl. niedriger...
Um auch Kanal 13 nutzen zu können, muß /etc/modules.d/50-madwifi wie folgt angepaßt werden:
wlan wlan_scan_ap wlan_scan_sta ath_hal ath_rate_minstrel wlan_acl wlan_ccmp wlan_tkip wlan_wep wlan_xauth ath_ahb countrycode=276 outdoor=1
Olsrd starten und für Autostart einrichten
root@Legend:/# /etc/init.d/olsrd start root@Legend:/# /etc/init.d/olsrd enable root@Legend:/# reboot
Obs funktioniert läßt sich per "route" prüfen oder mitm Browser http://IP_der_Box:8080/all
Nachtrag: WICHTIG !!!
Damit das Routing funktioniert muß die Firewall angepaßt werden.
Dazu die Datei /etc/firewall.user um folgendes ergänzen:
### Act as Router iptables -A forwarding_rule -j ACCEPT
Unter Kamikaze 8.09 läßt sich dieser ganze Abschnitt im Browser konfigurieren.
Vielleicht später mehr.
VPN
ntpclient
tun
config
Die Forschungsrunde läuft noch, erste Tests sind vielversprechend.
später mehr
Webif
Die Web-Oberfläche
Die Forschungsrunde läuft noch.
Dynamische Webseiten und Shellscripte sind nicht so mein Spezialgebiet.
Zur Theorie:
Um die Web-Oberfläche vom Opennet anzupassen, müssen im wesentlichen nur wenige Änderungen durchgeführt werden, diese aber "flächendeckend".
Die Box hat keinen NVRAM, sondern nutzt stattdessen die Dateien in /etc/config/
Also müssen alle Aufrufe wie "nvram get ..." oder "nvram set ..." durch "uci get ..." oder "uci set ..." ersetzt werden.
Ähnlich is das mit dem WLAN-Chip.
Die Box hat Atheros, also müssen alle Aufruf von "wl" durch "iwlist" o.ä. ausgetauscht und angepaßt werden, so wie bei den Asus WL-500g mit 5GHz-Karte.
Rein praktisch wird das wohl noch etwas dauern, bis ich da durch bin..
Ein weiteres Problem ist es wohl, die Seiten auszuführen, solange man sich nochnicht als admin oder root eingelogt hat, das betrifft z.B. die Endlos-Downloads aus /dev/null
Ich will ja nicht das wenige kb große Script vom AP runterladen, sondern der soll das "cat /dev/null" auch wirklich ausführen.
Bei Kamikaze 8.09 wurde Webif durch Luci ersetzt.
Durch der Pakete luci-mod-freifunk und luci-theme-freifunk erhält man eine ohne login zugängliche Statusseite.
Bis auf die Endlosdownloads aus /dev/zero lößt das alle o.g. Probleme.
später mehr
Backfire 10.03
luci-theme-freifunk luci-mod-freifunk luci-app-olsr
Was sonst noch geht
Airodump-ng, Aircrack-PTW, Kismet-drone ... getestet, funzt
Aireplay-ng ... getestet, funzt nur bei Legend wegen Injection
SD-Karte ... getestet, funzt unter Kamikaze 8.09 mit mmc_over_gpio
funzt angeblich auch unter Legend, hab ich aber nich getestet
RAM-Erweiterung auf 32MB ... ungetestet
MP3-Player ... ungetestet
GPS ... ungetestet aufgrund fehlender Hardware
(??)2. serielle Schnittstelle(??) ... wohl eher nich
später mehr
Projekte
Kastendrachen, Fesselbalon, ...
Da die Box recht leicht[1] ist und nur 5 Volt braucht, hatte ich ein paar verrückte Ideen...
später mehr
[1] ohne Gehäuse/Antenne mit Lüfter ca. 64 Gramm, die Original-Antenne wiegt ca. 9,1 Gramm
Nützliche Links
http://fonboard.de
http://freewlan.info
http://jauzsi.hu/2006/10/13/inside-of-the-fonera
http://stefans.datenbruch.de/lafonera
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Fon/Fonera
http://madwifi.org
http://fon.testbox.dk
http://wiki.freifunk-hannover.de/Fonera_mit_OLSR
http://opennet-initiative.de/firmware/kamikaze/kamikaze-mipsel-oconnor/Kernel2.6/Atheros/
http://www.larsen-b.com/Article/262.html
http://downloads.openwrt.org/backfire/