Asus WL-500g Premium de

From DD-WRT Wiki

Jump to: navigation, search

Contents

En

Eko

PostPosted: Fri Jan 01, 2010 1:43 am Post subject: Reply with quote This is a problem with these routers: If I set right value, so led turns off when radio is off, the router will crash 80% of time in client mode.

Better to have stable router then one tiny led cosmetic problem.

For initial flash see All Asus WL-500xx series routers

Brick recovery: Try Hard reset, Serial RS-232 connection, and as a very last resort there is the "pin 9 short option" [1]. Unfortunately no known JTAG option on this model.

[edit] Gerät Foto

Image:asus wl500gp mini.jpg Image:asus wl500gp back mini.jpg

[edit] Unterstützung

Der Asus WL-500g Premium wird vom aktuellen Build (dd-wrt.v23 SP2) komplett unterstützt. Dies bedeutet die 32 MB RAM werden von Anfang an erkannt, genauso wie alle Ethernet Schnittstellen (WAN,LAN,W-LAN) richtig zugeordnet sind. Der Build macht auf dem Router einen sehr stabilen Eindruck. Switching Loops sollten unbedingt vermieden werden (auch nicht WAN und LAN auf gemeinsamen Switch). USB, Samba und Drucker Support benötigen zum derzeitigen Stand Handarbeit.

Nach dieser Anleitung kann auch ein Asus WL-500G DeLuxe großteils konfiguriert werden. Nur darf man hier als Basis maximal ein Mini-DD-WRT (hier aktuell: dd-wrt.v23_sp2_mini) nehmen, da ansonsten kein /jffs verfügbar ist und keine Module / Packages nachinstalliert werden können (mangels Speicherplatz).

[edit] USB-Support

Installation:

Die folgenden Pakete müssen installiert werden :

ipkg install kmod-usb-uhci # nur nötig wenn man USB 1.1 Geräte (z.B.: Drucker) anschließen will
ipkg install kmod-usb-core
ipkg install kmod-usb2
ipkg install kmod-usb-storage

Bei DD-WRT v23 oder niedriger muss noch eine Kleinigkeit in die NVRAM Variable rc_startup geschrieben werden. Dies führt beim Start alle *.startup Scripte unter /jffs/etc/config/ aus.

In einer Shell auf dem Router:

nvram set rc_startup="
 for I in `/bin/ls /jffs/etc/config/*.startup`
 do
    sh $I &
 done"
nvram commit


Über das Webinterface

for I in `/bin/ls /jffs/etc/config/*.startup`
  do
    sh $I &
done

Hier kann es zu Fehlermeldungen im Webinterface kommen. Dies liegt wohl an den unterschiedlichen Zeilenende-Kennungen bei Unix (CR) und Windows (CR + LF). Dann einfach die Zeilenumbrüche per Backspace/Entf. löschen und neue Zeilenumbrüche per Return einfügen.

Dies ist das Script, mit dem die für USB nötigen Kernel-Module beim Ausführen geladen werden. Einfach den Text ausschneiden und in /jffs/etc/config/usb.startup ablegen (Achtung: Diese Datei hatte auf meinem WL-500G DeLuxe die Rechte 744. Erst nachdem ich dies auf 777 geändert (per WinSCP, sollte aber auch per telnet-Session mittels chmod gehen) habe, wurde sie beim Restart auch gelesen).

#!/bin/sh
insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/ehci-hcd.o
insmod /jffs/lib/modules/2.4.30/scsi_mod.o
insmod /jffs/lib/modules/2.4.30/usb-storage.o
# Für USB 1.1 Support die Raute (#) vor der nächsten Zeile entfernen
#insmod /jffs/lib/modules/2.4.30/uhci.o
insmod /jffs/lib/modules/2.4.30/sd_mod.o

Auf einem Asus WL-500gPremium sollte es bei Eingabe des Kommandos "dmesg" nun etwa so aussehen:

SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
uhci.c: USB Universal Host Controller Interface driver v1.1
PCI: Enabling device 01:03.0 (0000 -> 0001)
uhci.c: USB UHCI at I/O 0x100, IRQ 2
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Enabling device 01:03.1 (0000 -> 0001)
uhci.c: USB UHCI at I/O 0x120, IRQ 2
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected


Für den Betrieb von USB-Massenspeichern müssen noch die Filesystem (FAT/EXT/XFS) Module installiert werden.

ipkg install kmod-vfat
ipkg install kmod-ext2
ipkg install kmod-ext3
ipkg install kmod-xfs

Das Paket kmod-xfs hat aktuell (03/2007) einen Fehler. Falls Sie es nicht benötigen, lassen Sie es einfach weg.

Damit diese Module beim Neustart mitgeladen werden, muss der folgende Text noch an /jffs/etc/config/usb.startup angehängt werden.

# FAT
insmod /jffs/lib/modules/2.4.30/fat.o
insmod /jffs/lib/modules/2.4.30/vfat.o
#XFS
insmod /jffs/lib/modules/2.4.30/xfs.o

Die Partitionen der ersten USB-Platte sind nun über /dev/scsi/host0/bus0/target0/lun0/part1 bis partN erreichbar.

[edit] USB-Performance Testen

Mithilfe von hdparm und einer USB Festplatte habe ich den Datentransfer am Asus WL-500g Premium getestet. Ohne Übertaktung oder Aktivierung weiterer hdparm Parameter gibt es:

hdparm -tT /dev/scsi/host0/bus0/target0/lun0/part2
Timing cached reads:   188 MB in  2.04 seconds =  92.16 MB/sec
Timing buffered disk reads:   24 MB in  3.19 seconds =   7.52 MB/sec

Zumindest auf dem ASUS gibt es durch übertakten keine geschwindigkeitsvorteile am USB.

Wer hdparm noch nicht auf seinem Router installiert hat kann dies durch eingabe des folgenden Befehls tun:

ipkg install http://www.cslab.ece.ntua.gr/~chazapis/hdparm_6.3-1_mipsel.ipk

[edit] Installation eines Samba-Servers

Wenn man einen Router mit schneller CPU, genug Speicher und funktionierenden USB 2.0 Ports (wie den ASUS WL-500g Premium) sein eigen nennt, möchte man sicher die vorzüge der Windows Datei Freigabe nutzen. Um dies zu tun muss man Samba installieren.

ipkg install samba

nach einigem ruminstallieren ist alles fertig für einen ersten Test. Leider bricht /jffs/etc/init.d/samba start mit diesem Fehler ab:

nmbd: can't resolve symbol 'fopen64'
smbd: can't resolve symbol 'stat64'

Durch eine Installation von uclibc_0.9.28-6_mipsel.ipk lässt sich dies beheben. Ein nettes Howto hierzu leider in Englisch [2]

Zum Abschluss braucht noch die smb.conf einige Anpassungen (vi /jffs/etc/samba/smb.conf).

Aus Gründen der Geschwindigkeit, sollte man beim benutzen von samba unbedingt eine Swap Partition einrichten. Damit lassen sich Datenraten von ca 4 MB/sek erreichen.


Da Festplatten viel Strom brauchen, sollten sie runter gefahren werden, wenn sie nicht gebraucht werden. [3]

[edit] Drucker Support

Man sollte den Drucker Support nicht über Cups realisieren, da Cups spoolt und somit möglicherweise bei großen Druckaufträgen einen zu großen RAM bedarf hat. p910nd wird anstelle von Cups den Job übernehmen. Vorausgesetzt wird ein funktionierendes USB.

ipkg install p910nd
ipkg install kmod-usb-printer

Die Datei "/jffs/etc/config/usb.startup" anpassen:


insmod /jffs/lib/modules/2.4.30/printer.o 

Das fügt die Druckerunterstützung zu den Modulen hinzu.

dmesg sollte nun etwa dies zeigen (Beispiel):

hub.c: new USB device 01:02.0-1, assigned address 2
printer.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04A9 pid 0x1094

