TP-LINK TD-W8970 V1.2 bricked


(ggkbb) #1

Witam,
Jestem posiadaczem TD-W8970 V1.2 od wczoraj. Wszystko działało ok, jednak zaktualizowalem firmware do najnowszego ze strony TP-link.
TD-W8970_V1_140613
Co ciekawe w routerze zainstalowany był nowszy soft, jednak niedostępny na oficjalnej stronie. (14.09.19)
Z tego co wyczytałem nie powinno być problemów z aktualizacją, natomiast po upgradzie router nie wstał. Świeci się tylko power a po czasie migną wszystkie ledy i tak w kółko. Firmware wgrywałem przez WIFI wbrew zaleceniom.
Moje pytanie brzmi - co mogę z tym teraz zrobić, jakie mam możliwości? Czy router ma opcje recovery? Czy musze się łączyć po serialu?
Jeśli tak jaki dokładnie moduł zakupić?
Dziękuję i pozdrawiam.


(Heinz) #2
  1. Najlepiej zanieś go do sklepu i wymień na gwarancji.
  2. Nie ma recovery
  3. Tak. Serial + LAN

Inaczej to szukaj modułu USB-TTL np na CP2102 lub na CH340


(ggkbb) #3

Dzięki.
Kupiłem http://allegro.pl/cp2102-usb-uart-konwerter-rs232-arduino-i6140441564.html
Kable mam lutować bezpośrednio do płytki routera?
I czy firmware tplinka mam wgrywac tak samo jak np Openwrt?
Czy najpierw openwrt a potem z gui tplinka?


(Heinz) #4

Najlepiej jest wlutować goldpiny . Zawsze w razie awarii można łatwo podłączyć interfejs.

Dokładnie tak samo.
Możesz od razu wgrać fabryczne firmware


(ggkbb) #5

Witam,

TFTP from server 192.168.1.100; our IP address is 192.168.1.1
Filename 'tplink.bin'.
Load address: 0x80800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##################################
done
Bytes transferred = 8126976 (7c0200 hex)
VR9 # sf erase '0x20000' '0x7a0000'
...
Successfully erased 7995392 bytes @ 0x20000
VR9 # sf write '0x80800000' '0x20000' '0x7c0200'
...
Successfully programmed 8126976 bytes @ 0x20000
VR9 #reset
Hit any key to stop autoboot:  0
8192 KiB W25Q64 at 0:3 is now current device
8192 KiB W25Q64 at 0:3 is now current device
        Uncompressing ... LZMA: uncompress or overwrite error 1 - must RESET board to recover

wlutowalem goldpiny i uruchomilem usb2serial.
wgrałem TD-W8970v1_0.6.0_2.8_up_boot(130828)_2013-08-28_10.41.41.bin
bajtów: 8 126 976

prawdopodobnie wgrałem za duży firmware z bootloaderem?
zamiast TD-W8970v1_0.6.0_2.1_up(130415).bin bez booatloadera?
czy da sie to jeszcze odratowac?


(Heinz) #6

Ten router w zasadzie można bez wylutowania flasha postawić nawet jak mu bootloader nadpiszesz.
Tutaj:

Możesz pobrać firmware które przywraca fabryczny soft z openwrt ale można go także wgrać przez bootloader.


(ggkbb) #7

Witam, dzięki za odpowiedź i sugestie.
Sciągnąłem restore_kernel_rootfs_org.bin.
Wgrałem wgetem z lokalnego ftp do /tmp

sysupgrade -F -n restore_kernel_rootfs_org.bin

lecz router nie wstaje.
którym sposobem najpewniej wgrac orginalny soft?


(ggkbb) #8

wgrałem ponownie poprzez:

tftpboot '0x80800000' 'restore_kernel_rootfs_org.bin'
sf erase 0x20000 0x7a0000
sf write 0x80800000 0x20000 0x7a0000
reset

po restarcie:

...
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
CPU 0 Unable to handle kernel paging request at virtual address c002dea4, epc == 80124b9c, ra == 80124b38
Oops[#1]:
Cpu 0
$ 0   : 00000000 00000000 c002dea4 fffe9dd0
$ 4   : 00020000 00009dd0 fffe0000 c000e677
$ 8   : 81074340 80398360 00000041 7e65e512
$12   : 00000001 838e6f80 838f7200 000014dd
$16   : 00000003 00000000 000e9dcf 00009c74
$20   : c01df644 0000000a 83a97b04 c002e000
$24   : 00000000 80022a00
$28   : 83a96000 83a97ad8 000e9dd0 80124b38
Hi    : 00000001
Lo    : 0642ac00
epc   : 80124b9c unlzma+0xf04/0x105c
    Not tainted
ra    : 80124b38 unlzma+0xea0/0x105c
Status: 1100fc03    KERNEL EXL IE
Cause : 00800008
BadVA : c002dea4
PrId  : 00019556 (MIPS 34Kc)
Modules linked in: scsi_wait_scan usb_storage usbcore sd_mod scsi_mod
Process insmod (pid: 223, threadinfo=83a96000, task=83841638, tls=00000000)
Stack : 00000002 800aebbc 00010000 803cff20 00000003 00000027 0000001f 6d000200
        00000000 00000200 008962a0 80123b10 c000e67a c000c000 c0012df0 00006df0
        0176cf06 02a859e8 027f1a40 8000c9b8 000003a8 00000160 00002f40 00000000
        c000c000 c01df000 00000003 00000003 00000001 c01df644 c01dfa68 c01df664
        00000007 803cff20 83a97af0 83a97aec 803e0000 83a09870 00000000 00000000
        ...
Call Trace:
[<80124b9c>] unlzma+0xf04/0x105c
[<800da82c>] lzma_uncompress+0x180/0x320
[<800d6860>] squashfs_read_data+0x494/0x738
[<800d71e8>] squashfs_cache_get+0x1bc/0x2f0
[<800d81cc>] squashfs_readpage+0x5c0/0x9c0
[<80068540>] __do_page_cache_readahead+0x21c/0x284
[<800685d0>] ra_submit+0x28/0x34
[<80068bb0>] page_cache_sync_readahead+0x5c/0x68
[<80060e24>] generic_file_aio_read+0x28c/0x878
[<80086b48>] do_sync_read+0xd4/0x13c
[<80087908>] sys_read+0x58/0xa0
[<800041a4>] stack_done+0x20/0x3c

Code: 1440fffb  02651023  02e21021 <90520000> 02f31821  26730001  08049302  a0720000  027e1823
Disabling lock debugging due to kernel taint
Segmentation fault

(Heinz) #9

Na openwrt działał normalnie?


(ggkbb) #10

no nie zupełnie.
udało mi się wgrać luci-15.05-lantiq-xrx200-TDW8970-sysupgrade.image i zalogowałem się do luci ale nie bylo w panelu WIFI.

potem probowalem wgrywac factory firmware i sie sypały błędy.
teraz chciałem wrócić do luci-15.05-lantiq-xrx200-TDW8970-sysupgrade.image, działa ale nie moge wejść do panelu (bad gateway)

sypie różnymi błędami a'la kernel panic segmentation fault czy

[   98.272000] SQUASHFS error: squashfs_read_data failed to read block 0x2b5f3a
[   98.276000] SQUASHFS error: Unable to read fragment cache entry [2b5f3a]
[   98.284000] SQUASHFS error: Unable to read page, block 2b5f3a, size 1a158

czy wgranie i nadpisanie 8126976 (7c0200 hex)
zamiast 7995392 (7a0000 hex)
może mieć takie konsekwencje? być może nie nadpisałem bootloadera a inną partycję?


(Heinz) #11

Najprawdopodobniej uszkodziłeś partycję ART przez co nie startuje wifi.
Kolejna sprawa to możliwe uszkodzone "bloki" w pamięci flash.
Spróbuj pobrać zawartość partycji "config" oraz "board config"
W terminalu wpisz polecenia:

cat /dev/mtd4 > /tmp/mtd4.bin
cat /dev/mtd5 > /tmp/mtd5.bin

Teraz przekopiuj te pliki na pendrive lub przez scp do komputera.
Skoro masz już ich kopie to teraz możesz spróbować wgrać pliki z mojego routera:
pobierz, wypakuj i udostępnij w tftpd plik z załącznika. Wgraj do pamięci flash przez bootloader używając poleceń:

tftpboot '0x80800000' 'mtd4.bin'
sf erase 0x7c0000 0x10000
sf write 0x80800000 0x7c0000 0x10000

oraz

tftpboot '0x80800000' 'mtd5.bin'
sf erase 0x7d0000 0x30000
sf write 0x80800000 0x7d0000 0x30000

(ggkbb) #12

nie bardzo wiedzialem jak podmontowac usb wiec poszlo bez backupu ;D
zrobiłem jak nakazałeś, zrestartowałem, wszystko hula już bez zadnych błędów.
bardzo dziękuję i prosze o numer konta na podziękowania.
jak rozumiem powinno teraz zadziałać wgranie firmwareu orginalnego:

sysupgrade -F -n restore_kernel_rootfs_org.bin

tftpboot '0x80800000' 'restore_kernel_rootfs_org.bin'
sf erase 0x20000 0x7a0000
sf write 0x80800000 0x20000 0x7a0000
reset

czy te metody są równorzędne?
czy wgranie przez www/luci tez jest możliwe i równorzędne z powyższymi?


(Heinz) #13

Dokładnie wszystko jest to samo.


#14

A ja sie wlasnie na tym forum chciałem dowiedzieć, jak aktualizować sobie firmware tego rutera z 130828 na 140613. Dobrze że nawet nie zacząłem.
Dzieki koledzy za tego posta bo z moimi umiejetnościami to ruterek wyladowałby obok innego szmelcu w piwnicy !!


#15

Mam podobny problem ze swoim W8970-1.2:
miałem soft w wersji 0.6.0 2.11 v000c.0 Build 141008 Rel.41184n najprawdopodobniej wersja UK
telnet-SSID hack nie chciał działać, więc zdowngradowałem do 140608, po czym router nie chciał wstać;

Nie zrażony tym podłączyłem konsolę seryjną i widzę:

ROM VER: 1.1.4
CFG 05

ROM VER: 1.1.4
CFG 05

DDR autotuning Rev 0.3ff
DDR size from 0xa0000000 - 0xa3ffffff
DDR check ok... start booting...



U-Boot 2010.06-LANTIQ-v-2.0.40-svn4806 (Jun 12 2014 - 10:34:17)

CLOCK CPU 500M RAM 250M
DRAM:  64 MiB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   Internal phy(GE) firmware version: 0x8434
vr9 Switch8192 KiB EN25Q64 at 0:3 is now current device


Type "run flash_nfs" to mount root filesystem over NFS

Hit any key to stop autoboot:  0 
8192 KiB EN25Q64 at 0:3 is now current device
8192 KiB EN25Q64 at 0:3 is now current device
        Uncompressing ... LZMA: uncompress or overwrite error 1 - must RESET board to recover

próbowałem wgrać najróżniejsze firmwary:

4915369 ... lede-17.01.4-lantiq-xrx200-TDW8970-squashfs-sysupgrade.bin
6553604 ... luci-15.05-lantiq-xrx200-TDW8970-sysupgrade.image
4194308 ... openwrt-15.05.1-lantiq-xrx200-TDW8970-sysupgrade.image
7995392 ... TD-W8970v1_0.6.0_2.11_up(141008)_11.44.54.bin
7995392 ... TD-W8970v1_0.6.0_2.12_up(140613)_2014-06-13_09.17.23.bin

wszystkie doświadczają tych samych symptomów (tam gdzie mogłem sprawdzałem poprawność sha256sum). (te dwa ostatnie mają obcięty bootloader przy pomocy dd)
@Heinz, potrafisz coś doradzić?


(Heinz) #16

Czyścisz flash przed wpisaniem nowego firmware?
Jakimi komendami się posługujesz?


#17

Zapis sesji:

VR9 # setenv bootargs 'board=WD8970'
VR9 # tftpboot 0x80800000 TD-W8970v1_0.6.0_2.11_up(141008)_11.44.54.bin
8192 KiB EN25Q64 at 0:3 is now current device
Using vr9 Switch device
TFTP from server 192.168.1.100; our IP address is 192.168.1.1
Filename 'TD-W8970v1_0.6.0_2.11_up(141008)_11.44.54.bin'.
Load address: 0x80800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################
done
Bytes transferred = 7995392 (7a0000 hex)
VR9 # sf erase 0x20000 0x7a0000
VR9 # sf write 0x80800000 0x20000 0x$(filesize)
VR9 # reset

(Heinz) #18

Wszystko dobrze a nie działa.
Spróbował bym wymiany bootloadera.

Wgraj ten: bootloader-w8970nv1.bin (128 KB)

polecenia:
tftpboot 0x80800000 bootloader-w8970nv1.bin
sf erase 0x0 0x20000
sf write 0x80800000 0x0 0x20000


#19

hej, dzięki za odpowiedź, byłem poza domem przez te pare dni;

bootloadera wgrałem (dzięki), co widzę przez zmianę linii:

U-Boot 2010.06-LANTIQ-v-2.0.40-svn4806 (Jun 12 2014 - 10:34:17)

na

U-Boot 2010.06-LANTIQ-v-2.0.40-svn4469 (Aug 28 2013 - 09:28:56)

(data/revision tego co podesłałeś są starsze niż to co było).

Niestety nadal widzę ten sam problem:

ROM VER: 1.1.4
CFG 05

DDR autotuning Rev 0.3ff
DDR size from 0xa0000000 - 0xa3ffffff
DDR check ok... start booting...



U-Boot 2010.06-LANTIQ-v-2.0.40-svn4469 (Aug 28 2013 - 09:28:56)

CLOCK CPU 500M RAM 250M
DRAM:  64 MiB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   Internal phy(GE) firmware version: 0x8434
vr9 Switch8192 KiB EN25Q64 at 0:3 is now current device


Type "run flash_nfs" to mount root filesystem over NFS

Hit any key to stop autoboot:  0 
8192 KiB EN25Q64 at 0:3 is now current device
8192 KiB EN25Q64 at 0:3 is now current device
        Uncompressing ... LZMA: uncompress or overwrite error 1 - must RESET board to recover

(Heinz) #20

Jaki soft masz teraz wgrany?
Może spróbuj jeszcze raz wgrać Openwrt.