Adding OpenWrt support for TL-WA1201 v2

First some general information

GPLd firmware dump TP-LINK
https://static.tp-link.com/resources/gpl/1201-gpl.tar.gz
this is a openwrt 12.04 fork

FCC information
https://fccid.io/TE7WA1201V2

Chips

  • SoC: QCA9563-AL3A
  • RAM: Zentel A3R12E40DBF 512 MiB
  • Wireless 2.4GHz: QCA9563-AL3A integrated (3x3)
  • Wireless 5GHz: QCA9886
  • Ethernet 1Gbs: AR8033-AL1A

Ethernet seems to be connected over SGMII with the QCA9563. MDIO is connected to GPIO (MDC=GPIO 3), (MDIO=GPIO 4). Need mdio-gpio driver for this?

The PCB has some similarities with the archer a6 v2. Uart/serial is exposed on three testpoints. I soldered a few wires on them and got this bootlog

/proc/mtd

root@TL-WA1201v2:/# cat /proc/mtd                                                                                        
dev:    size   erasesize  name                                                                                           
mtd0: 00030000 00010000 "u-boot"                                                                                         
mtd1: 00120000 00010000 "uImage"                                                                                         
mtd2: 00e90000 00010000 "rootfs"                                                                                         
mtd3: 00010000 00010000 "ART"                                                                                            
mtd4: 00010000 00001000 "spi0.1"

u-boot printenv

  Environment size: 673/65532 bytes
  ath> printenv
  bootargs=console=ttyS0,115200 board=AP152 rootfstype=squashfs init=/etc/preinit mtdparts=spi0.0:192k(u-boot),1152k(uImage),14912k(rootfs),64k@0xff0000(ART) 
  bootcmd=bootm 0x9f030000
  bootdelay=1
  baudrate=115200
  ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee
  ipaddr=192.168.0.2
  serverip=192.168.0.10
  dir=
  lu=tftp 0x80060000 ${dir}tuboot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize
  lf=tftp 0x80060000 ${dir}ap152${bc}-jffs2&&erase 0x9f010000 +$filesize&&cp.b $fileaddr 0x9f010000 $filesize
  lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&&erase 0x9f300000 +$filesize&&cp.b $fileaddr 0x9f300000 $filesize
  stdin=serial
  stdout=serial
  stderr=serial
  ethact=eth0
  
  Environment size: 673/65532 bytes

I patched openwrt-21.02 rc1 adding support for the device. I flashed it with serial + tftp so I don't know if another way works.
I flashed it like this

# setenv serverip ...
# setenv ipaddr ...
tftp 0x80060000 openwrt-squashfs.bin
# remember output of size in hex, let's call it SIZE
# note that 0x9f000000 is that spi flash base address and
# at offset 0x0 there is u-boot and at 0x30000 there is the linux image
erase 0x9f030000 +SIZE
cp.b 0x80060000 0x9f030000 0xSIZE
bootm 0x9f030000
  • 2.4 ghz works
  • 5 ghz works
  • ethernet works

I didn't test performance/stability/5ghz yet

You can find the fork here https://github.com/bluewww/openwrt

2 Likes

I have been testing this firmware on two tl-wa1201v2 for a few days now.

On github I made a precompiled version available (21.0.2 rc1 + my patch)

To flash it upload the factory image through the OEM firmware upload http interface. Make sure you don't do this over wifi.

3 Likes

Tried installing the firmware and everything worked and "suddenly" radio0 (5GHz) didn't work anymore and said "Device is not active".

Took me a bit to figure out that setting it to channel 100 isn't working with this chip. In fact setting it to anything above channel 48 will result in "Device is not active". Meanwhile there is no error in the logs. Just says that the devices "entered disabled state" instead of "entered forwarding state".

So just like in the original firmware the chip only supports channels 36, 40, 44 and 48.

Now to testing it for a few days.

which version did you test?

I flashed it via the OEM interface with openwrt-ath79-generic-tplink_tl-wa1201-v2-squashfs-factory.bin from your advertised link above.

My smartphone does connect to the 5GHz and that seems to work.

But no dice with 2.4GHz. So far neither my smartphone nor my 8 years old laptop (2.4GHz only) can connect or even see the 2.4GHz networks I configured.

