CPE210 wiederbeleben / unbrick


#1

Da ich dazu noch nix passendes gefunden habe hier eine kurze Anleitung wie ihr einen CPE 210 von TP-Link wieder zum Leben erweckt falls er sich nach einem Firmwareflash Tod stellt.
Am besten gleich am Anfang die Windows Firewall deaktivieren da sonst zumindest bei mir tftp nicht wollte.

PC auf die 192.168.0.100 fest einstellen (sieht man per windump das er arp Request für diese Adresse schickt)
Original Firmware vom cpe210 bei TP Link laden die Firmware Datei in recovery.bin umbenennen (das wiederum sieht man auch per windump das er danach fragt)
Den tftp anmachen , die recovery.bin in das gleiche Verzeichnis packen und den cpe neustarten, nach kurzer Zeit sollte er sich die Firmwaredatei per ftp ziehen.


TP-Link CPE210/510
Berliner Freifunk: CPE210 V1.1 Helft mir bitte, kein VPN, kein FW Flash mehr
#2

Ich verstehe gerade das Szenario nicht so ganz.

Gehe ich recht in der Annahme, dass das Gerät immerhin noch in den Failsave-Mode bootet vor der Rettungsaktion?
Wie sind denn die RS232-Parameter “im Openwrt” in diesem Fall? 9600bps? 115200?


#3

das Gerät war nicht mehr über das Web Interface erreichbar und suchte nach einem recovery Image.

die rs232 Werte kann ich nicht sagen da ich so nicht mit dem Gerät verbunden war.


#4

Hallo Matthias,
ich habe dasselbe Problem (cpe 510) und wollte die Originale Firmware draufspielen. Ich habs aber nicht
hinbekommen. Also ich hab meinen Rechner auf 192.168.0.100 fest eingestellt.(windump gestartet kann da aber nichts deuten, da nichts passiert). Habe dann den tftp gestartet (denke mal den tftp32), die recovery.bin ins Current Directory abgelegt und den cpe neu gestartet (POR).

Nix passiert.

Kannst Du mir ein paar Tipps geben, wie ich die originale Firmware wieder drauf bekomme ?

Wie kriege ich die ip Adresse der cpe her raus ?

Oder habe ich die cpe geschrottet ? (Die Power LED leuchtet und die LAN0 reagiert noch )

Danke schon mal


#5

Firewall ausgeschaltet ? das ist bei mir auch noch aus:

http://support.microsoft.com/kb/239924/de-de

evtl den Cpe mit gedrücktem resetknopf einschalten.

auf jedenfalls sollte sich das Teil per windump melden. also wenn du da was siehst ist es schonmal die halbe Miete


#6

Wenn tcpdump/wireshark auf dem interface seitens der MAC des CPE keine Aktivität sehen nach dem Boot (egal ob jetzt mit gedrückter Reset-Taste oder ohne): Dann wird das Interface wohl nciht hochkommen und maximal der Rescue-Mode aktiv des OpenWRT aktiv sein, evtl. aber auch nur der bootloader selbst.

Dann wird’s wohl auf die serielle Konsole herauslaufen.


#7

Try to put a switch between CPE210 and PC… I have never been able to run recovery succesfully without the switch.


#8

hypothesis: perhaps the recovery mode is not doing Auto-MDX?
(A switch would solve that.)


#9

No, if you use direct connecttion, the link (and the NICin the PC) is switched on and off during boot of the router.
Tis happens in most cases by the network-manager.

The NIC-restart leasts to long for the boot-pcrocess, and te bootloader doesn’t detect the presence of the connected server.


#10

Also bei mir hat sich der CPE brav das Image gezogen, aber das war’s dann auch. Hat also nicht funktioniert.
Leider bekomme ich das Gerät nicht auf. Habe die zwei Schrauben unter dem Aufkleber gelöst, und wie geht es weiter? einfach rausziehen geht nicht…


#11

Edit: Hier stand Quatsch.

Schau mal hier:


#12

Ja, habe ich derweil auch gesehen. Der zieht einfach dran nach dem Abschrauben… Geht bei mir nicht. Auch nicht mit SEHR viel Gewalt. Vieleicht Hat TP-Link da inzwischen was verklebt, der ist noch recht neu. Ist aber ein V1.1, noch kein V2.
Verhakt ist da auch nix soweit ich das sehe…


#13

Habe meine CPE210 V1.1 mal genau so wie im Video zu sehen geöffnet…


#14

Also ich musste mal bei einer 1.0 eine Konsole anlöten ist aber schon einige Jahre her. Musste auch mehr fummeln als im Video gezeigt.


#15

Tatsache, war absichtlich verklebt. Ging leider nicht ganz zerstörungsfrei. Würde aber zukünftig gehen. Für alle Nachfolger:

Mit dem Messer noch mal TIEF bis zu den Schrauben von unten über die ganze Breite reinschneiden…


#16

Dann war es das falsche Image.
Es muss ein Factory sein, gern auch ein Gluon-Factory. (x mal gemacht schon.)


#17

Habe ich auch probiert…

Sieht nicht gut aus:

TP-LINK SafeLoader (Build time: Jun 12 2015 - 09:49:53)
CPU: 560MHz AHB: 225MHz DDR: 64MB
Performing LED check..  PASS
Press CTRL+B to enter SafeLoader: 1
Flash Manufacturer: Unknown(0xc8)
Flash Device ID: Unknown(0x4017)
Data flash init failed.
open user-config failed.
open user-config failed.

Input Password:
open user-config failed.
open user-config failed.
Input Password:

als ob der Flash kaputt wäre… Hier mal ein log mit ner factory:

TP-LINK SafeLoader (Build time: Jun 12 2015 - 09:49:53)
CPU: 560MHz AHB: 225MHz DDR: 64MB
Performing LED check..  PASS
Press CTRL+B to enter SafeLoader: 1
Flash Manufacturer: Unknown(0xc8)
Flash Device ID: Unknown(0x4017)
Data flash init failed.
open user-config failed.
open user-config failed.
Error: Kernel did not takeover charge of WatchDog last time!

enet0 port4 up

TFTP server address is 192.168.0.100; our address is 192.168.0.254
Get filename 'recovery.bin'.
#################################################################
#######
Done.
Bytes transferred = 3657090, 1088 Kbytes/sec
Incorrect File.
Writting error.
Allocated memory for elf segment ok: addr: 0x80060000, size 0x13aacb
Loading .text @ 0x80060000 (1288907 bytes)

Starting kernel



OpenWrt kernel loader for AR7XXX/AR9XXX
Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
Decompressing kernel... done!
Starting kernel at 80060000...

[    0.000000] Linux version 3.18.44 (julian@eclipse) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49389) ) #2 Mon Apr 10 04:28:24 CEST 2017
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
[    0.000000] SoC: Atheros AR9344 rev 2
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x03ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x03ffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x03ffffff]
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line:  board=CPE210 console=ttyS0,115200 mtdparts=spi0.0:128k(u-boot)ro,64k(pation-table)ro,64k(product-info)ro,1536k(kernel),6144k(rootfs),192k(config)ro,64k(ART)ro,7680k@0x40000(firmware) rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 60484K/65536K available (2855K kernel code, 151K rwdata, 576K rodata, 248K init, 200K bss, 5052K reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Clocks: CPU:560.000MHz, DDR:450.000MHz, AHB:225.000MHz, Ref:40.000MHz
[    0.000000] Calibrating delay loop... 278.93 BogoMIPS (lpj=1394688)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.080000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090000] NET: Registered protocol family 16
[    0.090000] MIPS: machine is TP-LINK CPE210/220
[    0.320000] Switched to clocksource MIPS
[    0.330000] NET: Registered protocol family 2
[    0.330000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.340000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.340000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.350000] TCP: reno registered
[    0.350000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.360000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.370000] NET: Registered protocol family 1
[    0.380000] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.400000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.410000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.420000] msgmni has been set to 118
[    0.430000] io scheduler noop registered
[    0.430000] io scheduler deadline registered (default)
[    0.440000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.450000] console [ttyS0] disabled
[    0.470000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[    0.480000] console [ttyS0] enabled
[    0.480000] console [ttyS0] enabled
[    0.490000] bootconsole [early0] disabled
[    0.490000] bootconsole [early0] disabled
[    0.500000] m25p80 spi0.0: found gd25q64, expected m25p80
[    0.510000] m25p80 spi0.0: gd25q64 (8192 Kbytes)
[    0.510000] 8 cmdlinepart partitions found on MTD device spi0.0
[    0.520000] Creating 8 MTD partitions on "spi0.0":
[    0.520000] 0x000000000000-0x000000020000 : "u-boot"
[    0.530000] 0x000000020000-0x000000030000 : "pation-table"
[    0.540000] 0x000000030000-0x000000040000 : "product-info"
[    0.540000] 0x000000040000-0x0000001c0000 : "kernel"
[    0.550000] 0x0000001c0000-0x0000007c0000 : "rootfs"
[    0.550000] mtd: device 4 (rootfs) set to be root filesystem
[    0.560000] 1 squashfs-split partitions found on MTD device rootfs
[    0.570000] 0x0000003f0000-0x0000007c0000 : "rootfs_data"
[    0.570000] 0x0000007c0000-0x0000007f0000 : "config"
[    0.580000] 0x0000007f0000-0x000000800000 : "ART"
[    0.580000] 0x000000040000-0x0000007c0000 : "firmware"
[    0.610000] libphy: ag71xx_mdio: probed
[    1.210000] ag71xx-mdio.1: Found an AR934X built-in switch
[    1.250000] eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[    1.260000] TCP: cubic registered
[    1.260000] NET: Registered protocol family 10
[    1.270000] NET: Registered protocol family 17
[    1.270000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.280000] Bridge firewalling registered
[    1.290000] 8021q: 802.1Q VLAN Support v1.8
[    1.300000] squashfs: SQUASHFS error: unable to read id index table
[    1.310000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0x6873 instead
[    1.320000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x1e06 instead
[    1.330000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0x20ee instead
[    1.340000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000010: 0x1500 instead
[    1.350000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014: 0x0400 instead

usw. bis dann kernel-panic kommt:

[    5.980000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00220020: 0xffe2 instead
[    5.990000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00220024: 0x0b95 instead
[    6.000000] jffs2: Further such events for this erase block will not be printed
[    6.070000] jffs2: notice: (1) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[    6.090000] VFS: Mounted root (jffs2 filesystem) readonly on device 31:4.
[    6.100000] Freeing unused kernel memory: 248K (803e2000 - 80420000)
[    6.100000] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[    6.100000] ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[   82.570000] random: nonblocking pool is initialized

irgendwo stand noch:

[    5.750000] jffs2: Old JFFS2 bitmask found at 0x00208b7c
[    5.750000] jffs2: You cannot use older JFFS2 filesystems with newer kernels

#18

Spendiere ihr mal eine org. Fw.


#19

auch schon probiert, mit 1.3 und 2.0

Edit: Egal bei welcher firmware (openwrt-gluon factory + sysupgrade, lede-gluon beta, orig. 1.3 und 2.0). Immer das:

Incorrect File.
Writting error.


#20

Sonst mal konsole anlören und manuell löschen