Flashing a TP-Link Archer C7 V5.0 in detail

Original-TP-Firmware:
1.0.4 Build 20180425 rel.72768(4555)

https://openwrt.org/toh/hwdata/tp-link/tp-link_archer_c7_v5
Comments:
Some devices can not be directly flashed with 18.06.1, this was fixed in snapshots. Either use TFTP recovery like https://openwrt.org/toh/tp-link/tp-link_archer_c20_v4#installation (but with filename ArcherC7v5_tp_recovery.bin) or install snapshot, then downgrade to 18.06.1 (beware: no luci webinterface in snapshots). Some devices can not be downgraded to 18.06.1, but work ok with snapshot.

My 1st question is, which port of the C7 has to be connected with the pc. WAN or LAN?

mentions

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=bf39d5594b3c8f9409e6d9408a1f370c9f18d0dd

Flash instruction using TFTP recovery:

  1. Set PC to fixed ip address 192.168.0.66
  2. Download lede-ar71xx-generic-archer-c7-v5-squashfs-factory.bin
    and rename it to ArcherC7v5_tp_recovery.bin
  3. Start a tftp server with the file tp_recovery.bin in its root directory
  4. Turn off the router
  5. Press and hold Reset button
  6. Turn on router with the reset button pressed and wait ~15 seconds
  7. Release the reset button and after a short time
    the firmware should be transferred from the tftp server
  8. Wait ~30 second to complete recovery.

There is for example:

http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/openwrt-18.06.1-ar71xx-generic-archer-c7-v5-squashfs-factory.bin

https://downloads.openwrt.org/snapshots/targets/ar71xx/generic/openwrt-ar71xx-generic-archer-c7-v5-squashfs-factory.bin

Do I need really a file called "lede". Please tell me which is the correct file to flash for an Archer C7 v5 (EU).

There are different instructions how the file has to be renamed. ArcherC7v5_tp_recovery.bin or tp_recovery.bin?

  1. Start a tftp server with the file tp_recovery.bin in its root directory

Please more details. I am on a Ubuntu 18.04 pc.

~# which tftp
/usr/bin/tftp

Where do I have to put the file? Do I have to do something with root permissions?

Is it possible to flash the stock firmware back?

For up-to-date firmware download links see the Table of Hardware: Firmwaredownloads (filtered for Archer C7 v5)

If you want to install the latest stable: -> Firmware OpenWrt Install URL
If you want to install snapshot: -> Firmware OpenWrt snapshot Install URL

1 Like

Thanks, I know this page and I know the difference between release and snapshot or factory and sysupgrade. In other threads even renaming of a sysupgrade-file was recommended. In theory I need a factory-file.

But that doesn't answer my question what I shall use, because of

(beware: no luci webinterface in snapshots). Some devices can not be downgraded to 18.06.1, but work ok with snapshot.

Maybe is someone here, who flashed a C7 v5 EU? At the end I would like to use LUCI.

And please tell me where do I have to put the file on the pc?

My 1st question is, which port of the C7 has to be connected with the pc. WAN or LAN?

Just choose one of the LAN ports and connect it to your pc.

Do I need really a file called "lede". Please tell me which is the correct file to flash for an Archer C7 v5 (EU).

No you don't need a file called "lede". You can download the latest stable release for the Archer C7 v5 here:

http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/openwrt-18.06.1-ar71xx-generic-archer-c7-v5-squashfs-factory.bin
With this release luci comes preinstalled.

There are different instructions how the file has to be renamed. ArcherC7v5_tp_recovery.bin or tp_recovery.bin?

Rename the file to: ArcherC7v5_tp_recovery.bin

Where do I have to put the file? Do I have to do something with root permissions?

I'm using fedora and usually put my files here: /var/lib/tftpboot
As far as I know it's the same on ubuntu. You will need root permission to copy the file there.

Is it possible to flash the stock firmware back?

You can always go back to the stock firmware.

Feel free to ask in case of more questions :slight_smile:

Thank you so much for your answers accelerate. If one is unsure to brick a device every simple answer is very helpful.