Edit: Okay so apparently the 2.4GHz antennas don't like sitting literally next to a table leg made out of a metal tube. Moved the AP ever so slightly and now the 2.4GHz networks show up and work.

Bought one of these recently because of the stock firmware's multi-SID VLAN support. Wasn't thinking about OpenWrt which I'm running on my core + gateway routers.
Is there another tag imminent brought up to 21.02 release? Or do I have to get stuck in sooner rather than later and learn how to build OpenWrt myself using your patches?
Thanks for the sterling work either way, @bluewww. :slight_smile:

Meant to ask. Does your rc1 binary include the Luci interface? If so, I might give it a try as is. Thanks.

Update: Oh I see - it appears that your patc is already in. Thanks.

For anyone else who finds this thread, I've built the binaries from the 21.02 tag and flashed my WA1201. All working swimmingly. I've currently got 4 SSIDs duplicated on both phy radios using 802.11q VLAN trunking to my main (also OpenWrt) router which has the same SSIDs. I've configured 802.11r rapid handoff (PSK mode) and my client devices are jumping from one to the other seamlessly.

My current binary has a few things built-in that shouldn't be as I was still learning the ropes with the Kconfig. I'll post a more sensible one somewhere soonish.

1 Like

the patch is in master but not in v21.02. What version did you build?

Hello, Maybe this firmware will work for Comfast CF-EW75. the chips that this article has posted are the same as my AP specs. will this one work? can someone confirm if it can be installed using the web interface of the CF-EW75?

-Thanks!

To prevent any confusion: The patch for supporting this device is in the openwrt master branch but not in the v21.02 release (It didn't make it). I'm personally running v21.02 plus the patch from master on my two tl-wa1021v2 since a few weeks now.

The firmware images I posted in the links above are outdated. I can make some builds upon request.

Please could you post some updated builds with patches. I've been trying to return two of these devices to amazon lately with no luck as they just keep dropping connections when more than 30 devices go through them across the 4 SSID's. I've tried every combo of settings and cant get more than a couple of days uptime before they reboot and drop everything. Would love to give them one last ditch attempt before they go in the bin.

does that happen with stock firmware or openwrt?

edit:
my devices have an uptime of about 25 days (openwrt) but I never had that many devices connecting to them.

1 Like

Try the release he posted from may. My 4 devices have been working with that firmware without problems for the last 81 days.

This happens with the stock firmware.
It's a known fault allegedly as the tplink community forums have a number of posts about similar issues and they have released two or three beta firmwares.
I've tried these also to no avail.

I was about to call it a day and start looking for new hardware but remembered I used openwrt a few years ago for different hardware and googled to see if there was a build for this model.

Will give the older build a try first but recent binarys would be excellent.

Indeed stock firmware crashes for me after roughly after one or two days of usage with less than four devices connected to it. That prompted me to do this OpenWRT port.

The only thing I know that is unstable on OpenWRT is WDS mode (my recommendation: just use mesh networking instead). The ath10k-ct firmware crashes in mysterious ways in that case.

Going to flash your build from May this evening and see how I get on.
Fingers crossed!

I guess that the "Bug" with "Device is not active" when setting the 5GHz radio to channel 100 stems from it taking a super long time to listen for weather radar activity before actually turning the device on for transmission.
Can't test this theory right now because all my devices are in use, but they should theoretically turn on eventually.

Complete NOOB w/ OpenWrt but not with networking. I'm trying to get a TL-WA1201 to access the corporate WiFi in "Client" mode (need wifi for system that only has ethernet, no ability to install a new adapter). Problem is we use WPA2-EAP and the AP only supports PSK out of the box. I've read a good bit of the docs and many posts on this site but now I have more questions than answers. Can someone here please provide a cookbook on how to acquire and load (or build if need be) a good binary of OpenWrt with the proper packages for this device, and how to configure it? TIA

Go to System->Software and check what version of "wpad" you have installed. It's likely going to be "wpad-basic-wolfssl" or "wpad-mini", which has the basic encryption algorithms most people need but not all of them. If you remove that and install "wpad" (some people refer to it as "wpad-full", but it's actually just called "wpad") instead, you should be able to select WPA2-EAP for the encryption of your wireless network in client mode.