Avila: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Links eingebaut)
(Manuell: Hinweis zu CTRL-C in minicom hinzugefügt.)
 
(21 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
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 https://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:
 +
cd openwrt-src
 +
./scripts/feeds update -a
 +
./scripts/feeds install -a
 +
 
 +
* Das Image konfigurieren:
 
  make menuconfig
 
  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).
 +
** Wer vorher die feeds aktualisiert hat sieht nun einiges mehr an Softwarepaketen
 +
** Bei mir gab es ein Problem beim Bauen eines Moduls (irgendwas mit HW Watchdog), so dass ich das wieder rausgeworfen habe.
 +
** Thomas' mittels make menuconfig erstellte Konfigurations-Datei gibt es hier (sind meine Einstellungen, im Wesentlichen die Defaults) http://www.informatik.uni-rostock.de/~thm/avila/avila.config
  
* 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.
+
* 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 einfach nur "make" aufrufen
  
make
+
* 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.
 +
* weitere Infos zum Image bauen: http://wiki.freifunk.net/OpenWRT_Buildroot
  
* In bin/ finden wir openwrt-avila-zImage und openwrt-ixp4xx-squashfs.img. Die brauchen wir gleich zum Flashen.
+
=== Board 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
  
* Die von make menuconfig erstellte Konfigurations-Datei gibt es hier (sind meine Einstellungen, im Wesentlichen die Defaults) http://www.informatik.uni-rostock.de/~thm/avila/avila.config
+
==== 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
=== Board flashen ===
+
 
+
* 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://dev.gateworks.com/products/avila/manuals/gw2342.pdf
+
  
 
* Anleitung auch hier: http://wiki.openwrt.org/OpenWrtDocs/Hardware/Gateworks/Avila_GW2348_4 (anderes Board, aber bei unserem GW2342 ist es genauso, bis auf kleine Änderungen bezüglich der LEDS :-) )
 
* Anleitung auch hier: http://wiki.openwrt.org/OpenWrtDocs/Hardware/Gateworks/Avila_GW2348_4 (anderes Board, aber bei unserem GW2342 ist es genauso, bis auf kleine Änderungen bezüglich der LEDS :-) )
  
* 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.
+
* 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. Hinweis: Wenn minicom Ausgaben anzeigt und auch Texteingaben gemacht werden können, jedoch keine CTRL-C Keysequenz beim Booten möglich ist, dann muss Hardware Flow Control deaktiviert werden. 
  
 
*  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).  
 
*  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).  
Zeile 49: Zeile 65:
 
  fis init -f
 
  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).
+
* 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.  
 
* Die verwendeten IP Einstellungen werden auch nach dem Start des Avila Board auf der Konsole angezeigt.  
Zeile 61: Zeile 77:
 
* Differenz ausrechnen, so freien Speicherplatz bestimmen - bei mir waren es 0x00E80000.
 
* Differenz ausrechnen, so freien Speicherplatz bestimmen - bei mir waren es 0x00E80000.
  
  load -r -v -b %{FREEMEMLO} openwrt-ixp4xx-squashfs.img
+
  load -r -v -b %{FREEMEMLO} openwrt-ixp4xx-generic-squashfs.img
  fis create -l 0xe80000 rootfs (0xe80000 ist die Differenz von oben)
+
  fis create -l 0xea0000 rootfs (0xea0000 ist die Differenz von oben)
 
  fis list (nur zum Gucken)
 
  fis list (nur zum Gucken)
  
Zeile 82: Zeile 98:
  
 
  reset
 
  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)
 +
 +