Dies bedeutet, dass an USB 1 Gerät gefunden wurde: usblp0 = Gerät /dev/usb/lp0

/jffs/etc/config/usb.startup bearbeiten und folgendes einfügen (Beispiel):

 #Beispieldrucker
 /jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0

Dieses Beispiel startet den Printserver für den gefundenen Drucker . -b bedeutet bidirektional, -f leitet den Gerätenamen ein (/dev/usb/lp0), und die Ziffer am Ende (0,1 or 2) legt den Port fest, auf dem der Printserver Aufträge entgegen nimmt -- 9100, 9101 oder 9102.

Router neu starten. Er sollte nun auf Port 9100 (oder 9101, 9102) im RAW Format (oder auch per gerätespezifischem Treiber) Druckaufträge annehmen.

Unter Cups von Linux aus folgende Einrichtung verwenden:

Gerät:

APP/Socket/HP JetDirect


Geräte URI:

socket://hostname:9100


(Hostname ist die IP des Routers)

Im weiteren den richtigen Treiber für deinen Drucker wählen und nach dem Speichern die Druckereinstellungen anpassen (Papierformat u.s.w.)

[edit] Temporäre HTML Seite mit NVRAM Inhalt erstellen

Unter Administration, Commands den folgenden Text ins Fenster einfügen und ausführen:

nvram show | sed 's/$/<\br>/' > /tmp/www/nvram.htm

Die Seite ist nun unter http://ROUTER-IP/user/nvram.htm abrufbar

[edit] Audio Streaming

Mit einer einfachen USB-Soundkarte wird der Wl-500g P (wie der Wl-500g deluxe) zum Audio-Center. Da allerdings derzeit weder USB noch Audio von DD-WRT nativ unterstützt werden, muss etwas getweakt werden:

1. Für USB Support sorgen(ev. mit USB 1.1-Support!)

2. Kernel-Module f. Sound installieren (Pakete dafür sind noch nicht in den DD-WRT Repositories, wir verwenden daher die FreeWRT-Versionen)

 ipkg install http://www.freewrt.org/downloads/1.0/brcm-2.4/packages/kmod-soundcore_2.4.33.3-brcm-1_mipsel.ipk
 ipkg install http://www.freewrt.org/downloads/1.0/brcm-2.4/packages/kmod-usb-audio_2.4.33.3-brcm-1_mipsel.ipk


3. Module laden (+ für automatisches Laden bei Neustart sorgen)

 insmod /jffs/lib/modules/2.4.33.3/soundcore.o
 insmod /jffs/lib/modules/2.4.33.3/audio.o

Diese Zeilen sollten auch in das startup-script (siehe USB Support) eingetragen werden:

 vi /jffs/etc/config/usb.startup

(mit "i" in den Einfügemodus, mit ESC raus, mit ":wq" speichern)

Ob die Module tatsächlich geladen sind, kann mit "lsmod" überprüft werden -- die Module sollten aufscheinen. Wenn die Soundkarte angesteckt ist, sollte "dmesg" irgendwas von Adresszuweisung usw. enthalten.

4.Karte verwenden

Nun kann die USB-Soundkarte verwendet werden. Dazu bieten sich der Music Player Daemon, oder der eSound Daemon an. Beide können von geeigneten Multimedia-Programmen (für eSound: KMPlayer, amaroK...) über das Netzwerk (üblicherweise auf 192.168.1.1) angesprochen werden

eSound Mini-Howto:

 cd /jffs/usr/bin
 wget http://home.in.tum.de/%7Epustka/mipsel/esd
 chmod a+x esd
 esd -d /dev/sound/dsp -tcp -public &

Wenn alles geklappt hat, sollte nach der letzten Zeile "using device x" dastehen. Wenn ja, dann die letzte zeile ins startup-script einfügen (siehe oben), damit eSound beim booten des Routers automatisch gestartet wird. Jeder Player mit eSound output-plugin sollte den Daemon ansteuern können. Mehr Info zur Einstellung von MPlayer, amaroK... (Linux): [4]

