Arbeitsgruppe Hardware RS

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche

Nette, recht preisgünstige Hardware (evt. < 60€), shipped mit (modded) Openwrt und somit eventuell die eierlegende Wollmilchsau für ein Mesh.

3 Minipci Slots, 3 x LAN, 64MB RAM 680Mhz Ar7161 MIPS24K CPU, GPIO, Usb 2.0 Support, etc.

Pro-Version mit Gbit, mehr RAM, 803af und SDIO wirds auch geben.

Status

Momentan ist mal eine RS vorhanden um sie auszutesten. (Momentan auf 193.238.158.180 am heusued verbaut und hoffentlich online)

Wlan scheint recht kompatibel mit üblichen Atheros 2.4 und 5ghz Minipcis zu sein.

WDS-Links (zu Routerboards) funktionieren scheints nicht (wurde aber auch nicht gewissenhaft versucht), des weiteren muss man auf RouterOS Linkquality Werte verzichten etc. (so wie bei Routerboard-Osbridge ja auch).

Die bisherigen groben WLAN-Probleme scheinen einerseits auf Fehler in der config aber eben auch auf config-Optionen zurückzuführen zu sein, welche beim auslesen von /etc/config/wireless von kamikaze scheinbar ignoriert bzw. falsch gesetzt werden.

Weiters scheint die RS ein Problem mit ihren RAM und ihrer CPU zu haben:

  • ist mit 180MB / Sekunde da ziemlich lahm (sogar ein WRT54G hat 750MB/Sek )
  • mit neuen firmwares/bootloadern sollten es inzwischen
    • 350MB/Sek sein
    • und auch deutlich höhere CPU Performance
    • und aktivierter write cache

Aber trotzdem: DDR-RAM sollte schneller sein.

Das RAM Problem besteht somit grossteils immer noch.

Die CPU war/ist übrigens so lahm, weil Debug-mode aktiv ist (in neueren Firmwares ist das behoben).

Und - nun ja - es dauert ne ziemliche Weile bis nach einem Reboot alles und der dropbear im speziellen wieder läuft.

Aber alles in allem kann man die Dinger wohl verwenden *g (Markus)

How To get LuCI on the RS

RS flashen mit Redboot

PC-seitige Vorbereitungen

Zunächst müssen Rootfilesystem und Kernelimage hier heruntergeladen werden:

http://texas.funkfeuer.at/~datacop/kamikaze/RS_trunk/

Hier die Dateien

  • openwrt-ar71xx-root.squashfs (rootfilesystem)
  • xxx (kernelimage)

herunterladen und speichern.

Selbstverständlich gibt es mehrere Möglichkeiten die Dateien auf die RS zu bekommen, die hier vorgestellte ist jedoch ganz praktikabel. Die Dateien werden über einen TFTP-Server, der auf dem Heimcomputer läuft, von Redboot(Bootloader der RS) geholt. Wie man einen solchen TFTP-Server zum laufen bringt, ist im WWW nach zu lesen und recht einfach.

Hat man nun einen TFTP-Server am laufen, kopiert man die beiden Dateien das entsprechende Verzeichnis des Servers. Gleichzeitig sollte man die Dateinamen, der Einfachheit halber ändern. Ich habe rootfs und kernel verwendet wie hier Beispielsweise zu sehen ist.

z.B. Linux

user@galactica:/srv/tftp$ ls
kernel  rootfs

Für Windows gibt es Pumpkin, auch ein einfacher TFTP-Server.

Um sich mit der RS zu verbinden wird ein Terminalprogramm benötigt, z.B. minicom (Linux) oder putty (Windows). Einstellungen der RS sind 115200 8N1.

RS-seitige Vorbereitungen

Um sich mit der RS zu verbinden wird weiters ein Pegelkonverter (z.B. MAX232) benötigt und wenn am PC keine serielle Schnittstelle zur Verfügung steht, ein USB to Serial converter.

Verbindet (mit Kabeln) man nun die RS mit dem PC und öffnet minicom bzw. putty, und gibt der RS Strom, kann der Startvorgang von Redboot, und in weiterer Folge, des openWRT verfolgt werden.

Um in das Redboot zu kommen muss gleich nach anstecken des Stromes die Tastenkombination "Strg+C" gedrückt werde.

Nun zu Redboot

RedBoot bietet eine Vielzahl von Möglichkeiten, im folgenden werden nur die relevanten vorgestellt und kurz erläutert.

RedBoot> fis list

Gibt den Inhalt des Flash Speichers aus.

Nun kann das rootfs geholt werden.

RedBoot> load -r -v -b %{FREEMEMLO} -h 192.168.1.21 rootfs

Hier wird die Datei rootfs, des TFTP-Servers, der auf dem HeimPC unter der 192.168.1.21 erreichbar ist (funktionierende LAN-Verbindung vorausgesetzt) geholt und temporär in den RAM gespeichert.

RedBoot> fis delete rootfs

Da noch ein alter Eintrag rootfs vorhanden ist, muss dieser gelöscht werden. Dies geschieht mit fis delete

... to be continued

Country Code

Unter /etc/modules.d/50-madwifi

 ath_pci countrycode=860

