TP-Link WR841ND/Flash-Anleitung v13

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

<== zurück zu TP-Link WR841ND

Die (meisten) (neueren) TP-Link Geräte haben einen Recovery-mode im Bootloader. Diese Anleitung gilt nicht für pharos-devices. (Vorraussetzung ist ein PC oder eine virtuelle Maschine mit einem Linux oder Mac OS).

Hinweis für Benutzer von Mac OS Eure LAN Schnittstelle heißt en0 statt eth0. Der Rest funktioniert auch auf Mac OS wie unten beschrieben. Achtung das tftp Verzeichnis heißt bei Mac OS standardmäßig anders (ggf. Benutzerrechte anpassen).

1. Der Bootloader hat selbst die IP-Adresse 192.168.0.2 (kann variieren).

2. Das LAN Interface des Unix kompatiblen Rechners (Linux, Mac OS) wird vom Bootloader des Routers ZWINGEND auf 192.168.0.66 erwartet.

3. LAN Kabel von deinem Rechner in eine der gelben Buchsen am Router.

4. Wir drücken nun den Reset Taster des Routers, schalten diesen danach ein, halten den Reset Knopf etwa 7 sec gedrückt. Wenn die LED des Ports, an dem dein Rechner angeschlossen ist, leuchtet, dann noch eine Sekunde länger drücken bis die Port LED schnell flackert und dann erst den Taster loslassen.

5. Am PC, mit root Rechten :

ifconfig eth0 192.168.0.66 up

Nachsehen, ob der Bootloader wirklich anwesend und erreichbar ist:

(Siehe auch: https://forum.openwrt.org/t/installing-on-tp-link-tl-wr841n-v13/4930/3 )

interface=eth0
sudo tcpdump -ni $interface arp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:22:11.439255 ARP, Request who-has 192.168.0.66 tell 192.168.0.2, length 46
09:22:11.439335 ARP, Reply 192.168.0.66 is-at 08:00:27:34:ae:e3, length 28
09:22:26.447428 ARP, Request who-has 192.168.0.2 tell 192.168.0.66, length 28
09:22:26.448982 ARP, Reply 192.168.0.2 is-at ba:be:fa:ce:08:41, length 46

6: Dann fragen wir den Bootloader, was er denn von uns erwartet:

interface=eth0
sudo tcpdump -npi $interface udp|grep RRQ
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:19:18.344558 IP 192.168.0.2.2445 > 192.168.0.66.69:  34 RRQ "tp_recovery.bin" octet timeout 1

7: Er möchte bei diesem Gerät die Datei: tp_recovery.bin (ACHTUNG, bei jedem anderen Gerät wie z.B. einem 4300v1, dieses bitte wie unter Punkt 6: vorher abfragen!!! ) Ist der Router noch im Auslieferungszustand (kein OpenWrt) dann brauchen wir beim ersten mal das File `gluon-*-tp-link-tl-wr-841n-v13-bootloader.bin`, welches ihr im Firmware Ordner "other/" findet:

cp other/gluon-*-wr-841n-v13-bootloader.bin tp_recovery.bin

War schon ein OpenWrt drauf, nehmen wir hier eine sysupgrade Datei (nur nötig, falls man einen Gerät debricken will):

cp sysupgrade/gluon-*-wr841-v13-sysupgrade.bin tp_recovery.bin

8: Wir installieren uns atftpd

apt-get install atftpd

und kopieren das tp_recovery.bin nach /srv/tftp/

(Bei Mac OS ist der TFTP Server vorinstalliert muss aber vor Benutzung gestartet werden)

9: Wir schalten den Router aus, nochmal mit für ca 7 Sekunden gerücktem Reset Taster wieder ein. Der Bootloader wird nun auf unserem tftpd Server die Datei vorfinden, die er erwartet... ich poste hier mal den log davon über die serielle Console beim 4300v1: ( Das seht ihr normal nicht )

U-Boot 1.1.4 (Jun 17 2013 - 12:31:57)

U-boot DB120


DRAM:  128 MB
id read 0x100000ff
flash size 8MB, sector count = 128
Flash:  8 MB
Using default environment

PCIe Reset OK!!!!!!
In:    serial
Out:   serial
Err:   serial
Net:   ag934x_enet_initialize...
No valid address in Flash. Using fixed address
 wasp  reset mask:c03300
WASP  ----> S17 PHY *
: cfg1 0x7 cfg2 0x7114
eth0: ba:be:fa:ce:08:41
athrs17_reg_init: complete
eth0 up
eth0
dup 1 speed 1000
Using eth0 device
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'wdr4300v1_tp_recovery.bin'.
Load address: 0x80060000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
Using eth0 device
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'wdr4300v1_tp_recovery.bin'.
Load address: 0x80060000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
Using eth0 device
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'wdr4300v1_tp_recovery.bin'.
Load address: 0x80060000
Loading: len bad 46 < 100
T T T T T T T T T T
Retry count exceeded; starting again
Using eth0 device
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'wdr4300v1_tp_recovery.bin'.
Load address: 0x80060000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
Using eth0 device
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'wdr4300v1_tp_recovery.bin'.
Load address: 0x80060000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
Using eth0 device
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'wdr4300v1_tp_recovery.bin'.
Load address: 0x80060000
Loading: T T T T T T #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##############
done
Bytes transferred = 4063236 (3e0004 hex)
original_product_id = 43000001
 original_product_ver = 01
 recovery_product_id = 43000001
 recovery_product_ver = 01
 auto update firmware: product id verify sucess!

First 0x2 last 0x7d sector size 0x10000
 125
Erased 124 sectors
Copy to Flash... write addr: 9f020000
done

U-Boot 1.1.4 (Jun 17 2013 - 12:31:57)

U-boot DB120


DRAM:  128 MB
id read 0x100000ff
flash size 8MB, sector count = 128
Flash:  8 MB
Using default environment

PCIe Reset OK!!!!!!
In:    serial
Out:   serial
Err:   serial
Net:   ag934x_enet_initialize...
No valid address in Flash. Using fixed address
 wasp  reset mask:c03300
WASP  ----> S17 PHY *
: cfg1 0x7 cfg2 0x7114
eth0: ba:be:fa:ce:08:41
athrs17_reg_init: complete
eth0 up
eth0
Autobooting in 1 seconds
## Booting image at 9f020000 ...
   Uncompressing Kernel Image ...

*snip
*snap

BusyBox v1.23.2 (2016-06-02 19:49:57 CEST) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (Chaos Calmer, r49261)
 -----------------------------------------------------
  * 1 1/2 oz Gin            Shake with a glassful
  * 1/4 oz Triple Sec       of broken ice and pour
  * 3/4 oz Lime Juice       unstrained into a goblet.
  * 1 1/2 oz Orange Juice
  * 1 tsp. Grenadine Syrup
 -----------------------------------------------------
root@ff14cc20b4ef88:
*

10: Der Router wird ca 2 min nach dieser Prozedur neu starten und lebt mit der neu geflashten Firmware.

(Anleitung geht analog auch mit Windows, hier kann man mit Wireshark die entsprechenden Anfragen des Routers heraussuchen. Als TFTP Server geht zum Beispiel ntftp mit node.js. Wichtig: Standardmäßig verhindert die Firewall Anfragen über TFTP, für das Flashen muss man diese unter Umständen kurz deaktivieren, bzw. Port 69 freigeben)