In the meantime I found the following links:
https://oldwiki.archive.openwrt.org/doc/howto/generic.flashing.tftp
https://openwrt.org/docs/guide-user/installation/generic.flashing.tftp
https://openwrt.org/docs/guide-user/troubleshooting/tftpserver

So my main question with the C7 v5 EU is, if this router has a bootloader with a TFTP client or a TFTP server?

Which tftp-server is recommended?

~# dpkg -l | grep -i tftp
ii  dnsmasq-base                                                2.79-1                                          amd64        Small caching DNS proxy and DHCP/TFTP server
ii  tftp                                                        0.17-18ubuntu3                                  amd64        Trivial file transfer protocol client

I didn't read my links above in detail, but it looks like atftp should be a good choice. And there is also tftp-hpa. It is no problem to purge my installed tftp-packages. I installed them for flashing only.

Which packages would you recommend for the C7 v5?

~# aptitude search tftp | cut -c1-50
p  **atftp** - Fortgeschrittener TFTP-Client
p  atftp:i386 - Fortgeschrittener TFTP-Client
p  atftpd - hochentwickelter TFTP-Server
p  atftpd:i386 - hochentwickelter TFTP-Server
p  libnet-tftp-perl - Perl-Modul für den Zugriff 
p  libnet-tftpd-perl - Perl extension for Trivial 
p  puppet-module-puppetlabs-tftp - Puppet module f
p  python-tftpy - pure Python library for TFTP
p  python-txtftp - Twisted-based TFTP implementati
p  python3-txtftp - Twisted-based TFTP implementat
i  **tftp** - Client für das Trivial File Transfer Pr
p  tftp:i386 - Client für das Trivial File Transf
p  tftp-hpa - HPA's tftp Client
p  tftp-hpa:i386 - HPA's tftp Client
p  tftp-hpa-dbg - HPA's tftp (debug)
p  tftp-hpa-dbg:i386 - HPA's tftp (debug)
v  tftp-server - 
v  tftp-server:i386 - 
p  tftpd - Trivial file transfer protocol server
p  tftpd:i386 - Trivial file transfer protocol ser
p  **tftpd-hpa** - HPAs tftp-Server
p  tftpd-hpa:i386 - HPAs tftp-Server
p  uec-provisioning-tftpd - the UEC Provisioning T

So my main question with the C7 v5 EU is, if this router has a bootloader with a TFTP client or a TFTP server ?

As the router is pulling the file from a server it's acting as a TFTP client.

Which tftp-server is recommended?

In your case I guess it should be: sudo apt-get install tftp-server
You don't need anything special, just a simple TFTP server.

Do you have a second pc/notebook/... ? - I would suggest to try accessing the TFTP server from another client before flashing. So we know your server is actually working.

I Flashed this week an archer C7 V5. 0 : OWrt 18.06.1 works fine with LuCi web interface.

I'm close to a n00b and did it with windows laptop.

Maybe next step for me is to go to a laptop with opensource sw :wink:

I have a notebook and will do tests before flashing. At the moment I am using an old notebook,

~# dpkg -l | grep tftp
ii  tftpd                                  0.17-18ubuntu2                             i386         Trivial file transfer protocol server

~# service tftpd status
● tftpd.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

~# service tftpd start
Failed to start tftpd.service: Unit tftpd.service not found.

~# ls -la /var/lib/tftpboot
ls: Zugriff auf '/var/lib/tftpboot' nicht möglich: Datei oder Verzeichnis nicht gefunden
(not found)

Looks like I have to try another tftp-server.

Well atftpd worked a little bit better out-of-the-box, but has to be configured probably and manpages have to be read.

It looks like for Ubuntu 18.04 the choice is:

dpkg -l | grep tftp
ii  tftpd-hpa                              5.2+20150808-1ubuntu1.16.04.1              i386         HPA's 

~# ls -la /var/lib/tftpboot/
insgesamt 4
drwxr-xr-x  2 root nogroup    6 Nov 30 23:59 .
drwxr-xr-x 71 root root    4096 Nov 30 23:59 ..

root@notebook:~# service tftpd-hpa status
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa; bad; vendor preset: enabled)
   Active: active (running) since Fre 2018-11-30 23:59:31 CET; 7min ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/tftpd-hpa.service
           └─5549 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure

Nov 30 23:59:31 notebook systemd[1]: Starting LSB: HPA's tftp server...
Nov 30 23:59:31 notebook tftpd-hpa[5536]:  * Starting HPA's tftpd in.tftpd
Nov 30 23:59:31 notebook tftpd-hpa[5536]:    ...done.
Nov 30 23:59:31 notebook systemd[1]: Started LSB: HPA's tftp server.

~# netstat -a | grep tftp
udp        0      0 *:tftp                  *:*                                
udp6       0      0 [::]:tftp               [::]:*  
tftp server

Looks not so bad for me, but I have to read more docs.

Well atftpd worked a little bit better out-of-the-box, but has to be configured probably and manpages have to be read.

It looks ways better now. The default configuration should be sufficient for your needs.

Next copy your image file to "/var/lib/tftpboot". Then install a TFTP client on the same machine (sudo apt-get install tftp) and try to fetch the file from your server with:
tftp localhost get ArcherC7v5_tp_recovery.bin

In case this works without problems try to access the file from a different notebook. As soon as this works as well you can try to flash your router. When it fails from a different client you need to add a firewall rule or disable the firewall temporary.

Thank you again, accelerate! But now I have to go on slowly.

First it looks like, there is no firmware for Germany to download from the official TP-link webpage. Compare https://www.tp-link.com/de/download/Archer-C7.html , but there is https://www.tp-link.com/en/download/Archer-C7_V5.html#Firmware

Can I save the original TP-Link firmware myself?

A 2nd problem is, that the C7 shows 72Mbps with my phone, while a GL-B1300 shows 86Mbps, but the C7 has better dBm-values (-5 - 10dBm difference) and at the end C7 and B1300 have very bad dBm-values (about -80dBm) with 5GHz. So I have to decide which router I use at this place and maybe I use the C7 at another place.

First it looks like, there is no firmware for Germany to download from the official TP-link webpage

That's true, but when you login at your archer c7 and look at the installed firmware version/build/release numbers you should see it's the same as provided at https://www.tp-link.com/en/download/Archer-C7_V5.html#Firmware(c7v5_us-eu-ca-jp-tw-up-ver1-0-4-P1[20180425-rel72768].bin). At least when the latest version was already preinstalled.

Can I save the original TP-Link firmware myself?

I never tried that.

A 2nd problem is, that the C7 shows 72Mbps with my phone, while a GL-B1300 shows 86Mbps, but the C7 has better dBm-values (-5 - 10dBm difference)

Did you do a speed test or is this just what your device is telling you?

at the end C7 and B1300 have very bad dBm-values (about -80dBm) with 5GHz

I can tell you only about my experience and 5GHz can't cope as good with range and walls as the 2,4GHz frequency. Even with -80dBm at 5GHz you should get more speed than with 2,4GHz.

Isee 1.0.4 Build 20180425 rel.72768(4555)

My Android phone tells me the speed.

With my old TP-Link I noted, that speed is not so important as a stable signal. So IMHO this means I should prefer dBm values.

Anyway I will go on now with my Linux-tests so I can flash with tftp. I don't have a 2nd notebook. But I hope I can do a test with a mobile phone and a ftp-client or Solid Explorer and a ftp-connection.

Isee 1.0.4 Build 20180425 rel.72768(4555)

So for me it looks like you have the same firmware installed as available on: https://www.tp-link.com/en/download/Archer-C7_V5.html#Firmware.

My Android phone tells me the speed.

I usually prefer practical speed measurement.

With my old TP-Link I noted, that speed is not so important as a stable signal. So IMHO this means I should prefer dBm values.

Well that's something you have to decide for yourself. As soon as you have a working tftp server the rest is easy :slight_smile:

netstat -lunp|grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 957/in.tftpd
udp6 0 0 :::69 :::* 957/in.tftpd

I do not understand this, because I get a prompt, although the IP is not valid. I thought I use a fixed IP, but actually DHCP was configured.
$ tftp 192.168.178.123
tftp> get ArcherC7v5_tp_recovery.bin
Transfer timed out.

But then with the correct IP:
~/test$ tftp 192.168.178.21
tftp> get ArcherC7v5_tp_recovery.bin
tftp> quit

The file was downloaded locally and the md5sum was correct.

So the next step is to check with a mobile phone (Androdi 8.1) and here I have a syntax problem. I tried 1 command with -g too, didn't help.

termux

$ tftp 192.168.178.123
tftp> get ArcherC7v5_tp_recovery.bin
Transfer timed out.
But then with the correct IP:
~/test$ tftp 192.168.178.21
tftp> get ArcherC7v5_tp_recovery.bin
tftp> quit

I don't see what's wrong here. Your TFTP client will try to connect to the ip you specified as soon as you try to fetch a file.

So the next step is to check with a mobile phone (Androdi 8.1) and here I have a syntax problem. I tried 1 command with -g too, didn't help.

Did you try "tftp -gr ArcherC7v5_tp_recovery.bin 192.168.178.2" already?

Looks like my problem was a weak / far away ap. I shortened the filename for the test to test.bin to be faster with the mobile phone.

From another linux pc:

~/test$ tftp 192.168.178.21
tftp> get test.bin
Received 4028679 bytes in 19.5 seconds

From the phone:

termux

But I am unsure if this confirms, that there is no firewall-problem. AFAIK there is no firewall enabled with Ubuntu by default and the notebook is a fresh setup, for testing only, not for productive use.

The notebook is in the same network via Wifi as all the other pcs, phones, etc.

When I flash I will change the network of the notebook and give the notebook a static IP 192.168.0.66, so again the ftp-transfer is within the local network.

I think everything works now and don't think there will be a firewall problem. You can try to flash your router now. Just try it and it should work really fine :slight_smile:

After reading so much, I think I should have get this a bigger attention, although it is for version 4.

https://openwrt.org/toh/tp-link/tp-link_archer_c20_v4#installation

On Linux:

  1. Download http://downloads.openwrt.org/releases/18.06.1/targets/ramips/mt76x8/openwrt-18.06.1-ramips-mt76x8-tplink_c20-v4-squashfs-tftp-recovery.bin.

  2. Configure a computer with static IP 192.168.0.66/24 and a TFTP server. On Debian or Ubuntu you can use either the tftpd-hpa or tftpd server packages.

  3. Rename the downloaded firmware file to tp_recovery.bin and place it in the tftp server's root directory. (If using tftpd-hpa this is /var/lib/tftpboot/ ; if tftpd , it is /srv/tftp/ .) You can test that the file is downloadable with tftp localhost and get tp_recovery.bin .

  4. Connect the computer to one of the router's Ethernet ports while the router is off. Press and keep pressed the router's reset button and power it up. After about 7-10 seconds release the reset button. The power LED will flicker rapidly for ~3 seconds, indicating download of the firmware file.

  5. The router will write the firmware to flash during ~40 more seconds of occasional power LED blinks, and then will reboot by itself, ready for use.

It recommends tftpd-hpa, which works best for me.

Please can you confirm the flashing process.

Press and keep pressed the router's reset button and power it up

I do not have a reset button, but a tiny hole, where I can put in a needle, maybe not so easy to press at the same time the power button. Can I release the power button immediately?

After about 7-10 seconds release the reset button

What happens if I press longer, for example 15 seconds? Do I need a clock?

Sorry, if my questions sound stupid. I am very respectful when flashing devices, had to much problems with phones.

Please can you confirm the flashing process.

Just follow the steps described here:
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=bf39d5594b3c8f9409e6d9408a1f370c9f18d0dd
and rename the file to: ArcherC7v5_tp_recovery.bin

I do not have a reset button, but a tiny hole, where I can put in a needle, maybe not so easy to press at the same time the power button. Can I release the power button immediately?

You will have to press the reset button with a needle and yes you immediately can release the power button.

What happens if I press longer, for example 15 seconds? Do I need a clock?

I don't think there will happen much. Just press it for about 15 seconds. Don't be afraid here, your router will start flashing the image file or just continue booting to the stock firmware.