Support for TP-Link EAP225 Outdoor v3

Hey folks!
First, I have almost no experience in openwrt device support, but I'm willing to change that :smiley:

I recently had a EAP225-outdoor-v1 in my fingers and was very happy that it was already supported by openwrt. Now I have a lot of these routers, but unfortunately they are version 3.

The device seems to be very similar to the eap225 outdoor v1 . But the tplink webinterface rejects the openwrt image v1. (yes I ran cliclientd stopcs via ssh)

Now I'm unsure where to start. I already created a vendor firmware backup, as suggested in the wiki, and inspected some of the files. The output of /proc/mtd look's identical to the one of v1. Also tplink's config in /etc/EAP225-Outdoor_3.0 seems to be alost identical except of the ethernet chip which is in v3 RTL8211

I also had a look in the git commit for v1, but I have no clue what needs to be changed.

Is there something else I can try before soldering pads to get a serial connection?
If not, is it save to upload the v1-image via tftp once I have the serial connection or could that brick the device?

pastebin with kernel log

Happy for any suggestions!
yksflip

Assuming the rest of the hardware remains the same, you will probably have to adapt the IDs in tplink-safeloader (you can use that tool to check an OEM firmware download), but start your testing without touching the flash, using initramfs images only (to confirm compatibility of your DTS first).

A different ethernet phy would be reason enough to get console access before trying anything else. It may be as simple as ensuring the right driver is included in the image for the RTL8211, since the devicetree doesn't specify which phy is used exactly, but you'll have to find out yourself.

The 5GHz radio, LED GPIOs, and button GPIO all appear to be identical.

It looks like they also changed the phy on the EAP225v4, so maybe they're having issues sourcing the AR8033 that was used originally.

Edit:
The devicetree definitions and packages in OpenWrt were already (nearly) identical, and it looks like TP-Link has also switched to a unified firmware for the EAP225 v3/v3.20/v4 and EAP225-Outdoor v1/v3:

SupportList:
EAP225-Outdoor(TP-Link|UN|AC1200-D):1.0
EAP225(TP-Link|UN|AC1350-D):3.0
EAP225(TP-Link|UN|AC1350-D):3.20
EAP225-Outdoor(TP-Link|UN|AC1200-D):3.0
EAP225(TP-Link|UN|AC1350-D):4.0

thanks for your help so far! :slight_smile:
okay, so we got serial and could boot a initramfs image of the eap225-eap-v1.
so far so good, but indeed the ethernet phy did'nt come up
[1.512574] ag71xx 19000000.eth: Could not connect to PHY device. Deferring probe.

so we tried to build a firmware with CONFIG_REALTEK_PHY=y but it neither worked.
I already contacted the tplink gpl code center for the v3 sources in the hope to get informations about the phy-addr, which might be wrong now?

Wifi seems to work and also the MAC-Addresses are fine

Edit: just realised we did some hasty copypasta mistakes in our modified dts, will try again

Unfortunately there's still no success to report ...
this is our diff: https://git.chaotikum.org/freifunk-luebeck/openwrt/-/compare?from=master&to=add-tplink-eap225-outdoor-v3-support
did we do smth obvious wrong?

We already contacted tplinks gpl center and await their sources (the one , to see if we need to adapt anything else for the rtl8211...
Any ideas what we could try in the meantime?

CONFIG_REALTEK_PHY appears to be the right kernel symbol. On devicetree-based firmwares, the kernel will only search for phy-s at the addresses specified in the DT. For EAP2x5, this is 0x4 (see qca9563_tplink_eap2x5_1port.dtsi).

You could try to remove the phy from the EAP2x5 DTS, and include the mdio-tools package in your build. That way you should be able to probe the MDIO bus and at least find out at which address the phy is located.

following the thread... i want to install openwrt on my EAP225 outdoor V3 and maybe can use Wireless client mode (stock firmware doesn't do it)

exiting news! We made some progress and got the phy working :slight_smile: Setting the phy register to the correct value for the rtl8211s was the solution.
Also we adjusted the partition scheme to fit what we saw in the oem bootlog
see our wip changes here

and just after we found that out tp-link answered and published their sources :smiley:

@svanheule just for curiosity, how do you include the mdio-tools in the openwrt build? I couldn't find a package for it...

now I try to flash a squashfs image, but I wasn't successful yet

2 Likes

The package is listed under 'Utilities', when you do own builds. (type / to start a search in menuconfig). It's only been available in OpenWrt since last summer, so I guess it was never backported to 21.02.

1 Like

Hi, thanks for this! It's working great with my new EAP225 Outdoor.

I was able to build and flash a squashfs-factory image using the 21.02.2 config as a starting point. To get 802.11s working I had to include wpad-mesh-openssl and kmod-batman-adv in the image, but I've now got it connected to my mesh network.

To flash the device through the stock management interface, I had to replace the shipping firmware. The stock firmware on device I received was version 5.0.7, which I can't find on the TP-Link download page. Whenever I tried flashing with that version, it got to about 25% complete, then reloaded the interface. The device wasn't bricked, but it wouldn't flash. However, installing version 5.0.6 from that page and running the "cliclientd stopcs" command did work.

1 Like

thats great to hear!
I hope I can get the PR out in the next few weeks. I sucessfully build and flash a squashfs-sysupgrade with this and that changes, but there are couple more things I'd like to test and some things I'd like to understand first :smiley:
I'll try to flash the factory-image next, thanks for your instructions!

3 Likes

We have flashed the firmware compiled from yksflip and flashed the factory.bin after cliclientd stopcs, works great!

Greetings from Freifunk Stuttgart to Freifunk Lübeck :wink:

paddy

2 Likes

For @yksflip, @paddybk or andyduncan, do you have built factory.bin with yksflip's support for Outdoor V3, available for me to download?

I have attempted to build from yksflip's source but it might be beyond my capability at the moment.

Would be much appreciated so I can test it on my Outdoor V3.

I have send you a link to the image I built

Hello, would it be possible to get the factory.bin too?

I'm seeing this failure during build:

    WARNING: Image file /home/robertfoss/openwrt/build_dir/target-mips_24kc_musl/linux-ath79_generic/tmp/openwrt-ath79-generic-tplink_eap225-outdoor-v3-squashfs-sysupgrade.bin is too big:  > 14155776

Is the size listed in the commit correct?

(post deleted by author)

Hi, would it be possible to ask for a copy of this firmware as well? I also have the V3.