Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Vor einigen Tagen habe ich DD-WRT 24 SP3 auf meinem TP-Link WR1043ND v2.1 Router installiert. Leider lief die Firmware nicht so stabil wie zuerst gedacht und ein Betrieb als WLAN Accesspoint war nicht möglich. Relativ schnell war klar, dass OpenWRT das Gerät befeuern sollte. Ich habe ein „Werksreset“  nach dieser Anleitung versucht, jedoch den Fehler begangen, das Upgrade über eine WLAN-Verbindung zum Router durchzuführen. Während des Upgrades brach die WLAN Verbindung ab und die Softwareinstallation war nicht vollständig. In Folge dessen war der Router gebricked – d.h. es war keine Verbindung mehr über die üblichen Schnittstellen (LAN, WAN, WLAN) möglich und ein Reset über den Hardwaretaster blieb wirkungslos.

Es gibt zum Glück noch eine andere Möglichkeit, um mit dem Router zu kommunizieren: Die auf der Platine befindliche UART Schnittstelle kann genutzt werden, um über eine Konsole mit dem Gerät Kontakt aufzunehmen und Befehle zu geben. Auf diese Weise – und mit einem TFTP Server – ist es möglich, den gebrickten Router wieder zu beleben.

Benötigt werden ein 3,3V-UART USB Wandler, ein Kreuzschlitz-Schraubendreher, etwas Geschick, Nerven und Geduld ;)

UART Schnittstelle vorbereiten

TPL-WR1043ND v2 Platine UART

Auf der Gehäuseunterseite befinden sich vier Schrauben, die mit einem handelsüblichen Kreuzschlitzschraubendreher herausgedreht werden können. Des weiteren befinden sich im den Gehäuserand herum einige Widerhaken, mit denen die beiden Gehäusehälften zusammengehalten werden. Um das Gehäuse vollständig zu öffnen, ist etwas Gewalt nötig.

Auf der linken Seite der Platine (die schwarze Moosgummileiste mit den eingebetteten LEDs liegt unten) befindet sich ein Streifen von vier Lötstellen. Dabei handelt es sich um die UART Schnittstelle, zu der vom PC aus eine Verbindung hergestellt wird. Für die Kommunikation über UART sind nur drei Pins nötig: GND, RX und TX. GND stellt üblicherweise die Masse dar, RX ist der Empfängerport und TX der Senderport. Die oberste Lötstelle kann mit VCC, also Versorgungsspannung beschriftet werden – sie wird nicht benötigt.

Die Pins befinden sich in folgender Reihenfolge auf der Platine (vom Kondensator aus abwärts): VCC, GND, RX, TX.

Für einen einfachen (und wiederverwendbaren) Kontakt zum UART Adapter habe ich vier Pins auf die Platine aufgelötet. Sollte ich die Schnittstelle noch einmal benötigen, benötige ich keinen Lötkolben mehr, sondern bin ich der Lage, eine Steckverbindung herzustellen.

Zum Auflöten der Pins kann die Platine als ganzes aus dem Gehäuse gehoben werden. Die Drähte zu den Antennenanschlüssen müssen dazu aus ihren Halterungen entfernt werden.

TFTP Server einrichten

Die OpenWRT Firmware wird vom Router aus über eine TFTP Verbindung von einem PC via LAN heruntergeladen. Der Router hat dabei die Rolle des TFTP Clients – wenn dem Router eine Datei angeboten werden soll, muss auf dem PC deshalb ein TFTP Server eingerichtet werden.

Wie ihr einen TFTP Server einrichtet, könnt ihr an verschiedenen Stellen im Netz nachlesen. Arch Linux user sollten sich die Seiten im Wiki anschauen: https://wiki.archlinux.org/index.php/tftpd_server

Wichtig bei der Einrichtung: Legt ein extra Verzeichnis z.B. in eurem Home-Verzeichnis an (bei mir: „code.bin“) und macht es für den TFTP-Server zum Standard-Serververzeichnis. In dieses Verzeichnis wird später die Firmware-Datei (.bin) abgelegt. In der Beispielkonfiguration im Arch Wiki wird als Serververzeichnis /srv/tftp/ festgelegt – ändert das gegebenenfalls.

Noch ein Tipp für Arch User: Bevor der tftpd.service gestartet werden kann, muss der Dienst tftpd.socket laufen.

OpenWRT downloaden

Downloadet die aktuelle OpenWRT Firmware (Codename „Barrier Breaker“) für euren WR1043nd v2 (Download hier).

Die Firmware-Datei (bei mir: „openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-factory.bin“) wird in das TFTP Serververzeichnis auf eurem PC verschoben. Von dort lädt der TFTP-Client (Router) die Firmware herunter.

LAN vorbereiten

Damit der Router weiß, zu welchem PC mit welcher IP-Adresse er eine TFTP Verbindung aufbauen soll, gibt es eine Festlegung: Der Rechner mit dem TFTP-Server muss die IP-Adresse 192.168.1.100 haben. Verbindet die Netzwerkschnittstelle eures PCs über ein LAN Kabel mit dem LAN-Switch des Routers und legt für euren Rechner die statische IP 192.168.1.100 fest (Netzmaske: 255.255.255.0 | Gateway: 0.0.0.0).

PC mit UART Schnittstelle verbinden

