Avila: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
K (Infos zum Avila Board)
(Einrichtung der build Umgebung)
Zeile 5: Zeile 5:
 
* OpenWRT-Konfiguration hochladen (die von make menuconfig).
 
* OpenWRT-Konfiguration hochladen (die von make menuconfig).
  
== Fasttrack zum Opennet AP ==
+
== Schritt für Schritt zum Avila Opennet AP ==
  
 
=== OpenWRT bauen oder runterladen ===
 
=== OpenWRT bauen oder runterladen ===
 +
* einen Debian/Ubuntu Rechner mit der notwendigen Software zum compilieren ausstatten:
 +
apt-get install build-essential mercurial subversion cvs zlib1g-dev gawk bison libncurses5-dev flex zip unzip
 +
* letzte stabile Version (kamikaze 8.09.1 von Anfang Juni 2009) in das Verz. openwrt-src holen
  
* Wir brauchen die Trunk-Version von OpenWRT Kamikaze, da nur dort die Firmware für die Ethernet-Interfaces bereits dabei ist. svn update hat bei mir am 30.03.2008 die Revision 10690 zutage gefördert.
+
svn -r 16278 co svn://svn.openwrt.org/openwrt/trunk openwrt-src
 +
** Wer schon ältere svn Quellen von openwrt hat, wechselt in das entsprechende Verz. und aktualisiert mittels:
 +
svn -r 16278 update
  
svn update (bzw. svn checkout svn://svn.openwrt.org/openwrt/trunk)
+
* (optional) Es lassen sich direkt zur Bauzeit weitere Pakete einbinden (geht aber auch später per ipkg). Dazu werden die feeds aktualisiert:
  make menuconfig
+
cd openwrt-src
 +
./scripts/feeds update -a
 +
  ./scripts/feeds install -a
  
* Dort Intel XScale IXP4xx auswählen. Mit den Defaults kann man leben, wir brauchen für das WebIF (falls gewünscht) und olsrd einige Libraries. Es schadet also nicht, alle Module zu bauen (ansonsten kann man die auch später als Binary von der Website laden). Bei mir gab es ein Problem beim Bauen eines Moduls (irgendwas mit HW Watchdog), so dass ich das wieder rausgeworfen habe.
+
* Das Image konfigurieren:
 +
make menuconfig
 +
** Dort unter Target System "Intel XScale IXP4xx" auswählen.
 +
** Mit den Defaults kann man leben, wir brauchen für das WebIF (falls gewünscht) und olsrd einige Libraries. Es schadet also nicht, alle Module zu bauen (ansonsten kann man die auch später als Binary von der Website laden).
 +
** Bei mir gab es ein Problem beim Bauen eines Moduls (irgendwas mit HW Watchdog), so dass ich das wieder rausgeworfen habe.
  
  make
+
* Jetzt kann das Image gebaut werden:
 +
  make V=99
 +
** Was eine Weile dauert, besonders beim ersten Mal, da ständig neue Quellpakete nachgeladen werden müssen.
 +
** mit V=99 gibt "make" sich äußerst gesprächig - sinnvoll, falls Fehler auftreten, ansonsten ienfahc nur "make" aufrufen
  
* In bin/ finden wir openwrt-avila-zImage und openwrt-ixp4xx-squashfs.img. Die brauchen wir gleich zum Flashen.
+
* Wenn alles ohne Fehler durchgelaufen ist, finden wir in bin/ das "openwrt-avila-zImage" und "openwrt-ixp4xx-squashfs.img". Die brauchen wir gleich zum Flashen.
  
 
* Die beiden Files als Binary gibt es hier (Benutzung auf eigene Gefahr) http://www.informatik.uni-rostock.de/~thm/avila/openwrt-avila-zImage und hier http://www.informatik.uni-rostock.de/~thm/avila/openwrt-ixp4xx-squashfs.img
 
* Die beiden Files als Binary gibt es hier (Benutzung auf eigene Gefahr) http://www.informatik.uni-rostock.de/~thm/avila/openwrt-avila-zImage und hier http://www.informatik.uni-rostock.de/~thm/avila/openwrt-ixp4xx-squashfs.img

Version vom 14. Juli 2009, 20:50 Uhr

Inhaltsverzeichnis

Todos

  • Package mit Konfigurationsdateien bauen. Dort als depends alle anderen Packages hinterlegen.
  • Image hochladen.
  • OpenWRT-Konfiguration hochladen (die von make menuconfig).

Schritt für Schritt zum Avila Opennet AP

OpenWRT bauen oder runterladen

  • einen Debian/Ubuntu Rechner mit der notwendigen Software zum compilieren ausstatten:
apt-get install build-essential mercurial subversion cvs zlib1g-dev gawk bison libncurses5-dev flex zip unzip
  • letzte stabile Version (kamikaze 8.09.1 von Anfang Juni 2009) in das Verz. openwrt-src holen
svn -r 16278 co svn://svn.openwrt.org/openwrt/trunk openwrt-src
    • Wer schon ältere svn Quellen von openwrt hat, wechselt in das entsprechende Verz. und aktualisiert mittels:
svn -r 16278 update
  • (optional) Es lassen sich direkt zur Bauzeit weitere Pakete einbinden (geht aber auch später per ipkg). Dazu werden die feeds aktualisiert:
cd openwrt-src
./scripts/feeds update -a
./scripts/feeds install -a
  • Das Image konfigurieren:
make menuconfig
    • Dort unter Target System "Intel XScale IXP4xx" auswählen.
    • Mit den Defaults kann man leben, wir brauchen für das WebIF (falls gewünscht) und olsrd einige Libraries. Es schadet also nicht, alle Module zu bauen (ansonsten kann man die auch später als Binary von der Website laden).
    • Bei mir gab es ein Problem beim Bauen eines Moduls (irgendwas mit HW Watchdog), so dass ich das wieder rausgeworfen habe.
  • Jetzt kann das Image gebaut werden:
make V=99
    • Was eine Weile dauert, besonders beim ersten Mal, da ständig neue Quellpakete nachgeladen werden müssen.
    • mit V=99 gibt "make" sich äußerst gesprächig - sinnvoll, falls Fehler auftreten, ansonsten ienfahc nur "make" aufrufen
  • Wenn alles ohne Fehler durchgelaufen ist, finden wir in bin/ das "openwrt-avila-zImage" und "openwrt-ixp4xx-squashfs.img". Die brauchen wir gleich zum Flashen.

Board flashen

Manuell

  • Passendes Netzteil finden (irgendwas zwischen 6 und 28V, Plus ist innen), oder mittels passivem PoE-Adapter versorgen (passiv heißt hier, dass wir auf gar keinen Fall einen PoE-Adapter gemäß IEEE 802.3af mit 48V nehmen, dann riecht es bestimmt bald nach Strom). Boardbeschreibung hier: http://www.gateworks.com/products/avila/manuals/gw2342.pdf
  • Das Board hat zwei serielle Interfaces. Über eines kann man beim Booten zuschauen, welches das ist hängt von der Konfiguration von redboot ab, (115200,8,N,1). Ich habe dort einen USB-RS232-Adapter drangesteckt. Ich hatte Probleme mit minicom, dieses glaubte die ganze Zeit, offline zu sein, zeigte aber die Ausgaben an, Eingaben waren nicht möglich, es scheiterte also schon am CTRL-C. cutecom funktionierte dann, dieses arbeitet aber zeilenweise, so dass ich bei fconfig kein Backspace senden konnte. Wirklich geholfen hat dann gtkterm.
  • Für Windows hilft als Terminalprogramm Putty oder das bis vor Vista mitgelieferte HyperTerminal. Bei Putty dann Seriell auswählen und die Baudrate auf die oben angegebenen Werte stellen. Da Windows von Haus aus keinen TFTP Server mitbringt, kann man z.B. WinAgents TFTP Server nutzen (ladbar als 30 Tage Testversion).
  • Board booten. Es erscheint eine Meldung wie diese:
== Executing boot script in 3 seconds - enter ^C to abort
  • Jetzt innerhalb der angegebenen Zeit:
CTRL-C
  • Flashspeicher initialisieren
fis init
  • Da ich beim ersten Versuch ein Problem hatte, wurde bei fis init nicht der gesamte Speicher initialisiert. Da half dann
fis init -f
  • Das Board ist typischerweise unter 192.168.3.2 / 255.255.255.0 zu erreichen (Ansonsten unter redboot mittels fconfig nachgucken. Wir brauchen die beiden Files von oben auf dem PC unter Zugriff eines tftp-Servers (bei mir ist das in.tftpd, mittels xinetd, /tftpboot muss die Files enthalten, Centos / RedHat User vergessen bitte nicht in /etc/xinetd.d/tftp das disable yes in disable no zu ändern, hat mich 20min gekostet, weitere 5min waren für SELinux nötig - bei letzterem kommt es auf den korrekten Context Type an - siehe man chcon).
  • Die verwendeten IP Einstellungen werden auch nach dem Start des Avila Board auf der Konsole angezeigt.
  • Der Rest im Schnelldurchlauf:
load -r -v -b %{FREEMEMLO} openwrt-avila-zImage
fis create linux
fis free
  • Differenz ausrechnen, so freien Speicherplatz bestimmen - bei mir waren es 0x00E80000.
load -r -v -b %{FREEMEMLO} openwrt-ixp4xx-squashfs.img
fis create -l 0xe80000 rootfs (0xe80000 ist die Differenz von oben)
fis list (nur zum Gucken)
  • Jetzt noch die Konfiguration:
fconfig
  • Folgendes eingeben:
  • Boot script:
fis load linux
exec
<Leerzeile, Enter>
  • Boot script timeout (1000ms resolution)
3 (hier brauchte ich das Backspace, das cutecom nicht konnte)
  • Der Rest ist selbsterklärend.
reset

Autoflash

  • Zum automatischen flashen wird das Programm minicom + runscript sowie eine Linux (oder auch Unix) Umgebung benötigt.
  • nur für Fortgeschrittene zu empfehlen, das Script selbst muß angepasst werden!
  • Diese Version bestimmt den freien Speicher selbstständig!
  • Netz einrichten 192.168.3.1/24
  • tftp einrichten


  • Als root minicom starten:
minicom -s (kleines s)
  • Hilfe gibts per
Ctrl^A+Z
  • Parameter der seriellen Schnittstelle einstellen (s.o)
  • jede Änderung mit Return im jeweiligen Feld abschließen, sonst wird es nicht übernommen!
  • im Bereich Modem alle Felder löschen
  • unter Dateinamen und Pfade das Scriptverzeichnis festlegen (wo nachher das flashscript liegt)
  • unter einem sinnvollen Namen abspeichern, bei mir console (dfl für default)
  • minicom beenden (Ctrl^A+X)
  • Im Flash Script muß die Schnittstelle zusätzlich auch konfiguriert werden! Standard ist eth0, unabhängig minicom config!
  • Zusätzlich ist bei bedarf der Namen der Images anzupassen
  • minicom zum flashen starten (dem Bord noch keinen Saft geben)
minicom -S <flashscript> <config> 
(<config> bei mir heißt die config "console" und das flashscript "flash-avila"),
also minicom -S flash-avila console (großes -S)
  • alles wie immer ohne Garantie, have fun

Netzwerk einrichten

  • In /etc/config/network finden wir alles, was wir dazu brauchen. Weiß jemand, wie man dort eine Variable verwendet? Wir nehmen ja bei olsr überall die selbe IP-Adresse.
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.1.159
        option netmask  255.255.0.0
config interface wan
        option ifname   eth1
        option proto    static
        option ipaddr   192.168.1.159
        option netmask  255.255.0.0
config interface wifi0
        option ifname   ath0
        option proto    static
        option ipaddr   192.168.1.159
        option netmask  255.255.0.0
... wifi1 bis wifi3 entsprechend mit ath1 bis ath3

WLAN einrichten

  • /etc/config/wireless Wenn wir es mit einer Atheros-Karte zu tun haben, wie immer bei Opennet:
config wifi-device      wifi0
        option type     atheros
        option distance 2400    # The distance between the ap and the furthest client in meters
        option channel  100
        option mode     11a
config wifi-iface
        option device   wifi0
#       option rts      250
        option hidden   0
        option txpower  16
        option encryption       none
        option mode     ap
        option ssid     test0.on-i.de
... entsprechende Einträge für wifi1 bis wifi3

OLSR

  • OLSR Package auf den AP kopieren (z.B. mit scp) oder AP ins Netz bringen (Gateway, Nameserver), dann:
ipkg install /tmp/olsrd_<version>_armeb.ipk bzw. ipkg install olsrd
  • Konfigurieren. Beim neuen Kamikaze gibt es /etc/config/olsr. Hier einfach die Interfaces eintragen, für die OLSR aktiviert werden soll. Achtung, die Namen der Interfaces stammen hier aus /etc/config/network.
option Interface "lan wan wifi0 wifi1 wifi2 wifi3"

Beispiel olsr config

  • Die config Datei für den olsrd wird on-the-fly aus der Vorlage /etc/config/olsr in /var/etc/olsrd.conf oder /etc/olsrd.conf erzeugt.
  • Wer die OLSR Plugins nicht installiert hat, muss diese aus /etc/config/olsr raus nehmen.
olsr.conf Vorlage (/etc/conf/olsr)
config "olsr" "general"
       option DebugLevel       '1'
       option IpVersion        '4'
       option AllowNoInt       'yes'
       option Pollrate '0.05'
       option TcRedundancy     '2'
       option MprCoverage      '7'
       option LinkQualityFishEye       '1'
       option LinkQualityWinSize       '100'
       option LinkQualityDijkstraLimit '0 9.0'
       option LinkQualityLevel '2'
       option UseHysteresis    'no'
       option Hna4             '{   0.0.0.0   0.0.0.0 192.168.1.0      255.255.255.0 }'
       option IpcConnect       '{ MaxConnections  1 Host            127.0.0.1 Net             192.168.1.0 255.255.255.0 }'
config "Interface"
       option Interface        'lan'
       option HelloInterval    '2.0'
       option HelloValidityTime        '100.0'
       option TcInterval       '5.0'
       option TcValidityTime   '324.0'
       option MidInterval      '18.0'
       option MidValidityTime  '324.0'
       option HnaInterval      '18.0'
       option HnaValidityTime  '108.0'
config "Interface"
       option Interface        'wifi0'
       option Ip4Broadcast     '255.255.255.255'
       option HelloInterval    '1.0'
       option HelloValidityTime        '3.0'
       option TcInterval       '4.0'
       option TcValidityTime   '14.0'
       option MidInterval      '5.0'
       option MidValidityTime  '15.0'
       option HnaInterval      '5.0'
       option HnaValidityTime  '15.0'
generierte Config (/var/etc/olsrd.conf)
DebugLevel 1
IpVersion 4
AllowNoInt yes
Pollrate 0.05
TcRedundancy 2
MprCoverage 7
LinkQualityFishEye 1
LinkQualityWinSize 100
LinkQualityDijkstraLimit 0 9.0
LinkQualityLevel 2
UseHysteresis no
Hna4 {   0.0.0.0   0.0.0.0 192.168.1.0  255.255.255.0 }
IpcConnect { MaxConnections  1 Host            127.0.0.1 Net             192.168.1.0 255.255.255.0 }
Interface "eth0"
{
       HelloInterval 2.0
       HelloValidityTime 100.0
       TcInterval 5.0
       TcValidityTime 324.0
       MidInterval 18.0
       MidValidityTime 324.0
       HnaInterval 18.0
       HnaValidityTime 108.0
}
Interface "ath0"
{
       HelloInterval 1.0
       HelloValidityTime 3.0
       TcInterval 4.0
       TcValidityTime 14.0
       MidInterval 5.0
       MidValidityTime 15.0
       HnaInterval 5.0
       HnaValidityTime 15.0
       Ip4Broadcast 255.255.255.255
}


olsr starten

  • olsrd zu Testzwecken starten und stoppen
/etc/init.d/olrd start
/etc/init.d/olrd stop
  • Falls dabei Probleme auftreten, lässt sich die eigene config Datei auch direkt testen z.B.:
olsrd -f /etc/olsrd.conf
  • Nun kann OLSR gleich noch dazu gebracht werden, dass es beim Start des Avila Boards gestartet wird. Hierfür geben wir ein:
/etc/init.d/olsrd enable

NTP

  • Die Avila Boards haben zwar eine RTC (hwclock -r bzw. hwclock -w), daher die Batterie, wir wollen aber genau wissen, wie spät es ist. Daher installieren wir ntpd oder ntp_client:
ipkg install ntp_client (bzw. entsprechendes File, falls manuell auf den AP geladen)
  • Die Konfiguration in /etc/config/ntp_client sollte korrekt sein. Im Falle von ntpd, diesen noch aktivieren:
/etc/init.d/ntpd enable

Mit den LEDs rumspielen

  • Licht an:
echo "1" > /sys/class/leds/user/brightness
  • Licht aus:
echo "0" > /sys/class/leds/user/brightness

Infos zum Avila Board

So sieht das Board aus.
  • Auf der im Foto gezeigten Boardseite befinden sich links ath0 und rechts ath1, unter ath0 liegt ath2 und unter ath1 liegt ath3.
  • Datei:Avila handbuch.pdf

Spezifikation

Intel® XScale® IXP425 533MHz Processor
64Mbytes SDRAM
16Mbytes Flash
Four Type III Mini-PCI Slots
Two 10/100 Base-TX Ethernet Ports
Compact Flash Socket
Two RS-232 Serial Ports
General Purpose Digital I/O
1Kbyte Serial EEPROM
Battery Powered Real Time Clock
Voltage and Temperature Monitor
Thermally Activated Fan Controller
Watchdog Timer
User LED and Push-button Reset
Optional Dual Type A USB Host Ports
Passive Power Over Ethernet
Reverse Voltage and Transient Protection
9 to 48VDC Input Voltage Range
18W Shared Between Mini-PCI Sockets
5W Typical Operating Power
-40°C to +85°C Operating Temperature
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge