Area51

Aus Opennet
Wechseln zu: Navigation, Suche

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.

001.jpg
002.jpg
003.jpg
004.jpg

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:

Kernel jffs

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/

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge