Wireless Router Application Platform

Aus BraLUG-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (WLAN-Antennen: Typo..)
K (genaues Modell - Hardware)
 
(6 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 13: Zeile 13:
 
'''W'''ireless '''R'''outer '''A'''pplication '''P'''latform ('''WRAP'''): http://www.pcengines.ch/wrap.htm
 
'''W'''ireless '''R'''outer '''A'''pplication '''P'''latform ('''WRAP'''): http://www.pcengines.ch/wrap.htm
  
===Details===
+
===Details (WRAP.1E-1)===
 
* [http://www.national.com/ National Semiconductor] SC1100 System-On-Chip
 
* [http://www.national.com/ National Semiconductor] SC1100 System-On-Chip
 
** ia32-kompatibel: 5x86, eher ein 486er als ein Pentium
 
** ia32-kompatibel: 5x86, eher ein 486er als ein Pentium
Zeile 40: Zeile 40:
 
===Treiber für Komponenten===
 
===Treiber für Komponenten===
 
====CPU====
 
====CPU====
Obwohl der SC1100 einen 5x86 sein soll, wird Code für WRAP üblicherweise auf 486 optimiert.
+
Obwohl der SC1100 ein 5x86 sein soll, wird Code für WRAP üblicherweise auf 486 optimiert.
  
 
<code>/proc/cpuinfo</code>
 
<code>/proc/cpuinfo</code>
Zeile 62: Zeile 62:
  
 
====Watchdog====
 
====Watchdog====
 +
Für den [http://de.wikipedia.org/wiki/Watchdog Watchdog] gibt es auch einen Treiber: <code>wd1100</code>. Nach dem Laden des Moduls, Anpassen von <code>/etc/watchdog.conf</code> ("<code>watchdog-device = /dev/watchdog</code>") und  dem Start des ensprechenden Programmes ("<code>/etc/init.d/watchdog start</code>") sollte sich der Rechner im unwahrscheinlichen Fall eines Hängenbleibens automatisch neu starten.
 +
 +
Neuerdings gibt es auch einen zweiten Treiber, <code>scx200_wdt</code>. Dieser steht, anders als der <code>wd1100</code>, unter der GPL. Ich habe ihn allerdings noch nicht getestet.
 +
 
====Temperatursensor====
 
====Temperatursensor====
 +
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`
 +
echo "scale=1; $ttemp / 1000" | bc
 +
 +
Bei meinem Board liegt die Durchschnittstemperatur übrigens zwischen 39,5 und 41,5 °C.
 +
 
====LEDs an der Frontseite====
 
====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 [[Wireless Router Application Platform/netled.sh|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===
 
===WLAN-Konfiguration===

Aktuelle Version vom 19. Juni 2006, 08:30 Uhr

Die Kiste auf der Berlinux 2005

Inhaltsverzeichnis

[Bearbeiten] Hardware

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


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

[Bearbeiten] Details (WRAP.1E-1)

  • 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

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

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

[Bearbeiten] Software

[Bearbeiten] Distribution

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

[Bearbeiten] Treiber für Komponenten

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

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

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

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

[Bearbeiten] WLAN-Konfiguration



MaD, 24. Oktober 2005

'Persönliche Werkzeuge