When installing some new TP-Link Archer C7v2 from the Citizens’ budget, we found out that the pre-installed firmware (3.15.1 Build 160616 Rel.44182n) does not allow unknown updates.
The upgrade is denied with the following meaningless error message:
Error code: 18005 Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name.
All this is because of FCC regulations, which prevent changing the transmission power-levels. Then TP-Link felt compelled not to allow any other firmware. Also a downgrade to a previous firmware version is no longer possible.
There are some instructions on the Internet which, for example, allow a downgrade of the software via a separate DD-WRT firmware, and then upgrade to the Freifunk or OpenWRT software.
What finally helped us is the Failsafe Mode, in conjunction with a TFTP server. This requires some preparations.
First, a TFTP server must be installed. On Linux, the tftpd-hpa package is just fine. For the Ubuntu which is used here, we changed the file /etc/default/tftpd-hpa to the extent that TFTP_OPTIONS now contains the following options: “–secure –verbose –verbose“. This shows (after a restart of the TFTP server) in the log which file was retrieved.
In addition, the computer must have the IP address 192.168.0.66. How this is done depends on the operating system.
The Ubuntu used here also runs “systemd” – and this shuts down the interface, if there is no physical connection on the cable (because for example the router just booted). This is crap because when the router is reset, the interface is down and then comes up again at some point when the router starts its interface. Unfortunately, the bootup and configuration of the interface takes some time, and this may overlap with getting the boot image from the TFTP server. The solution would be to discard systemd – but as a workaround it is enough to connect the own computer and the router to a switch, instead of connecting both directly with a cable.
When all this is done, the boot image (the Freifunk factory image) for the Archer C2 must be deployed to the TFTP server directory. This is “/var/lib/tftpboot” and the file name must be “ArcherC7v2_tp_recovery.bin“.
Checklist:
* TFTP server is running
* The IP address of the computer is 192.168.0.66
* Computer and router are connected to a switch
* Boot image with the correct name in the TFTP server directory
* Watch logfile: tail -n 50 -f /var/log/syslog
Now turn the router on and wait until the second LED from the left (looks like a star) flashes. Then press the reset button for approx. 15-20 seconds until the following message appears in the log:
Apr 9 21:59:54 freifunk in.tftpd [26987]: RRQ from 192.168.0.86 filename ArcherC7v2_tp_recovery.bin
The router has received the new image from the TFTP server and will install it now. This takes a few minutes. After that change the IP address of your own computer back to automatic assignment, unplug the network cable for a few seconds (so that systemd will recognize the change) and then proceed normally with the configuration of the Freifunk router according to your community’s instructions.