Avila: Unterschied zwischen den Versionen
Aus Opennet
(→Infos zum Avila Board: cat) |
K (→Manuell) |
||
Zeile 77: | 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 | + | fis create -l 0xea0000 rootfs (0xea0000 ist die Differenz von oben) |
fis list (nur zum Gucken) | fis list (nur zum Gucken) | ||
Version vom 20. Oktober 2011, 20:25 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).
- 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
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
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
- 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.
- 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
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
- 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
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
Infos zum Avila Board
- 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