Recovering soft bricked TP-Link EAP225 v3 WiFi AP

I built a custom image using the image builder for my TP-Link EAP 225 v3 WiFi access point but I ended up soft bricking the access point when I flashed the built image. I did manage to get into the failsafe mode but I can't figure out how to upload a new image on the access point to perform a sysupgrade.

I realized that I didn't include openssh-client, atftp, or the full featured netcat in the firmware. I did include openssh-sftp-server but executing /usr/lib/sftp-server doesn't really do anything in the failsafe mode. To make things worse, it looks like EAP 225 doesn't have a recovery mode.

Is there any way left to save this access point, preferably without resorting to me opening up the access point? If it helps, this was the command I used to build the image

make image PROFILE="tplink_eap225-v3" PACKAGES="acme acme-dnsapi htop msmtp openssh-server openssh-sftp-server luci-ssl luci-theme-openwrt-2020 -dnsmasq -dropbear -odhcp6c -odhcpd-ipv6only" DISABLED_SERVICES="acme firewall" FILES="files"

No wget or curl either? Pull in an official release image then fix your own image. Or host your own image on a local HTTP server.

I do have wget in the image that I built but there's no internet access while the access point is in failsafe mode. The access point doesn't really have a WAN port either, there's just a single port which is used to connect to the access point.

Maybe I didn't explain myself better, I can access the WiFi access point right now but only in failsafe mode. I can download official images or make new images on my desktop but I can't figure out a way to upload those images to the access point while the access point is in failsafe mode.

EDIT: nevermind, I didn't realize I could host a local HTTP server on my desktop and use wget to get the sysupgrade file on the access point. For posterity, all you need to do is to cd to the folder with the sysupgrade image you want and run python -m http.server 42000 and then run wget http://your.desktop.ip.address:42000/openwrt-sysupgrade.img inside your access point while being in /tmp. Interestingly, uclient-fetch fails to download the same image and says operation not permitted.

I still can't get a custom image to work on the access point and it still fails to boot but I guess I'll make another thread for that.

1 Like

Unfortunately, it looks like I soft bricked the access point again but this time, I can't even access the fail safe mode. When I try ssh into the access point in failsafe mode, I get

WARNING: Your password has expired.
You must change your password now and login again!
passwd: No such file or directory
Connection to 192.168.1.1 closed.

I searched and found this bug report on GitHub. I'm not sure if the fix made it into 21.02.2 or if this is something I messed up. The custom image was generated using this command

make image PROFILE="tplink_eap225-v3" PACKAGES="acme acme-dnsapi msmtp openssh-server openssh-sftp-server luci-ssl luci-theme-openwrt-2020 -dropbear -odhcp6c -odhcpd-ipv6only -dnsmasq" DISABLED_SERVICES="acme firewall" FILES="files"

and files/ contains

files/
└── root
    ├── .local
    │   └── bin
    │       └── acme_cron
    ├── .profile
    └── .shinit

I can't figure out the correct way to use FILES while building images. Whenever I flash an image built with FILES, the access point fails to boot normally.

Can I access the access point somehow and flash another sysupgrade? The EAP225 doesn't have a recovery mode and I can't access the failsafe mode right now.