Ist allerdings der country code von Uzbekistan, imho alle in AT erlaubten Kanäle sind freigeschalten, teilweise mit maximal 15db (5180..5320Mhz) ansonsten meist max. 17db was imho nicht weiter stört, und auch mit AFAIK mit 25mW erlaubte 5,8GHz Subband ist dabei (was in dem Band genau erlaubt ist, bitte selber nachprüfen, bevor man daran denkt, solche Frequenzen einzustellen,...)

Will man doch etwas korrekter sein dann:

ath_pci countrycode=276 outdoor=1

Damit hat man dann die 5Ghz Outdoor Kanäle, und halt eben den countrycode unsrer lieben Nachbarn eingestellt (DE). Will man Indoor-Kanäle, dann Outdoor weglassen. Beides gleichzeitig am selben Router gibts wohl nit *g

(Nebenbei geht mit diesem code auch turbo modus recht problemlos, sowohl in den Indoor- und Outdoor-Kanälen, während mit 860 hatte ich da keinen Erfolg)

AT hätte country_code von 040 aber damit gab es dann gleich nur noch 2.4ghz Kanäle )-;

Turbo Mode

Geht im station Betrieb klaglos, einfach den ap auf turbo mode stellen und madwifi scannt es von alleine und aktiviert turbo mode (zumindest auf den static turbo mode Kanälen).

iwconfig zeigt dann IEEE 802.11Ta an ansgtelle von 802.11a.

Ansonsten könnte man turbo mode auch manuell konfigurieren:

iwpriv athX turbo 1
iwpriv athX mode 5 (nur bei station mitunter notwendig, damit sie sich mit nem turbo-mode ap verbinden)

AP Forwarding

Auf 5Ghz gibts ja kaum adhoc taugliche Geräte (weil dann inkompatibel mit dfs), also bleibt in der Regel nur noch wds mit "echter" mesh Funktinoalität übrig, in der Regel hat wds aber eh nur Kompatibilitätsprobleme, oder macht eh wenig Sinn und ptmp ist eh genug bzw. zuviel *g ( ... an hidden stations *g).

Jedoch sollte in einem OLSR-Netz eben idealerweise nur auf Layer 3 geroutet werden und eben nicht vom ap die OLSR-Broadcast der einen Station wieder an die anderen Station repeatet werden und in Folge dann aller andere Traffic zwischen den Clients. Denn die link-Kosten des OLSR stimmen dann mit der realen Doppelbelastung des Mediums wiedermal nicht überein (im Grunde ist das sogar noch ein bisschen schlimmer als PTP 5Ghz bridges aneinander zuhängen).

Darum imho besser das forwarding/bridging am ap abdrehen.

iwpriv athX ap_bridge 0

Distance, Diversity, usw.

wie man derartige advanced wlan settings tatsächlich via /etc/config/wireless konfiguriert, sollt ma noch rausfinden/fixen.

Eventuell tun diese 3 zusammen was es soll:

option diversity 1
option txantenna 1
option rxantenna 1
#0 = auto, 1 = antenna a, 2 = antenna b

Fürs erste tuns aber cmdline utilities auch z.B.: http://wlanwifi.blogspot.com/2008/02/madwifi-utility-usage.html

Nützlich ists mal die distance einzustellen, sonst geht auf langen Strecken gar nix (denn default Setting ist für 301-600 Meter):

athctrl -i wifi0 -d 10000

Oder nachdem man genug rumprobiert hat (Einstellungen ändern sich nur in 300 Meter Schritten dann eben permanent in /etc/config/wireless in der wifiX section eintragen:

option 'distance' '10000'

Da manche minipci, zumindest bei broadcasts, mitunter diversity mässig groben Unfug treiben (paketweise abwechselnd Antenne A oder B).

Vermutlich weil sie normalerweise aufgrund der acks lernen, welche Antenne für welches Ziel besser wäre, aber bei broadcasts gibts keine acks und darum besser fix einstellen. Vor allem weil wir in der Regel eh nur eine einzige Antenne haben:

echo "1" > /proc/sys/dev/wifi0/txantenna # 0 auto, 1 antenna a, 2 antenna b

Oder im /etc/config/wireless in der wifiX Section:

option 'diversity' '0' # 0 off, 1 on
option 'rxantenna' '0' # Antenna identifier (0, 1 or 2) for reception.
option 'txantenna' '0' # Antenna identifier (0, 1 or 2) for emission.

Auch das Beschränken der Kanäle fürs Scannen macht Sinn (z.B. nur 5G wenn man ne 5G Antenne aber ne abg Card hat), sonst dauert das Scannen nach der Gegenstelle (nach einem disconnect) immer sooo lange *g (Allerdings hat untriges bis jetzt nie erwünschte Wirkung gezeigt, es wird weiterhin auch auf allen Frequenzbändern gescannt):

athchans -i ath0 1-2 #restrict channel search to 1-2

Oder man setzt wenigstens den mode im Konfigfile:

option 'hwmode' '11a'

OLSR

Läuft klaglos drauf und wenn man die Firewall abschaltet:

/etc/init.d/firewall disable

Oder eben die zu restriktiven forwarding Regeln abändert, dann passt alles, ansonsten ist ein kamikaze Router mit OLSR eben ein böses blackhole.

Weitere Details zur OLSR-Konfiguration

Allgemeines Howto für OLSR unter Linux

Unbricking

https://lists.openwrt.org/pipermail/openwrt-users/2009-May/000759.html