EAP615-WALL: installation fails with "Failed to check for new update"

Just received a new TP-Link EAP615-WALL and am following the instructions on the wiki page to install openwrt via the web interface (after successfully sshing in to run cliclientd stopcs).

Installation fails, saying "Failed to check for new update".

The status page tells me:
Firmware version: 1.1.7 Build 20230602 Rel. 51631(5553)
Hardware version: 1.0

EDIT: same error if I try to install TP-Link earlier fw versions: 1.1.6 and 1.0.1.

Can anyone help with this? I see others have succeeded with this device. Thanks!

Well, in the end I had to do some soldering and follow the (rather brief) instructions to install via serial, which worked.
Don't know what's going on with the OEM firmware, but my version was newer than any downloads listed on the TP-Link site. Anyway, guess they've added new checks or something, so don't go expecting the straightforward installation documented on the wiki page.

Hi, I received two devices last week and managed to install OpenWrt the usual way via web interface. The OEM firmware version installed was:

1.1.3 Build 20220921 Rel. 73949(4555)

Now I don't know how long the devices were stored at the vendor I got them from, but I'll keep checking future orders.

Nine months older! Might need your soldering iron ready for those future orders though.

The fact you were able to install the present OpenWrt images suggests TP-Link implemented a version check. Those checks are worked around in the TP-Link safeloader code, part of firmware-utils:

Specifically, I think .soft_ver might need to get set, to something higher than 1.1.7. OpenWrt uses 0.0.0 by default.

Normally, trying the OpenWrt installation from the OEM web UI would throw a more helpful error message on the serial console, so it would be helpful if you could revert back to OEM firmware to try and install OpenWrt once more. That error might then suggest what minimum version TP-Link expects on newer firmware.

I also got the EAP615 with the 1.1.7 FW. I am still on original FW and would be able to connect the device via serial. Can you point me directions how I can obtain the logs necessary to get more info about the firmware version that is expected?

You can enable SSH in the TP-Link web UI. Then SSH in, try installing OpenWrt from the web UI and the error should print AFAIK.

Unfortunately, nothing happens when doing so. I only get a busybox instance that does not give any logs or other outputs when I try to install OpenWRT from the web UI.
Are there other options to obtain error logs?

Edit: Wouldn't it suffice to bump the soft_ver to something like 1.1.8 for the update to be accepted? I have no experience in building OpenWRT firmware with patched firmware-utils. If someone would give me directions, I would be happy to try it instead of soldering...

Edit 2: After some research, I found a hacky solution, that lets me install OpenWRT without soldering. This worked by using the same trick @mrm used on the TP-Link EAP225 [here]. You basically directly edit the OpenWRT Factory Binary with a hex editor. I changed the string

00 00 00 10 00 00 00 FF 00 00 00 20 23 10 09 00 00 5B C9 00 00 00 01

to

00 00 00 10 00 00 00 FF 01 01 09 20 23 10 09 00 00 5B C9 00 00 00 02.

That changes the alleged version of the image to 1.1.9 and bumps the compat version to 2. The TP-Link installed the update and is now running OpenWRT! :slight_smile:

3 Likes

might want to make the link slightly bigger, easier to spot in your post ...

1 Like

I'll prep a PR for firmware-utils, but it will need testing. Could you revert back to factory firmware once I have that PR ready?

1 Like

I have a second unit of the EAP615, I can wait with installing OpenWRT on it until the PR is ready.

1 Like

Great, much appreciated.

Can you compile OpenWrt yourself to include the firmware-utils patch? If so, would you mind testing first if compat_level is all that we need to bump? If not, there's a second patch below that does bump the compat_level and sets the soft_ver to 2.0.0.

Either of those patches needs to go into the tools/firmware-utils/patches dir in your buildroot, sth like 200-eap615-test.patch e.g.

Patch #1

diff --git a/src/tplink-safeloader.c b/src/tplink-safeloader.c
index b8a3e06..0284f45 100644
--- a/src/tplink-safeloader.c
+++ b/src/tplink-safeloader.c
@@ -2159,7 +2159,7 @@ static struct device_info boards[] = {
 	{
 		.id = "EAP615-WALL-V1",
 		.soft_ver = SOFT_VER_DEFAULT,
-		.soft_ver_compat_level = 1,
+		.soft_ver_compat_level = 2,
 		.support_list =
 			"SupportList:\r\n"
 			"EAP615-Wall(TP-Link|UN|AX1800-D):1.0\r\n"

Patch #2


diff --git a/src/tplink-safeloader.c b/src/tplink-safeloader.c
index b8a3e06..04d4cd7 100644
--- a/src/tplink-safeloader.c
+++ b/src/tplink-safeloader.c
@@ -2158,8 +2158,8 @@ static struct device_info boards[] = {
        /** Firmware layout for the EAP615-Wall v1 */
        {
                .id = "EAP615-WALL-V1",
-               .soft_ver = SOFT_VER_DEFAULT,
-               .soft_ver_compat_level = 1,
+               .soft_ver = SOFT_VER_TEXT("soft_ver:2.0.0\n")
+               .soft_ver_compat_level = 2,
                .support_list =
                        "SupportList:\r\n"
                        "EAP615-Wall(TP-Link|UN|AX1800-D):1.0\r\n"
1 Like

I will try the build tomorrow with the respective patches and report back here.

Edit: @Borromini I successfully built the OpenWRT firmware with the first patch and I am happy to confirm that the device accepts the firmware now. Thus, only compat_level needs to be adjusted in order for it to work.

1 Like

Legend, thanks for this!

I had exactly the same scenario and confirm that the "hacky" solution of editing the binary works perfectly (I used the Notepad++ extension to edit the 23.05.0 OpenWRT Factory image https://downloads.openwrt.org/releases/23.05.0/targets/ramips/mt7621/openwrt-23.05.0-ramips-mt7621-tplink_eap615-wall-v1-squashfs-sysupgrade.bin).

Thanks again,
Geoff

Sorry, I didn't see that edit despite being highlighted somehow. I will send in a patch for firmware-utils. Thanks for testing.

Would you mind PM'ing me your email address (and real name if you don't mind) so I can add your Tested-by to the patch?

Hi, I tried to downgrade to official 1.1.6 from 1.1.7 using recovery method and now it is in a boot loop. I can still install firmware using recovery, but it will only accept official images. The problem is that 1.1.7 stock fw is still not available for download. Do you think there is any way to unbrick this device without serial access?
I have more of these if cloning is an option.

A master image should work, that has an updated firmware-utils. The commit allowing OpenWrt to install from newer stock firmwares hasn't been backported to 23.05 yet.

I flashed the current beta version without any problem and editing the binary as described above still works.

1 Like

I edited the wiki page, because IMHO a SNAPSHOT, then downgrade install is much much easier than a tftp-install: download snapshot/factory - flash firmware - scp 23.05.02 192.168.1.1:/tmp/ - ssh root@192.168.1.1 sysupgrade -v -n /tmp/23.05.02 - and you're done.

23.05 has snapshots as well, so please be clear about what you did. Did you install a main (master) snapshot?

A 23.05 snapshot should suffice, the commit was backported to 23.05. Besides that, the main tree can break, and the images come without web UI.

If you used main, was it an image with a 6.1 kernel?