DD-WRT on WR850G v1 (deutsch)

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 14:26, 8 June 2009 (edit)
Dr. Ongo (Talk | contribs)
m (Keine GPIO-Tricks bitte - Typos)
← Previous diff
Revision as of 14:29, 8 June 2009 (edit) (undo)
Dr. Ongo (Talk | contribs)
m (Achtung bei Firmware-Defaults)
Next diff →
Line 98: Line 98:
==Achtung bei Firmware-Defaults== ==Achtung bei Firmware-Defaults==
-Die v1 wird seit Anfang 2007 fast voll unterstützt. Da die MAC-Adressen im nvram gespeichert werden, werden sie bei einem Reset auf die voreingestellten Werte auf 00:11:22:33:44:5x gesetzt. Die eindeutigen Adressen gehen also verloren und müssen per Hand auf die Werte des Gerätegehäuses gesetzt werden. siehe <b>MAC-Adresse wiederherstellen und mehr</b>+Die v1 wird seit Anfang 2007 fast voll unterstützt. Da die MAC-Adressen im NVRAM gespeichert werden, werden sie bei einem Reset auf die voreingestellten Werte auf 00:11:22:33:44:5x gesetzt. Die eindeutigen Adressen gehen also verloren und müssen per Hand auf die Werte des Gerätegehäuses gesetzt werden. Siehe [[#MAC-Adresse wiederherstellen und mehr|MAC-Adresse wiederherstellen und mehr]].
=LEDs können irreführend sein= =LEDs können irreführend sein=

Revision as of 14:29, 8 June 2009

Dies ist nur eine reine deutsche 1-zu-1-Übersetzung der englischen WIKI von Stephen DD-WRT_on_WR850G_v1.
Ein Korrekturlesen mit anschliesß folgenden Befehle machen, dann überprüfen Sie sie bitte mit einem guten Linux/Unix Lehrbuch, dann suchen Sie das Forum und das Wiki auf.

HINWEIS: Es gibt keine Garantie für alle: das Verfahren, das unten umrissen wurde, arbeitete für mich (mehrmals), aber es könnte Ihre Katze oder Frau töten, Ihr Windows zerstören, oder ihren Chef verärgern usw. Das müssen sie selbst verantworten!

Contents

Anfang

Ich kaufte ein WR850G, Version 1, bei e ***. es kam mit der installierten FW-Version 2.00. Ich machte erstmal ein Backup des Gerätes bevor ich die Konfiguration änderte bzw. eine Rückstellung in die Werkseinstellung (Factory default) ausführte und habe begonnen die FAQ zu lesen.

Auf der BroadbandReports-Forum-Motorola-FAQ-Seite fand ich einige Firmware-Files, veröffentlicht von Motorola: 4.03 und 5.13 (behobene Sicherheitsprobleme der 4.03) und 6.1.4, die zum Download verfügbar sind.

BATBOX ist ein nettes Tool welches es erlaubt ,telnetd laufen zu lassen (und andere nette Dinge) auf einem WRT54G, nützlich der Ping.asp-Bug der auch in vielen Linksys-Firmwares vorhanden war, dieses arbeitet zwar nicht auf dem Motorola (ich habe einige Ideen, es in die FW 4.03 einzubinden - aber, im Augenblick bin ich zu faul). Irgendwie bekam ich die DD-WRT (das mini_moto image) auf dem Router installiert und ich machte einen Firmware-Reset. Als der Ärger begann, habe ich die Quellen gelesen. Ich weiß jetzt, warum.

Analyse der CFE

Die CFE (common firmware environment?) ist von der Funktion her ähnlich wie das BIOS in einem PC: Harwareinitialisierung, Interaktive Einstellungen, Betriebs-System. Wie in praktisch jedem CFE gibt es ein kleines eingebettetes Flash-Image, welches sich in den NVRAM-Abschnitt setzt, wenn etwas fehlerhaft ist oder das Gerät resettet wird, der "harte Weg" eben.
Meiner (256 kB Größe, unkomprimiert) bei einem Offset von 0x0400-0x2400 enthält die folgenden festgelegten Einstellungen:

boardtype=bcm94710dev
boardnum=2
clkfreq=125
sdram_init=0x0419
sdram_config=0x0000
sdram_refresh=0x8040
et0phyaddr=30
et0mdcport=0
et1phyaddr=0
et1mdcport=1
dl_ram_addr=a0001000
os_ram_addr=80001000
os_flash_addr=bfc40000
lan_ipaddr=192.168.10.1
lan_netmask=255.255.255.0
wan_ipaddr=192.168.10.1
wan_netmask=255.255.255.0
scratch=a0180000
boot_wait=off
watchdog=1000
GemtekPmonVer=9

Beacheteb Sie, dass die WAN- und LAN-Adress gleich sind. Dies erlaubt über alle Ports mit TFTP zu flashen (Ich habe es zwar nicht versucht)

Im folgenden Code an ungefähr 71 % in der vollständigen Datei, wird eine andere Einstellungen erwähnt (offensichtlich wird sie in das NVRAM-Image eingesetzt, dort gibt es eine Zeichenkette (sic), die beginnt, alle Default-Werte wieder herzustellen:

DefaultEthPort  1
et0macaddr lan_hwaddr  00:11:22:33:44:55
et1macaddr wan_hwaddr  00:11:22:33:44:56

Die v1 hat keine serielle Schnittstelle (ich konnte keinen UART-Chip finden), deshalb konnte Ich dies nicht mit einer seriellen Konsole überprüfen, ob die Anweisungen mit der Zeichenkette zusammenhängt, so geben sie acht.
(Die serielle konsole wird im CFE bis 921600 Baud untestützt) Die Motorola-Firmware könnte solche gefälschte Einstellungen ermitteln und sie in andere umwandeln (gefälscht schon, aber wen interessiert es)

Besuchen Sie www.gemtek.com für Updates.

Diese sind jetzt auf www.gemtek.com.tw (www.gemtek.com zeigt auf eine Klima-Service-Seite) und dort ist kein Download verfügbar - aber was haben sie erwartet?

Firmware-Reset im Motorola-Code

Es gibt keinen GPL-Quell-Code für die Version 4.03. Überprüfe 5.13 oder 6.1.4 (im letzteren kann man in der src/router/rc/rc.c einige Anhaltspunkte erhalten)

Was man vermeiden sollte

Der WR850Gv1 ist ein nettes Spielzeug, also warum sollte ich nicht mit ihm spielen? Zum Beispiel Zurücksetzen in die Werkseinstellung, mit dem GPIO-Utility rumspielen um die LEDs an und aus zu schalten, ...

Keine GPIO-Tricks bitte

Leider ist v1 in vielen Dingen ein wenig unterschiedlich, also erwarten sie nicht, dass er nicht unbrauchbar wird!
Eine Abfrage der Werte der GPIO-Ports (0-7 scheinen angeschlossen zu sein, mit einer Wiederholung ab 32) ergibt 01 für alle Ports außer für Port 1, der in rascher Folge 00 und 01 ausgibt.
Durch Aktivieren und Deaktivieren der Ports fand ich folgende Dinge heraus:


GPIO-PortFunktion
0keine Veränderung?
1keine Veränderung?
2alle LAN-LEDs
3rot blinkende Power-LED
4NICHT VERÄNDERN!
5keine Veränderung?
6NICHT VERÄNDERN!
7NICHT VERÄNDERN!

Ports 4 und 6 werden in der resetbutton.c erwähnt, und sie können offensichtich ihrem System Schaden zufügen.
Port 7 kann für die DMZ-LED benutzt werden, geben sie hier besonders acht, es resettete zumindestens mein Gerät (Hinweise sind willkommen, ich brauche diese Eigenschaft nicht).

Sie können ihrem Router schaden, wenn sie mit dem GPIO rumspielen.

Keine "mtd"-Tricks

Wie BrainSlayer auch schon erwähnte (FIXME: wo?): führen Sie NIEMALS mtd erase nvram auf dem WR850G aus.
Dieser Befehl wird nicht in der v1 unterstützt und es werden merkwürdige MAC-Adressen zugewiesen.

Achtung bei Firmware-Defaults

Die v1 wird seit Anfang 2007 fast voll unterstützt. Da die MAC-Adressen im NVRAM gespeichert werden, werden sie bei einem Reset auf die voreingestellten Werte auf 00:11:22:33:44:5x gesetzt. Die eindeutigen Adressen gehen also verloren und müssen per Hand auf die Werte des Gerätegehäuses gesetzt werden. Siehe MAC-Adresse wiederherstellen und mehr.

LEDs können irreführend sein

Auf meinem Gerät fand ich heraus, dass das LED-Muster sehr irreführend sein kann. Mit einem völlig funktionsfähigem WR850G v1 mit laufendem DD-WRT v2 final ("Weihnachts-Edition" vom 25. 12. 2005) sah ich:

  • POWER blinkt rot (kommt als letztes)
  • MODEM (welches über DHCP verbunden ist) leuchtet "orange" (rot und grün) erst blinkend, dann dauerleuchtend, wenn verbunden (XOR traffic)
  • WLAN ist die ganze Zeit aus
  • LAN# sind stabil grün (XOR traffic), wenn verbunden (wenn Schnittstelle oben ist)

Nehmen Sie das Blinken der Power-LED nicht zu ernst, es hat nicht die gleiche Aussage wie bei einem WRT54G! Es ist halt die DD-WRT und BrainSlayer sagt (FIXME: Link) es gibt keine LED-Unterstützung für den WR850G in DD-WRT, sie könnten auch alle aus sein.

Wie man das tote Tier wieder belebt

Jetzt haben Sie ein totes WR850Gv1 und möchten es wieder beleben? Sorgen Sie sich nicht, es wird kein JTAG benötigt und es ist nicht nötig, das Gerät zu öffnen.

Vorbedingungen für das Debricking

Hardware

Ich besitze ein Laptop mit Linux, eine WLAN-Karte (gute alte Avaya, mit Orinoco-Chip), einen Switch (sehr wichtig, ich habe keinen Hub um es zu testen) und einen WRT54G auf dem ich Site-Survey laufen lassen kann (ein Kismet/*Stumbler-Gerät tut es auch) Mit Linux, bei dem die IP-Adressen über einen DHCP zugewiesen wurden und zusätzlich feste (bekannte) Adressen, benutzen Sie:

ifconfig eth0:1 192.168.10.5
ifconfig eth0:2 192.168.1.5

um in der Lage zu sein, den Zugriff der Default-Adresse 192.168.10.1 (eines jungfräulichen) WR850G zu erhalten und die IP-Adresse 192.168.1.1 zugewiesen durch DD-WRT, ohne die anderen Verbindungen zu verlieren.
Der Switch hält Ihre Schnittstelle oben, selbst wenn der Router seine Ports zurückstellt.
Eine WLAN-Karte ist erforderlich, wenn die LAN-Schnittstellen falsch konfiguriert und nicht mehr erreichbar ist.

Software

Firmware erhalten

Bei Bedarf Auspacken (*.exe kann ungepackt sein, benutzen Sie unzip -x unter Linux.) Benutzen Sie:

dd if=firmware.trx bs=8 skip=1 of=firmware.bin

um die Versionen zu erzeugen, die via TFTP und/oder via Firmware-Upgrade der DD-WRT-Webseite geladen werden können.

Überprüfe, was noch funktioniert

Starten sie einen Site-Survey auf einem anderen Router oder Kismet oder von einem anderen WLAN-Abfrage-Tool, um zu überprüfen, ob das WLAN-Interface des WR850G funktioniert. Denken Sie daran, dass Sie den LEDs nicht trauen dürfen.
Während des Aus- und Anschaltens lassen Sie einen Ping auf 192.168.10.1 laufen (hierbei ist ein Switch sehr hilfreich). Vergewissern Sie sich, dass die LAN-Schnittstelle aud den Bereich 192.168.10.xxx eingestellt ist.
Verbinden sie das Kabel mit der WAN-Schnittstelle und wiederholen sie die vorherigen Schritte bei Bedarf.
Wenn Sie irgendeine Antwort erhielten, besteht noch Hoffnung für Sie!
Wenn nicht, können Sie die Reset-Taste auf der Rückseite des Routers betätigten und halten sie ihn eine Weile.
Mit DD-WRT geflasht, sehen sie vermutlich nichts. Das muss nicht heißen, dass nichts geschieht.
Um zu überprüfen, ob sie Erfolg gehabt haben, gehen Sie zurück zu dem Anfang dieses Abschnitts.

WLAN ist vorhanden, aber kein kabelgebundener Zugang

Überprüfen sie die WLAN-MAC-Adresse angezeigt durch ihre WLAN-Abfrage, es sollte die auf dem Aufkleber ihres Gerätes sein. Entfernen sie die Namensgebungen der kabelgebundenen Schnittstellen, und überprüfen sie:

ifconfig eth0:1 down
ifconfig eth0:2 down
ifconfig -a

Setzen Sie dann Ihre WLAN-Karte, ein und überprüfen Sie mit iwconfig, ob sie ihren Access-Point sehen können. Fahren sie noch nicht ihre Schnittstellen rauf
Versuchen Sie jetzt, eine Adresse über DHCP zu erhalten (die Vorgehensweise hängt von Ihrer Linux-Distribution ab, bei Debian editieren sie /etc/network/interfaces). Wenn sie keinen Erfolg haben, weisen sie eine IP-Adresse manuell zu. (Sie müssen zwei haben, einmal für das Netzwerk gehörender Router, und eine für 192.168.10.xxx).
Leeren sie ihren ARP-Cache öfters durch Starten eines Broadcast-Ping.
Versuchen sie eine Verbindung mit dem HTTP-Port des Routers (Mit nmap zur Überprüfung, welche Ports da sind).
Wenn sie Erfolgreich sind, fahren sie mit "Flash back from Web" unten fort.

Kabelgebundener Zugang funktioniert

Versuchen sie eine IP-Adresse vom DHCP zu erhalten, dann versuchen sie eine Verbindung zum HTTP-Port. Vergessen sie nicht, den ARP-Cache zu leeren.

Kein Web-Zugriff zum Router

Wenn sie keine IP-Adresse vom DHCP erhalten, versuchen sie es mit einer festen IP-Adresse von dem (hoffentlich korrekten) Adress-Bereich, Es kann sein das sie immer noch keinen Web-Zugriff bekommen, aber wie sie bemerkt haben, erhielten sie vorher eine kurze Antwort des Ping. Sie können per TFTP die Firmware direkt übertragen, dies ist vorher erwähnt worden, aber Wiederholung tut nicht weh:

  • Trennen Sie ihren Router vom Stromnetz.
  • Verbinden sie per Kabel einen der LAN-Ports mit ihrem Linux-PC, starten Sie
    tftp 192.168.10.1
    bin
    trace
    put firmware403.bin
    

    (stellen sie sicher, das sie die Firmware der 4.03-Version verwenden, es ist das einzige, die Ihnen eine Reparatur erlaubt!) und zur selben Zeit drücken sie ENTER und stecken sie die Stromversorgung an den Router.


Fahren Sie mit "Restore virginity" unten fort

Flash back from Web

... FIXME: wurde schon Beschrieben ... (benutzen sie *.bin für DD-WRT, *.trx für Moto FW - Sie erhalten die Abbildung)

Restore virginity

(Dies muss nicht notwendig sein, aber es definiert mindestens den Zustand des Routers.)
Let the LEDs come to a rest.
Schalten sie ihren Router aus.
Halten Sie die Reset-Taste, schalten sie den Router ein, lassen sie den Router während des Resets einen zweiten durchlauf machen (schauen sie auf die rote Power-LED), dann lassen sie die Reset-Taste los.
Lassen sie ihn ein wenig ruhen.
Schalten sie den Router aus und wieder ein.

MAC-Adresse wiederherstellen und mehr

Loggen sie sich auf ihren Router ein, sie müssen einige Benutzernamen/Passwort-Kombinationen probieren (root oder admin, admin oder motorola oder ihr vorheriges Passwort) Versuchen Sie NICHT, alte Backups wieder aufzuspielen Es ist ein Bug in Version 4.03 (und 5.13) der Firmware, welcher den HTTP-Server abstürzen lässt, wenn Sie zur Konfigurations-Seite gehen. (Diese arbeitet nur, wenn alle DD-WRTEinträge aus dem NVRAM entfernt worden sind, aber was soll's)
Gehen sie zu der frame_debug.asp Seite. (Dies ist ein verstecktes Feature, geben sie die URL per Hand ein.)
Tippen Sie

nvram show | grep ..:..:

in das Eingabefeld und nicht Enter drücken - click APPLY stattdessen!
Das Ausgabefenster zeigt folgende Zeilen:

et0macaddr=00:11:22:33:44:55
et1macaddr=00:11:22:33:44:56
lan_hwaddr=...
wan_hwaddr=...
wan0_hwaddr=...
wl0_hwaddr=...

- die et*macaddr Werte sind unterschiedlich, 00:0C:10:21:32:0x sind auch schon aufgetaucht.
Benutzen sie die zwei MAC-Adressen die sich auf dem Aufkleber am Boden des Routers befindet (WAN und WLAN).
Nun kommen wir zum kompliziertem Teil: benutzen Sie die WAN Nummer für das LAN (die niedrigste) die nächst höhere für WAN, und benutzen sie die höchste für WLAN.
Fragen Sie mich nicht, warum die Router mit dem falschen Auftrag (?) versendet worden sind: beide, CFE und DD-WRT machen es richtig. Glaubt mir.
Setzen sie jetzt alle Adressen in die korrekten Werte, mit Ausführung der folgenden Kommandos, Stück für Stück (ändern sie die MAC-Adressen mit ihren eigenen Werten) und senden sie sie mit APPLY:

nvram set et0macaddr=00:0C:E5:46:00:3E
nvram set et1macaddr=00:0C:E5:46:00:3F
nvram set lan_hwaddr=00:0C:E5:46:00:3E
nvram set wan_hwaddr=00:0C:E5:46:00:3F
nvram set wan0_hwaddr=00:0C:E5:46:00:3F
nvram set wl0_hwaddr=00:0C:E5:46:00:40

Bemerken sie, dort ist keine il0macaddr-Einstellung, im Vergleich mit der neueren Version und die wan0 _ * Einstellung kann überholt sein! Überprüfen sie nochmal:

nvram show | grep ..:..:

und wenn alles korrekt ist, dann

nvram commit

Resetten sie den Router im Moment noch nicht!
Ich habe in seltenen Fällen entdeckt, dass das Port-zu-VLAN-Mapping falsch sein kann. Überprüfen sie:

nvram show | grep vlan

und bestätigt, wenn sie haben

vlan0ports=0 1 2 3 5*
vlan1ports=4 5

- wenn Sie unterschiedliche Einstellungen haben, müssen Sie diese setzen auf

nvram set vlan0ports="0 1 2 3 5*"

(Anführungszeichen!), und ähnlich für vlan1ports, Überprüfen Sie außerdem die Werte von port*vlans (sie können sicher entfernt werden)!
Wenn alle Änderungen wiederholt und festgelegt worden sind, Reboot (Router aus- und wieder anschalten).

Upgrade zu 6.1.4

Es wurde erwähnt, dass durch Flashen der DD-WRT Version 6.1.4 die LED Funktionalität erhalten bleibt, ich kann dies nicht bestätigen.
Gehen sie nicht zu Konfigurations-Seite "Backup/Restore", der httpd wird sich aufhängen.
Benutzen sie die Firmware-Upgrade-Seite um Version 6.1.4 (das .trx File) zu flashen.
Wenn bereit, klicken Sie die RESTART Taste.
Der Router wird automatisch neu Starten und zeigt seine Hauptseite.
Klicken sie auf "Restore Factory Configuration", welche das NVRAM am besten säubert. Sie können es nicht überprüfen.
Dies ist die letzte Chance, um es sicher zu tun. Lasst mich wiederholen: DD-WRT kennt nicht die korrekten Grund-/Firmware-Einstellungen.

Upgrade zu DD-WRT

Benutzen sie das Firmware-Menü, und flashen sie mini_moto.trx Unter Firefox wird ein Popup-Fenster geöffnet, welches fragt, was mit der upgrade.cgi gemacht werden soll. Ich beschloss, es in einem Text-Editor zu öffnen: Es benötigt drei Zeilen Text, bevor es korrekt mit HTTP arbeitet:

WR found
Mem: 14950400
Motorola CRC correct...
HTTP/1.0 200 Ok
Server: httpd
...

da jetzt wieder ein Neustart ansteht, ist es Zeit, den ARP-Cache wieder zu leeren und nach Möglichkeit ihr Netzwerk-Interface neuzustarten.
Verbinden sie sich wieder mit dem Router und sie erhalten die Status-Seite.
Rebooten sie den Router, nach Möglichkeit Neustart von eth0, und leeren sie den ARP-Cache erneut.
Das Benutzer/Passwort-Paar ist jetzt "root/motorola".
Machen sie ein Backup von ihrer Konfiguration und bezeichnen sie ihre Datei mit einem Datum Speicherkapazität ist heutzutage preiswert, Sie können jedes von ihnen benötigen.

Gratulation

Sie haben es getan, Sie erhielten, was Sie verdienten! Nach eines harten Tages Arbeit könne Sie jetzt die Früchte ihrer Arbeit genießen.