TP-Link Archer A6 v2.0 - cannot install

It was specific...

Ahh. It was obvious to me, that I ovelooked this, sorry. :slight_smile:
Yes I used Non-US c6-v2 firmware.

Did the TFTP server logs say it was looking for...

ArcherC6v2_tp_recovery.bin

or

ArcherA6v2_tp_recovery.bin

"C" (ArcherC6v2_tp_recovery.bin) definitely

So, you're at a cross-roads...

You can either try TFTP again. I'll post detailed instructions (a few more steps than what you posted you did)...if you want to go that route.

Otherwise, use a serial connection to flash the firmware... or stick with stock firmware.

Recover using the TFTP server method. Written for Windows users...but the concepts are the same for other OS.

Download the stock firmware...you may need to try more than one version.

The OpenWRT "factory" firmware can also be used if you don't want to go back to stock.

Download TFTP64.

Rename the downloaded firmware file to ArcherC6v2_tp_recovery.bin, and place it in the same folder as TFTPD64.

Open your network settings in Windows, and select the wired adapter (don't try this on a wireless connection).

Right-click and select Properties.

Select Internet Protocol Version 4 (TCP/IPv4) and click on the Properties button.

In the General tab, select the radio button for Use the Following IP Address.

Enter 192.168.0.66 for the IP address.

Should default to 255.255.255.0 for the Subnet Mask.

Turn the router off.

Make sure nothing else is connected to the router, it should be just the router and your computer.

Open TFTPD64. You may be asked to allow it through the firewall. Select Public.

Note: Some people turn off the firewall. However, giving the TFTP server permissions temporarily, and later removing them is a little safer, IMO.

Go to Settings > Global, and uncheck everything except TFTP Server.

Go to Settings > TFTP. Select None for TFTP security. Uncheck Option negotiation, and enter 192.168.0.66 in the Bind to this IP address drop down.

Go back to the main window, and make sure the Current Directory dropdown is showing the path to the TFTPD64 folder, which should also contain your recovery firmware file ArcherC6v2_tp_recovery.bin

The IP address 192.168.0.66 should be displayed in the Server Interface dropdown. If not, select it.

Go to the router and press the power button and the reset button at the same time.

Release the power button...but continue to hold the reset button for about 4 or 5 seconds, then release.

You should see a progress bar going across the TFTPD64 screen (although it should only take a very short time).

View the log. It should show 100% transferred.

Go back to your wired network adapter, and change the radio button back to Obtain an IP Address Automatically.

Try to access the router GUI. The stock firmware IP address is 192.168.0.1 and admin/admin for the User Id and Password.

If you can see that you have Internet access in the Network icon, but can't access the GUI, open a Command prompt and run ipconfig /release and then ipconfig /renew.

Try to access the GUI again.

Worst case if this doesn't work is doing a serial recovery.

1 Like

@kjonca Your assumption about the A6 v2 being a rebadged C6 v2 only seems to apply to US/Taiwan versions when I look at the code. In fact, I am not seeing any references to support for any A6 v2 EU versions at this point.

You'd need to make sure (besides the actual hardware being identical) that the flash layout matches with what OpenWrt, and the special_id value can be extracted from the OEM firmware somehow (I forgot how though).

One of the reasons why I asked above what firmware file name the TFTP server was looking for...

The OP said ArcherC6v2_tp_recovery.bin

The TechInfoDepot data -

A6 V2 - en.techinfodepot.shoutwiki.com/wiki/TP-LINK_Archer_A6_v2.x

C6 V2 - en.techinfodepot.shoutwiki.com/wiki/TP-LINK_Archer_C6_v2.x

1 Like

Simple linux "xxd -c 60"
stock firmware:

00790554: 0000 0000 0000 0050 0000 0000 736f 6674 5f76 6572 3a31 2e33 2e36 2042 7569 6c64 2032 3032 3030 3930 3220 7265 6c2e 3635 3539 300a 6677 5f69 643a 3137  .......P....soft_ver:1.3.6 Build 20200902 rel.65590.fw_id:17
00790590: 3933 4335 4333 4634 4242 3743 4439 3932 3334 4639 3332 3946 3035 3431 4131 0a00 0000 0000 0200 0000 0000 0100 0000 004c 0000 0000 5375 7070 6f72 744c  93C5C3F4BB7CD99234F9329F0541A1.................L....SupportL
007905cc: 6973 743a 0a7b 7072 6f64 7563 745f 6e61 6d65 3a41 7263 6865 7220 4136 2c70 726f 6475 6374 5f76 6572 3a32 2e30 2e30 2c73 7065 6369 616c 5f69 643a 3435  ist:.{product_name:Archer A6,product_ver:2.0.0,special_id:45
00790608: 3535 3030 3030 7d0a 0000 002e 0500 0000 003c 3f78 6d6c 2076 6572 7369 6f6e 3d22 312e 3022 2065 6e63 6f64 696e 673d 2275 7466 2d38 223f 3e0a 3c70 726f  550000}..........<?xml version="1.0" encoding="utf-8"?>.<pro

openwrt-21.02.1-ath79-generic-tplink_archer-c6-v2-squashfs-factory.bin

0000201c: 736f 6674 5f76 6572 3a31 2e39 2e31 0a00 0000 0000 ce00 0000 0053 7570 706f 7274 4c69 7374 3a0d 0a7b 7072 6f64 7563 745f 6e61 6d65 3a41 7263 6865 7220  soft_ver:1.9.1...........SupportList:..{product_name:Archer 
00002058: 4336 2c70 726f 6475 6374 5f76 6572 3a32 2e30 2e30 2c73 7065 6369 616c 5f69 643a 3435 3535 3030 3030 7d0d 0a7b 7072 6f64 7563 745f 6e61 6d65 3a41 7263  C6,product_ver:2.0.0,special_id:45550000}..{product_name:Arc
00002094: 6865 7220 4336 2c70 726f 6475 6374 5f76 6572 3a32 2e30 2e30 2c73 7065 6369 616c 5f69 643a 3532 3535 3030 3030 7d0d 0a7b 7072 6f64 7563 745f 6e61 6d65  her C6,product_ver:2.0.0,special_id:52550000}..{product_name
000020d0: 3a41 7263 6865 7220 4336 2c70 726f 6475 6374 5f76 6572 3a32 2e30 2e30 2c73 7065 6369 616c 5f69 643a 3441 3530 3030 3030 7d0d 0a00 2705 1956 38c0 1541  :Archer C6,product_ver:2.0.0,special_id:4A500000}...'..V8..A

BTW, during my experiments I tried to replace this "Archer C6" with Archer A6" but also no luck.
"special_id:45550000" seems to be common for both.

I used linux, but if I understand You correctly I did these steps.
I am not sure if I was properly understood:

  1. I have no problem with bricked router - stock firmware works
  2. I have no problem with setting up tftp - logs show that after reboot router takes the firmware.
  3. I have problem that
    a) cannot load firmware via gui (router does not allow it)
    b) i cannot load firmware via tftp - logs shows that router picks it up, but then start back with stock firmware.

@kjonca See the link to the TP-Link safeloader code in my last post for the matches OpenWrt supports at this point.

What you have is the TP-Link upgrade procedure looking for this:
{product_name:Archer A6,product_ver:2.0.0,special_id:45550000}

And the OpenWrt image you're trying offers this:
{product_name:Archer C6,product_ver:2.0.0,special_id:45550000}.

The 'good' thing is there seems to be no EU/US/TW/... check, but you'll need an image with the correct match.

You look handy with Linux, can you try compiling OpenWrt master with this patch? Then try the Archer C6 v2 image again. If it works, I'd like to get your Tested-by (you can PM me your e-mail address) and I'll send in the patch for firmware-utils then.

Mind you, you need to be absolutely sure hardware and flash layout matches! At least the special_id does but that is no guarantee.

1 Like

Will try. But as this will be my first compilation (so far i used image builder for my routers) it can take a while. :slight_smile: But, does build includes kind of checksums inside image? Because I have changed string inside image (Archer C6 -> Archer A6) but this did not help.

1 Like

I am not completely familiar with what the tplink-safeloader code does but I reckon it does adapt some other bits, yes, to make the OEM software accept it beyond the strings you can read out.

Buildroot documentation is here.

Well, I think we are step further.
I was
git checkout v21.02.1
modifiied
tools/firmware-utils/src/tplink-safeloader.c
compile with default config (only changes target to only archer-c6-v2 )
and I was able to install openwrt via gui

root@OpenWrt:~# cat /proc/cpuinfo 
system type		: Qualcomm Atheros QCA956X ver 1 rev 0
machine			: TP-Link Archer C6 v2 (EU/RU/JP)
processor		: 0
cpu model		: MIPS 74Kc V5.0
BogoMIPS		: 385.02
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa			: mips1 mips2 mips32r1 mips32r2
ASEs implemented	: mips16 dsp dsp2
Options implemented	: tlb 4kex 4k_cache prefetch mcheck ejtag llsc dc_aliases perf_cntr_intr_bit cdmm contextconfig perf
shadow register sets	: 1
kscratch registers	: 0
package			: 0
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

I do not like this "C6" line but this is a little.

Now I wil test if everything works.
Thanks everyone for your efforts (and patience)

1 Like

@kjonca Lovely. Can you send me your tested-by through PM like this? Thanks!

Tested-by: firstname lastname <e-mailaddress>

I'm not sure why there are no A6 v2 images provided (nor does there seem to be a device page on the wiki for the A6 v2). That would need looking into.

(Please correct me if this should be new thread)
Is it possible to change size of firmware partition?
I tried to prepare image with needed packages only (-luci +freeradius in short) but it seems that partition limit is about 6M

Well it's your thread, so you're free to expand it as long as it concerns the A6 v2 I guess... Check the two Wikidevi links @anon89577378 posted with the hardware specs of the A6 / C6 listed. One says 16 MiB flash, another 8 MiB. If yours is 8 MiB then 6 MiB is what you'll have to cope with since the kernel etc need flash space too.

