Wireless Router Application Platform
Aus BraLUG-Wiki
Inhaltsverzeichnis |
Hardware
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.
Temperatursensor
Zum Auslesen der Prozessortemperatur müssen ein paar Module geladen werden: scx200
, 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