* [http://www.on-i.de/firmware/kamikaze/kamikaze-armeb-janc/avila/tools/flash-avila Flashscript für minicom]
 +
* [http://www.on-i.de/firmware/kamikaze/kamikaze-armeb-janc/avila/images Firmwareimages]
 +
* [http://www.on-i.de/firmware/kamikaze/kamikaze-armeb-janc/avila/packages viele Zusatzpakete]
 +
* [http://www.on-i.de/firmware/kamikaze/kamikaze-armeb-janc/avila/ipk ON Grundconfig als Paket]
 +
 +
* alles wie immer ohne Garantie, have fun
  
 
=== Netzwerk einrichten ===
 
=== Netzwerk einrichten ===
Zeile 111: Zeile 163:
 
=== WLAN einrichten ===
 
=== WLAN einrichten ===
  
* Wenn wir es mit einer Atheros-Karte zu tun haben, wie immer bei Opennet:
+
* /etc/config/wireless Wenn wir es mit einer Atheros-Karte zu tun haben, wie immer bei Opennet:
  
 
  config wifi-device      wifi0
 
  config wifi-device      wifi0
Zeile 137: Zeile 189:
  
 
  option Interface "lan wan wifi0 wifi1 wifi2 wifi3"
 
  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.
  
* Nun muss OLSR gleich noch dazu gebracht werden, dass es beim Start des Avila Boards gestartet wird. Hierfür geben wir ein:
+
===== 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
 
  /etc/init.d/olsrd enable
Zeile 161: Zeile 302:
  
 
  echo "0" > /sys/class/leds/user/brightness
 
  echo "0" > /sys/class/leds/user/brightness
 +
 +
* Licht (heartbeat-mode):
 +
 +
echo "heartbeat" > /sys/class/leds/user\:1/trigger
 +
 +
=== Hardware monitoring ===
 +
Unter make menuconfig sind folgende Einstellungen zu setzten:
 +
 +
; make menuconfig
 +
: Kernel modules -> I2C support
 +
<M> kmod-i2c-core................................................ I2C support
 +
--- kmod-i2c-algo-bit............................. I2C bit-banging interfaces
 +
<M> kmod-i2c-algo-pca................................ I2C PCA 9564 interfaces
 +
<M> kmod-i2c-algo-pcf................................ I2C PCF 8584 interfaces
 +
<M> kmod-i2c-gpio.................................. GPIO-based bitbanging I2C
 +
< > kmod-i2c-gpio-custom........................ Custom GPIO-based I2C device
 +
 +
: Kernel modules -> Hardware Monitoring Support
 +
<M> kmod-hwmon-core.............................. Hardware monitoring support
 +
< >  kmod-hwmon-lm75.................................. LM75 monitoring support
 +
< >  kmod-hwmon-lm77.................................. LM77 monitoring support
 +
< >  kmod-hwmon-lm90.................................. LM90 monitoring support
 +
 +
: Utilities (nicht unbedingt notwendig)
 +
<*> i2c-tools............................................ I2C tools for Linux
 +
 +
; make kernel_menuconfig
 +
: Device Drivers => Hardware Monitoring Support
 +
<*>  Analog Devices AD7416, AD7417 and AD7418
 +
: Device Drivers => I2C Support
 +
--- I2C support
 +
<*>  I2C device interface
 +
I2C Algorithms  --->
 +
I2C Hardware Bus support  --->
 +
Miscellaneous I2C Chip support  --->
 +
[*]  I2C Core debugging messages
 +
[*]  I2C Algorithm debugging messages
 +
[*]  I2C Bus debugging messages
 +
[*]  I2C Chip debugging messages
 +
 +
: Device Drivers => I2C Support => I2C Hardware Bus support
 +
<*> GPIO-based bitbanging I2C
 +
<*> Intel IOPx3xx and IXP4xx on-chip I2C interface
 +
 +
; Folgende Module müssen letztlich geladen sein:
 +
<code>
 +
root@OpenWrt:~# lsmod
 +
Module                  Size  Used by    Not tainted
 +
ad7418                  3672  0
 +
hwmon_vid              1120  0
 +
hwmon                    916  1 ad7418
 +
i2c_gpio                1152  0
 +
i2c_algo_bit            5668  1 i2c_gpio
 +
i2c_dev                4292  0
 +
i2c_core              13936  4 ad7418,i2c_gpio,i2c_algo_bit,i2c_dev
 +
</code>
 +
 +
; Zugriff auf die Monitoring Daten
 +
<code>cat /sys/devices/platform/i2c-gpio.0/i2c-adapter/i2c-0/0-0028/temp1_input</code> - zeigt die Temperature in °C/1000<br \>
 +
<code>cat /sys/devices/platform/i2c-gpio.0/i2c-adapter/i2c-0/0-0028/in1_input</code> - zeigt die Eingangsspannung in Volt/23.1
  
 
== Infos zum Avila Board ==
 
== Infos zum Avila Board ==
Zeile 167: Zeile 368:
  
 
* Auf der im Foto gezeigten Boardseite befinden sich links ath0 und rechts ath1, unter ath0 liegt ath2 und unter ath1 liegt ath3.
 
* Auf der im Foto gezeigten Boardseite befinden sich links ath0 und rechts ath1, unter ath0 liegt ath2 und unter ath1 liegt ath3.
 +
* [[Bild:Avila_handbuch.pdf]]
 +
 +
=== Spezifikation ===
 +
* [http://www.gateworks.com/products/avila/gw2348-4.php Link zum Hersteller]
 +
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
 +
 +
[[Category:Access points]]
 +
[[Category:Anleitungen]]

Aktuelle Version vom 22. Februar 2014, 20:25 Uhr

Inhaltsverzeichnis

[Bearbeiten] Todos

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

[Bearbeiten] Schritt für Schritt zum Avila Opennet AP

[Bearbeiten] 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).
    • Wer vorher die feeds aktualisiert hat sieht nun einiges mehr an Softwarepaketen
    • Bei mir gab es ein Problem beim Bauen eines Moduls (irgendwas mit HW Watchdog), so dass ich das wieder rausgeworfen habe.
    • Thomas' mittels make menuconfig erstellte Konfigurations-Datei gibt es hier (sind meine Einstellungen, im Wesentlichen die Defaults) http://www.informatik.uni-rostock.de/~thm/avila/avila.config
  • 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 einfach 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.
  • weitere Infos zum Image bauen: http://wiki.freifunk.net/OpenWRT_Buildroot

[Bearbeiten] Board flashen

[Bearbeiten] 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. Hinweis: Wenn minicom Ausgaben anzeigt und auch Texteingaben gemacht werden können, jedoch keine CTRL-C Keysequenz beim Booten möglich ist, dann muss Hardware Flow Control deaktiviert werden.
  • 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-generic-squashfs.img
fis create -l 0xea0000 rootfs (0xea0000 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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"

[Bearbeiten] 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.
[Bearbeiten] 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'
[Bearbeiten] 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
}


[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] Mit den LEDs rumspielen

  • Licht an:
echo "1" > /sys/class/leds/user/brightness
  • Licht aus:
echo "0" > /sys/class/leds/user/brightness
  • Licht (heartbeat-mode):
echo "heartbeat" > /sys/class/leds/user\:1/trigger

[Bearbeiten] Hardware monitoring

Unter make menuconfig sind folgende Einstellungen zu setzten:

make menuconfig
Kernel modules -> I2C support
<M> kmod-i2c-core................................................ I2C support 
--- kmod-i2c-algo-bit............................. I2C bit-banging interfaces
<M> kmod-i2c-algo-pca................................ I2C PCA 9564 interfaces
<M> kmod-i2c-algo-pcf................................ I2C PCF 8584 interfaces
<M> kmod-i2c-gpio.................................. GPIO-based bitbanging I2C
< > kmod-i2c-gpio-custom........................ Custom GPIO-based I2C device
Kernel modules -> Hardware Monitoring Support
<M> kmod-hwmon-core.............................. Hardware monitoring support 
< >   kmod-hwmon-lm75.................................. LM75 monitoring support 
< >   kmod-hwmon-lm77.................................. LM77 monitoring support 
< >   kmod-hwmon-lm90.................................. LM90 monitoring support 
Utilities (nicht unbedingt notwendig)
<*> i2c-tools............................................ I2C tools for Linux
make kernel_menuconfig
Device Drivers => Hardware Monitoring Support
<*>   Analog Devices AD7416, AD7417 and AD7418 
Device Drivers => I2C Support
--- I2C support 
<*>   I2C device interface
I2C Algorithms  ---> 
I2C Hardware Bus support  ---> 
Miscellaneous I2C Chip support  --->
[*]   I2C Core debugging messages
[*]   I2C Algorithm debugging messages
[*]   I2C Bus debugging messages 
[*]   I2C Chip debugging messages
Device Drivers => I2C Support => I2C Hardware Bus support
<*> GPIO-based bitbanging I2C 
<*> Intel IOPx3xx and IXP4xx on-chip I2C interface
Folgende Module müssen letztlich geladen sein

root@OpenWrt:~# lsmod
Module                  Size  Used by    Not tainted
ad7418                  3672  0
hwmon_vid               1120  0
hwmon                    916  1 ad7418
i2c_gpio                1152  0
i2c_algo_bit            5668  1 i2c_gpio
i2c_dev                 4292  0
i2c_core               13936  4 ad7418,i2c_gpio,i2c_algo_bit,i2c_dev

Zugriff auf die Monitoring Daten

cat /sys/devices/platform/i2c-gpio.0/i2c-adapter/i2c-0/0-0028/temp1_input - zeigt die Temperature in °C/1000
cat /sys/devices/platform/i2c-gpio.0/i2c-adapter/i2c-0/0-0028/in1_input - zeigt die Eingangsspannung in Volt/23.1

[Bearbeiten] 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

[Bearbeiten] 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