ASUS WL-500g Premium

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 16:39, 5 February 2007 (edit)
Lodp (Talk | contribs)
(Drucker Support)
← Previous diff
Revision as of 16:45, 5 February 2007 (edit) (undo)
Lodp (Talk | contribs)
(USB Support)
Next diff →
Line 15: Line 15:
ipkg install kmod-usb-storage 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. +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: In einer Shell auf dem Router:
Line 33: Line 33:
-Dies ist das Script mit dem die für USB nötiegen Kernel Module beim ausführen geladen werden. Einfach den Text auschneiden und in /jffs/etc/config/usb.startup ablegen.+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.
#!/bin/sh #!/bin/sh
Line 44: Line 44:
insmod /jffs/lib/modules/2.4.30/sd_mod.o insmod /jffs/lib/modules/2.4.30/sd_mod.o
-Auf einem Asus WL-500gPremium sollte es bei eingabe von dem Komando dmesg nun so aussehen:+Auf einem Asus WL-500gPremium sollte es bei Eingabe des Kommandos "dmesg" nun etwa so aussehen:
SCSI subsystem driver Revision: 1.00 SCSI subsystem driver Revision: 1.00
Line 63: Line 63:
-Nun müssen noch die Filesystem (FAT/EXT/XFS) Module installiert werden. +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-vfat
Line 78: Line 78:
insmod /jffs/lib/modules/2.4.30/xfs.o 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+Die Partitionen der ersten USB-Platte sind nun über /dev/scsi/host0/bus0/target0/lun0/part1 bis partN
erreichbar. erreichbar.

Revision as of 16:45, 5 February 2007

Contents


Unterstützung

Der Asus WL-500g Premium im 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.

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


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.

#!/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

Damit diese Module 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.

Performance Testing USB

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.

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

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

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

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

Jetzt wird der Prinserver Daemon installiert:

 ipkg install p910nd

/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.

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

Audio Streaming Client

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 ins startup-script damit (siehe oben), damit eSound nach Neustart des Routers zur Verfügung steht. Jeder Player mit eSound output-plugin sollte den Daemon ansteuern können. Mehr Info zur Einstellung von MPlayer, amaroK... (Linux): [2]

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

Übertakten

Das übertakten des WL-500g Premium ist über das setzen der NVRAM Variable clkfreq möglich. Da der Broadcom Chip BCM94707 [5] 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
nvram commit
reboot

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

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

ASUS WL-500g Premium Wiederbeleben

Vorgehensweise zur Wiederbelebung eines Kaputten ASUS WL-500Premium:

Zürü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

Links

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

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