Virtuelle Soundkarte für Windows, für die ausgabe auf dem Router. [5] Das gleiche für MacOS [6]

Siehe auch Streaming Audio auf wl500g.info [7] und das OpenWRT Howto für USB Sound. [8]

[edit] Übertakten

Das übertakten des WL-500g Premium ist über das setzen der NVRAM Variable clkfreq möglich. Da der Broadcom Chip BCM94707 [9] auf 300 MHz ausgelegt ist habe ich ein übertakten auf 280 Mhz über längere Zeit getestet. Die Weboberfläche erfährt einen deutlichen geschwindigkeits-Zuwachs. Leistungswerte des USB Anschlusses werden vom übertakten nicht beeinflusst.

Durch nvram show lassen sich alle NVRAM Variablen mit dazugehörigen Werten anzeigen. Durch nvram set VARIABLE=WERT lässt sich der Variable ein Wert zuweisen, ein anschließenden nvram commit schreibt diese Änderungen fest in den Speicher.

Der Defaultwert der Variable clkfreq ist 264.

Bevor man mit dem übertakten beginnt, sollte man bedenken, das sich das NVRAM nicht so einfach wieder löschen lässt, ohne Shell Zugang zum Gerät zu haben. Auch mit Rückspielen der Orginal Asus Firmware war ein Reset nicht immer erfolgreich.

Mit folgenden Befehlen wird der Router dauerhaft übertaktet:

nvram set clkfrq=280,150
nvram commit
reboot

Wichtig ist, daß zwischen der Variable dem Gleichheitszeichen und dem Wert kein Leerzeichen ist.

Der erste Wert beschreibt den CPU-Takt, der 2. den FSB, aus bisher unbekannten gründen scheint die Firmware keine Übertaktung bei 133Mhz FSB zu akzeptieren.

Trotzdem der Chip auf auf 300 Mhz ausgelegt ist sollte er bei längerem übertakten wenigstens einen passiver Kühlkörper erhalten.

[edit] ASUS WL-500g Premium Wiederbeleben

Vorgehensweise zur Wiederbelebung eines Kaputten ASUS WL-500Premium:

Wenn die 4 LAN LED's leuchten, WAN LED leuchtet, Wireless gedimmt, Power LED leuchtet nicht, ist die Stromversorgung zu schwach (Netzteil defekt!). Das Gerät braucht beim Aufbooten ca. 2 A Strom. Beim Adapter scheint die Firma Asus wenig Wert auf die Lebensdauer zu legen.

Sonst:

Zurückspielen der ASUS Orginalfirmware versucht? -> Der Router muss nicht unbedingt Reagieren! Mit anschließendem Reset zu Factory Defaults? -> Powerleuchte Blinkt Anschließend wieder mit DD-WRT geflasht? -> Huch, alles geht wieder, supi ;-) ! Für alle anderen geht es hier los:

Achtung hierbei kann man den Router ganz kaputt machen!

Den Router öffnen, die Schrauben befinden sich unter den Gummi Nupsis.

Pin 9 (siehe Bild; neunter Pin von Rechts oder Kontakt im Roten Kreis) gegen Masse kurzschließen, den Router für 10 Sekunden einschalten, wieder ausschalten.

Den Kurzschluss beheben und den Router mit gedrücktem Reset Knopf starten und anschließend mit der neuen Firmware bestücken.

http://www.dd-wrt.com/phpBB2/files/hardware_recover_wl500gp_123.jpg

[edit] Links

Die Seite des Herstellers mit allem Krams rund um den Router. Die Orginal Firmware ist unter Treiber [10]

Fotos von dem innenleben eines WL-500g Premium auf Hardware-Hacking.com Nützliche informationen zu JTAG usw. [11]

Steckdose über den Router steuern. [12]

Zusätzlichen Arbeitsspeicher einlöten (64MB). [13]

Serielle Schnittstelle (braucht man für Temperaturmessung). [14]

Das ADSL-Modem (am WAN Port) auslesen von Rechnern im LAN. [15]