Für die Verbindung zum Mainboard des Routers habe ich diesen UART Wandler genutzt. Stellt sicher, dass ggf. erforderliche Treiber auf eurem PC installiert sind.

Die Kommunikation findet über eine Kommandozeile statt. Ich empfehle Putty (für Linux, MacOS und Windows) als Client für die serielle Schnittstelle. Der UART Wandler wird via USB mit dem PC verbunden und Putty gestartet. Dort wird die korrekte serielle Schnittstelle (bei mir /dev/ttyUSB=) und als „Connection type“ „Serial“ gewählt sowie eine Baud-Rate von 115200 („Speed“). In den Einstellungen Links wird unter „Connection => Serial“ „Flow Control“ auf „None“ gesetzt.

Nun wird der UART Wandler mit dem Router-Mainboard verbinden. Dabei ist unbedingt zu beachten, dass die Stecker für RX und TX vertauscht angeschlossen werden. Der TX-Anschluss des Wandlers wird mit dem RX-Port des Routers verbunden und umgekehrt. GND wird mit GND verbunden und VCC wird nicht benötigt.

Nun wird der Router eingeschaltet und die serielle Verbindung mit dem „Open“ Button in Putty gestartet. In der Konsole sollten jetzt Informationen zum Bootvorgang erscheinen.

Sobald die Zeile

Autobooting in 1 seconds

erschienen ist, bleibt weniger als eine Sekunde Zeit, um

tpl

in die Kommandozeile zu tippen und den Befehl mit ENTER abzuschicken. Wenn ihr eine Kommandozeile mit dem Präfix

ap135>

(oder ähnlich) vor euch habt, kann es weitergehen.

TP-Link Bootloader Kommandozeile

OpenWRT Firmware flashen

Gleich ist es geschafft – jetzt muss die Firmware nur noch über LAN vom PC heruntergeladen und geflashed werden. Gebt die folgenden Befehle in eure Router-Kommandozeile ein:

tftp 0x80060000 openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-factory.bin
erase 0x9f020000 +0x7c0000
cp.b 0x80060000 0x9f020000 0x7c0000
boot.m 0x9f020000

Nach dem letzten Kommando startet der Router neu und lädt die OpenWRT Firmware. Im Terminal könnt ihr den Bootvorgang nachverfolgen. Sobald sich dort nichts mehr bewegt, drückt ENTER, um die root-Kommandozeile von OpenWRT zu erreichen.

TP-Link OpenWRT Kommandozeile

OpenWRT ist jetzt fertig installiert.

Setzt die Netzwerkeinstellungen eures PCs wieder so, dass er die IP-Adresse vom Router via DHCP zugeteilt bekommt. Startet den Router über die Konsole neu:

reboot

Über die IP-Adresse 192.168.1.1 erreicht ihr nun die LuCI Weboberfläche zur Konfiguration, wo ihr umgehend ein Passwort für die Routerkonfiguration festlegen solltet. Der erste Login funktioniert übrigens noch ohne Passwort. ;)

 

Quellen: http://www.dd-wrt.com/phpBB2/viewtopic.php?p=499750 | http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd#oem.installation.using.the.tftp.and.rs232.method


Post published on 29. August 2014 | Last updated on 3. Oktober 2014
Tags:       

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

11 thoughts on “TP-Link WR1043ND v2 unbricken und OpenWRT flashen

  • Guten Abend,
    wie richte ich OpenWrt im Detail ein? Ich habe unter /etc/config/network

    config interface ‚wan‘
    option ifname ‚eth0‘
    option proto ‚pppoe‘
    option username ’name‘
    option password ‚geheim‘

    eingetragen aber erhalte immer die Fehlermeldung „Unable to complete PPPoE Discovery“. Ich habe einen Account bei Arcor und vor dem Router eine EasyBox hängen. Habe ich etwas in der Konfiguration übersehen? Muss ich eine weitere Datei einrichten? Wäre über Hilfe dankbar. Eine Seite mit einer Beispieldokumentation (deutsch) würde mir sehr weiterhelfen.

    Danke

  • Hey,

    ich habe den TL-WR1043ND mit der Firmware DD-WRT v24-sp2 (06/23/14) – build 24461. Komischer Weise kann ich über das Webinterface nun keine andere Firmware mehr flashen.

    Er sagt zwar immer, dass das flashen erfolgreich war, aber die Firmware ist danach noch genau die gleiche.

    Ich wollte die OpenWRT flashen. Habt ihr eine Idee, woran das liegen kann?

  • Hallo,

    ich habe alles nach Deiner Anleitung gemacht. Wenn ich tpl eingebe, passiert nichts! Woran kann das liegen? Vielleicht ist der mittlere Pin nicht richtig verlötet?

    Gruß Maik

  • Thanks for you!
    I fixed my router!

  • Der Router kostet 39€. Mal ehrlich, wer tut sich das an ? Allein das Kabel bei reichelt kostet knapp 18€ und dann der ganze Aufwand !

  • Danke für die tolle Anleitung – habe einen 1043-er vor der Verschrottung damit gerechnet. Der USB UART hat mich 7,99 EUR gekostet….also eine sehr lohnende Investition :-)

  • Vielen dank aus Holland!
    Mit http://www.hobbyelectronica.nl/product/pl2303-usb-ttl-programmer-kabel/ habe ich es geschaft. (keine angst: 5V uber VCC arbeitet (3,3 auch))

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.