The flash chip is probably on top of your first photo, left of the EU stamp. You should find out what's silkscreened on it and google that so you'll know whether you got 8 or 16 MiB.

OpenWrt has just one DTS for this A6 / C6 v2 family. It shows an 8 MiB flash chip.

@kjonca Could you check the silkscreen on the flash chip? If it's identical to the 8 MiB chip on the C6 v2 it should read GD25Q64CSIG, according to WikiDevi.

I'd like to be sure (and you'd also have your answer to potential extra space on your device), before submitting the patch you succesfully tested on 21.02.

Unfortunately I cannot make better picture

(lack of abilities :slight_smile: )
But I guess this is 8MB only - partitions from original firmware (ArcherA6v2_eu-up-ver1-3-6-P1[20200902-rel65590].bin)
also ends before 8MB

partition fs-uboot base 0x00000 size 0x20000
partition default-mac base 0x20000 size 0x00200
partition pin base 0x20200 size 0x00100
partition product-info base 0x20300 size 0x00200
partition device-id base 0x20500 size 0x0fb00
partition os-image base 0x30000 size 0x100000
partition file-system base 0x130000 size 0x690000
partition favicon base 0x7cc000 size 0x02000
partition logo base 0x7ce000 size 0x02000
partition soft-version base 0x7d9400 size 0x00100
partition extra-para base 0x7d9500 size 0x00100
partition support-list base 0x7d9600 size 0x00200
partition profile base 0x7d9800 size 0x03000
partition default-config-f base 0x7dc800 size 0x03000
partition partition-table base 0x7df800 size 0x00800
partition user-config base 0x7e0000 size 0x09000
partition default-config base 0x7e9000 size 0x03000
partition certificate base 0x7ec000 size 0x04000
partition radio base 0x7f0000 size 0x10000

For those who's interested:
I was not able to put freeradius + openvpn here, and probably I will give up and use something with 16 MB flash.
But I was able to install openwrt here, with WPA enterprise with external radius server.
(I was hit by: Malformed RADIUS packet from host 192.168.0.234: Invalid attribute 0 but monkey patching inspired by https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=96e9c81aabe9e14d6ec75c3f238c4ca7389b92a8;hp=4f2243d40a400aa1ce6ae5d06325f93b4d9463a5 did help)
configured 4 vlan( wan (1 port), lan (2 ports + wifi) , two additional wans (1 port each)
and everyhing seems to work (at least for 2 days).
iperf
(alfa - desktop connected by eth, dorsz - laptop connected by wifi (5GHz i believe), laptop is in the next room )

sudo iperf3 -c dorsz -R
Connecting to host dorsz, port 5201
Reverse mode, remote host dorsz is sending
[  5] local 192.168.200.200 port 38944 connected to 192.168.200.244 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  38.7 MBytes   325 Mbits/sec                  
[  5]   1.00-2.00   sec  39.8 MBytes   334 Mbits/sec                  
[  5]   2.00-3.00   sec  39.9 MBytes   335 Mbits/sec                  
[  5]   3.00-4.00   sec  41.3 MBytes   347 Mbits/sec                  
[  5]   4.00-5.00   sec  41.7 MBytes   349 Mbits/sec                  
[  5]   5.00-6.00   sec  41.1 MBytes   345 Mbits/sec                  
[  5]   6.00-7.00   sec  42.5 MBytes   357 Mbits/sec                  
[  5]   7.00-8.00   sec  41.2 MBytes   346 Mbits/sec                  
[  5]   8.00-9.00   sec  41.7 MBytes   350 Mbits/sec                  
[  5]   9.00-10.00  sec  39.7 MBytes   333 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   411 MBytes   345 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   408 MBytes   342 Mbits/sec                  receiver

sudo iperf3 -c dorsz
Connecting to host dorsz, port 5201
[ 5] local 192.168.200.200 port 38948 connected to 192.168.200.244 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 32.4 MBytes 271 Mbits/sec 30 291 KBytes
[ 5] 1.00-2.00 sec 32.7 MBytes 274 Mbits/sec 0 365 KBytes
[ 5] 2.00-3.00 sec 32.5 MBytes 273 Mbits/sec 0 428 KBytes
[ 5] 3.00-4.00 sec 31.8 MBytes 266 Mbits/sec 3 366 KBytes
[ 5] 4.00-5.00 sec 32.7 MBytes 274 Mbits/sec 0 428 KBytes
[ 5] 5.00-6.00 sec 31.6 MBytes 265 Mbits/sec 27 356 KBytes
[ 5] 6.00-7.00 sec 31.8 MBytes 266 Mbits/sec 0 420 KBytes
[ 5] 7.00-8.00 sec 32.7 MBytes 274 Mbits/sec 2 349 KBytes
[ 5] 8.00-9.00 sec 33.4 MBytes 280 Mbits/sec 0 416 KBytes
[ 5] 9.00-10.00 sec 32.9 MBytes 276 Mbits/sec 0 472 KBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 324 MBytes 272 Mbits/sec 62 sender
[ 5] 0.00-10.01 sec 322 MBytes 270 Mbits/sec receiver

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.