Wireless Router Application Platform

Aus BraLUG-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (noch ein Bruder! - Watchdog)
K (ist wohl wichtig... - Temperatursensor)
Zeile 67: Zeile 67:
  
 
====Temperatursensor====
 
====Temperatursensor====
Zum Auslesen der Prozessortemperatur müssen ein paar Module geladen werden: <code>scx200</code>, <code>i2c_core</code> und <code>lm77</code>. Unpraktischerweise kann nicht das Kommando <code>sensors</code> aus dem <code>lm_sensors</code>-Paket zum Anzeigen der Temperatur genutzt werden. Unter dem eingesetzten Kernel 2.6.x ist die Temperatur aber durch das <code>sysfs</code> auslesbar. In <code>/sys/bus/i2c/devices/0-0048/temp1_input</code> steht das 1000-fache der Temperatur in °C drin. Am Besten verpackt man das Auslesen in ein kleines Skript:
+
Zum Auslesen der Prozessortemperatur müssen ein paar Module geladen werden: <code>scx200</code>, <code>scx200_acb</code>, <code>i2c_core</code> und <code>lm77</code>. Unpraktischerweise kann nicht das Kommando <code>sensors</code> aus dem <code>lm_sensors</code>-Paket zum Anzeigen der Temperatur genutzt werden. Unter dem eingesetzten Kernel 2.6.x ist die Temperatur aber durch das <code>sysfs</code> auslesbar. In <code>/sys/bus/i2c/devices/0-0048/temp1_input</code> steht das 1000-fache der Temperatur in °C drin. Am Besten verpackt man das Auslesen in ein kleines Skript:
  
 
  ttemp=`cat /sys/bus/i2c/devices/0-0048/temp1_input`
 
  ttemp=`cat /sys/bus/i2c/devices/0-0048/temp1_input`

Version vom 19. Juni 2006, 08:26 Uhr

Die Kiste auf der Berlinux 2005

Inhaltsverzeichnis

Hardware

Das Innenleben der WRAP-Box
Anschlüsse am WRAP-Board


Wireless Router Application Platform (WRAP): http://www.pcengines.ch/wrap.htm

Details

  • National Semiconductor SC1100 System-On-Chip
    • ia32-kompatibel: 5x86, eher ein 486er als ein Pentium
    • MMX
    • 266 MHz
  • 128 MiB RAM
  • 2 x 100base-TX Ethernet
  • 2 x MiniPCI-Steckplätze, einer mit GigaByte GN-WIAG01 WLAN-Adapter belegt
  • CompactFlash-Slot am IDE-Bus (bei mir mit 256 MiB-CF-Karte bestückt)
  • Hardware-Watchdog, Temperatursensor

USB

Prinzipiell hat das System auch USB, jedoch ist der Anschluß nicht herausgeführt, es muss eine 2x5-Pin-Stiftleiste auf das Board gelötet werden. Mit dieser Modifikation passt das Board im Normalfall nicht mehr in das vorgesehene Gehäuse.

WLAN-Antennen

Die für drahtloses Netz benötigten Antennen und Pigtails sind in dem zu kaufenden Gehäuse noch nicht vorgesehen. Jedoch lassen sich mit einer Bohrmaschine ziemlich einfach Löcher in das Aluminium des Gehäuses bohren, in denen man die Anschlüsse für die Antennen verschraubt.

Software

Distribution

Eingesetzt wurde von mir Voyage Linux, eine auf Debian Sarge basierende, jedoch auf unter 64 MiB abgespeckte Distribution.

Treiber für Komponenten

CPU

Obwohl der SC1100 ein 5x86 sein soll, wird Code für WRAP üblicherweise auf 486 optimiert.

/proc/cpuinfo

processor       : 0
vendor_id       : Geode by NSC
cpu family      : 5
model           : 9
model name      : Unknown
stepping        : 1
cpu MHz         : 266.770
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu tsc msr cx8 cmov mmx cxmmx
bogomips        : 524.28

Watchdog

Für den Watchdog gibt es auch einen Treiber: wd1100. Nach dem Laden des Moduls, Anpassen von /etc/watchdog.conf ("watchdog-device = /dev/watchdog") und dem Start des ensprechenden Programmes ("/etc/init.d/watchdog start") sollte sich der Rechner im unwahrscheinlichen Fall eines Hängenbleibens automatisch neu starten.

Neuerdings gibt es auch einen zweiten Treiber, scx200_wdt. Dieser steht, anders als der wd1100, unter der GPL. Ich habe ihn allerdings noch nicht getestet.

Temperatursensor

Zum Auslesen der Prozessortemperatur müssen ein paar Module geladen werden: scx200, scx200_acb, i2c_core und lm77. Unpraktischerweise kann nicht das Kommando sensors aus dem lm_sensors-Paket zum Anzeigen der Temperatur genutzt werden. Unter dem eingesetzten Kernel 2.6.x ist die Temperatur aber durch das sysfs auslesbar. In /sys/bus/i2c/devices/0-0048/temp1_input steht das 1000-fache der Temperatur in °C drin. Am Besten verpackt man das Auslesen in ein kleines Skript:

ttemp=`cat /sys/bus/i2c/devices/0-0048/temp1_input`
echo "scale=1; $ttemp / 1000" | bc

Bei meinem Board liegt die Durchschnittstemperatur übrigens zwischen 39,5 und 41,5 °C.

LEDs an der Frontseite

Das WRAP-Board besitzt 3 LEDs an der Frontseite. Diese sind mit den GPIO-Pins der CPU verdrahtet und können somit per Software an- und ausgeschaltet werden. Da sich jedoch die Ansteuerung für LED 1 und 2 im selben Byte im Speicher befinden und IO-Ports nur byteweises Schreiben zulassen, können beide LEDs nur abhängig voneinander gesetzt werden. Ebenso scheint das Auslesen des LED-Zustandes nicht möglich zu sein.

Als Test habe ich ein kleines Skript geschrieben, welches die LEDs 2 und 3 zur Überwachung von Netzwerkinterfaces nutzt (an = Traffic, aus = kein Traffic). Da es jedoch zuviel Rechenzeit kostet und damit die CPU zu heiß wird, ist es hier nicht im Einsatz.

WLAN-Konfiguration



MaD, 24. Oktober 2005

'Persönliche Werkzeuge