Veröffentlicht am
25. April 2010 in
Allgemein.
Tags: 2MB, DD-WRT, debrick, flashen, JTAG, Kabel, Linux, Parallelport, RAM, TJTAG, V7, WRT54G.
Da war uns doch glatt ein WRT54GS V 7 in einen unansprechbaren Zustand geraten. Diese Version des Routers hat zudem sehr wenig RAM (2MB). Da passt erst mal nur das kleine DD-WRT drauf. Aber eines nach dem anderen. Hier die Schritte um alles wieder gerade zu biegen:
- JTAG-Kabel besorgen. Wenn ihr so faul und unfähig seid wie ich, dann macht ihr das nicht selber, sondern bestellt es (mit Parallelportadapter) bei Ebay oder so. Komischerweise gabs das nur aus den USA. Sucht mal bei EBay nach “WRT54G JTAG”. Kostenpunkt: Rund 8 € (ist Ok finde ich für Arbeit, Material + Versand aus USA)
- Linksys WRT54G(S) aufmachen. Das ist ein wenig umständlich, aber durchaus als Einzelperson hinzubekommen. Siehe dazu den Artikel WRT54G Öffnen: “Rupf, Reiss, Auf!”
- Jetzt muss der “Pin Header” als Gegenstück zum Kabel an der entsprechenden Stelle angelötet werden.
- JTAG-Kabel anschließen. dabei so, dass das rot markierte Kabel zur Markierung “1″ zeigt.
- Auf der anderen Seite z.B. das Kabel in den Parallelport eures Rechners, (wenn der noch so was hat, ansonsten hättet ihr einen mit USB-Adapter bestellen müssen, die sind teurer).
- Besorgt euch die TJTAG-Software. Ihr müsst dann die entsprechenden Binairies benutzen - bei einem 32bit Linux also aus “linux_32bit” die Datei “tjtag3″ ausführbar machen. Ich kopiere sie dann auch gerne in mein erstelltes Verzeichnis $HOME/bin und mache sie ausführbar (chmod+x tjtag3).
- Ok jetzt habt ihr beide Seiten verbunden. Ihr könnt jetzt den Router einschalten, der sollte irgendwo gut wackelfrei stehen. Ihr braucht im Moment nur Strom- und JTAG-kabel.
- Wir testen jetzt mal, ob etwas funktioniert: tjtag3 -probeonly testet die Verbindung und versucht den Chip zu erkennen.
- Es gibt ausführlichere Anleitungen, ich beschreibe hier nur meinen Weg zum Ziel. Wer auf Nummer sicher gehen will sollte wo anders weiterlesen!
- Ihr könntet dann z.B. tjtag3 -flash:nvram ausprobieren. Ihr werdet danach nicht viel sehen. Es wird gesagt, dass die meisten Probleme hier begründet liegen. Danach solltet ihr der Anleitung bei DD-WRT folgen. Entsprechender der Hardwarerevision. Also z.B.:
- JTAG ist langsam. Also wieder Computer und Router mit Ethernetkabel verbinden
- tftp installieren.
- Router vom Strom trennen, Ethernet-Rechner-IP auf 192.168.1.2 bringen (wie das geht müsst ihr anderweitig herausfinden)
- Reset-Taste gedrückt halten, Strom rein, 20 Sekunden warten.
- Taste loslassen und mit Browser auf 192.168.1.1 gehen.
- per Management-Interface vxworkskiller als Image installieren. Eventuell mehrmals hintereinander versuchen, falls es nicht auf Anhieb klappt.
- Strom raus, rein, 2 Minuten warten
- Strom raus und wieder rein
- per tftp ein DD_WRT micro generic image auf Router hochladen. Genauere Beschreibungen anderswo.
- Wenn erfolgreich startet Router neu, oder ihr müsst ihn neu starten.
- FERTIG
Wenn ich es richtig verstanden habe besteht ggf. die Chance diese Version des Routers auch mit einem größeren Image zu bestücken (micro generic hat z.B. kein SSH, nur Telnet).
So wie oben beschrieben hat es bei mir geklappt. Die meisten Anleitungen im Internet sind Müll – und die Vielzahl an Forentips oft sehr verwirrend. Meine Anleitung daher ein wenig als roter Faden durch das Dickicht. Ihr müsst dann schon einiges an Wissen haben oder erwerben. Dies also eine Anleitung für Leute, die schon ein wenig Erfahrung mit dem Flashen von Routern haben – oder als Anhaltspunkt für die, die sich das ganze Wissen erst erarbeiten müssen.
Viel Erfolg bei euren Versuchen!
Bisher hatten wir noch keinen Bedarf zum Öffnen eines WRT und offenbar waren wir auch nicht neugierig genug. Aber da hier nun ein verwirrter WRT54GS aufgetaucht ist und wohl Eingriffe benötigt wurde es Zeit es zu versuchen. So richtig gelingen wollte es erst nicht. Aber mit der Methode “Ruf,Reiss, Auf!” scheints zu klappen. Gut zu sehen in dem Video auf Youtube:
opening WRT54GL part 1 of 3
Ziel soll demnächst sein via JTAG-Kabel zu flashen. Der WRT54GS hat ein lustiges TFTP: Es benötigt ein Passwort. Deshalb funktioniert normales TFTP nicht. Damit hat Cisco den TFTP-Standard verändert. D.h. man muss sich von Linksys ein tftp.exe für Windows herunterladen, damit es funktioniert. Na toll, wenn man kein Windows hat - unter WINE läuft das nicht. Crap.
Naja jedenfalls soll der WRT54GS mit DD-WRT laufen. Mit einem Mini-Image. Wir werden sehen.
So langsam werde ich Experte für das Zurücksetzen von Passwörtern bei den WRT54G. Zumindest bei OpenWRT/Freifunk. Eigentlich ist es ganz einfach:
- am besten sowas wie einen Kuli bereitlegen und den Router direkt an einen Rechner (am besten einen unixbasierenden) anschliessen.
- Man kann dann schon mal eine Schnittstelle auf eine Adresse des Netzwerkes 192.168.1.1/24 setzen wie z.B. 192.168.1.2
- Dann den Router greifen und Strom ziehen.
- Strom wieder rein
- Warten bis DMZ-Lampe leuchtet
- Einige Sekunden auf Reboot-Knopf (hinten) drücken.
- Danach telnet 192.168.1.1 – und schwupps sind wir schon im Router
- mtd unlock /dev/mtd/4
- mount -t jffs2 /dev/mtdblock/4 /jffs
- Nun kann man die Passwortdatei auf /jffs/etc/passwd bearbeiten. Problem ist jetzt das das Passwort da verschlüsselt steht. Ich nehme zum Editieren den Editor “vi”. Der hat 2 Modi: Den Befehls und den editier-Modus. Am besten so vorgehen: “vi /jffs/etc/passwd” – danach “O” eingeben, dann paste diese Zeile “root:$1$94$gPojrAnI0oPZSeHEJh/YF.:0:0:root:/tmp:/bin/ash” (das setzt das Passwort auf “admin”) Danach Taste ESC drücken. Jetzt solltest Du 2 Zeilen haben – dann am besten den Cursor eine Zeile hoch und an den Zeilenanfang setzen. Dort dann “i” eingeben (für insert) – und dann “#”. Dann wieder ESC und dann “:x” (für Speichern&Verlassen”
- Das Problem ist jetzt leider das dies nur das Passwort für SSH setzt, aber nicht für die WebUI – am besten geben wir jetzt aber doch erst mal reboot ein – der Router startet dann wieder auf seiner alten IP-Adresse auf die wir dann mit ssh root@IP-Adresse zugreifen
- Am besten gleich mit “passwd” ein neues Passwort setzen.
- Dann: “cd /var/etc” – dann schauen wir noch mal auf das neue verschlüsselte Passwort von root an: cat “/etc/passwd”
- Das markieren und kopieren wir dann – es ist der Teil zwischen “root:” und “:0:0″
- Ok jetzt “vi httpd.conf” . Wir gehen in die Zeile die mit “/cgi-bin:root:” und setzen den Cursor rechts neben den Doppelpunkt und drücken “C” (löscht bis zum Ende der Zeile und geht in den Einfüge-Modus) – danach das eben kopierte root-Passwort einfügen. Dann ESC und “:x” drücken
- FERTIG.
- Was ich jetzt mache ist noch die Prozess-ID vom httpd rauszufinden – ihn zu rebooten und sicherheitshalber noch mal das Passwort via WebGUI zu ändern. Keine Ahnung ob das nötig ist, aber ich hatte da einige Probleme es zu schaffen und sicher ist sicher.
Es gibt diverse Hinweise im Internet – aber ich hatte keinen Text gefunden, der alles das enthält was oben steht. Etwas eleganter wäre es sicher, wenn man das Passwort selber vorher generieren würde. Die Hashfunktion ist MD5 (startet mit $1$). Z.B. auf Linux mit dem Paket und Programm ‘makepasswd’: echo “passwort” | makepasswd –crypt-md5 - ihr nehmt dann den rechten String.
PS: Den zentralen Router SK28 habe ich mal auf die neue Firme 1.6.32 (Changelog) aktualisiert.
Neueste Kommentare
RSS