Upgrade TP-Link PowerLine adapter firmware
This post covers the procedure of upgrading the firmware of TP-LINK TL-WPA4226KIT v4 PowerLine adapters.
The TP-LINK TL-WPA4226KIT v4 consists of two units:
- TL-PA4020P (2xRJ45, passthru unit)
- TL-WPA4220 v4 (2xRJ45, WiFi unit)
I got frequent drops of connection, averaging from 2 to 5 times a day. Like 2 minutes operation interruptions. The rest network worked fine and I concluded that the problem was in the connection between those two units.
Upgrading the firmware from TP-Link's website didn't fix the problem.
It seems that TP-Link's updates hadn't upgraded the units' firmware since 27/10/2017 (TL-WPA4220) and 28/04/2016 (TL-PA4020P).
I bumped into this post in TP-Link's forum which links to files that include newer firmware/drivers than the one in TP-Link’s official updates.
Keep in mind that this new firmware is not flashable with the conventional tpPLC utility.
Upgrade procedure
Make sure you have directly connected your PC/laptop to the receiver unit (TL-WPA4220 in my case) with an ethernet cable.
New firmware file
The first step is to download the new firmware file (FW-QCA7420-1.5.0.0026-02-CS-20200114.nvm
) from the post I linked above.
Install open-plc-utils
open-plc-utils GitHub repository can be found here.
git clone https://github.com/qca/open-plc-utils
cd open-plc-utils
make
You will probably get errors regarding missing libraries.
You need to work it out using the package manager of your linux distribution and rerun make
.
Once you have successfully built the open-plc-utils program, it is time to install it.
sudo make install
Optionally, install manpages:
sudo make manuals
Collect the .pib files that will be used in flashing
Firstly, find out the interface name of your network card (NIC).
Mine was enp3s0
. You can find yours with:
ip addr
Then, we need to identify the PL units along with some info.
The sudo plcstat -t -i enp3s0
command provides what we need:
P/L NET TEI ------ MAC ------ ------ BDA ------ TX RX CHIPSET FIRMWARE
LOC STA 002 D8:47:32:C8:73:39 D4:BE:D9:D9:BB:4A n/a n/a QCA7420 MAC-QCA7420-1.4.0.20-00-20171027-CS
REM CCO 001 98:48:27:63:5C:F9 8C:68:C8:F4:BE:27 128 094 QCA7420 MAC-QCA7420-1.3.1.2141-00-20160428-CS
D8:47:32:C8:73:39
is the address of my WPA4220 with firmware version MAC-QCA7420-1.4.0.20-00-20171027-CS
98:48:27:63:5C:F9
is the address of my PA4020P with firmware version MAC-QCA7420-1.3.1.2141-00-20160428-CS
To identify which address belongs to which unit, you can match it with the address written on the sticker on each unit.
Getting the .pib files
For PA4020P:
sudo plctool -i enp3s0 -p TL-PA4020P.pib 98:48:27:63:5C:F9
For WPA4220:
sudo plctool -i enp3s0 -p TL-WPA4220.pib D8:47:32:C8:73:39
We've got two .pib files:
- TL-WPA4220.pib
- TL-PA4020P.pib
Flashing the new firmware
In this step we will use the .nvm file from earlier and the two .pib files we acquired in the previous step.
For TL-PA4020P
sudo plctool -i enp3s0 -P TL-PA4020P.pib -N FW-QCA7420-1.5.0.0026-02-CS-20200114.nvm -R 98:48:27:63:5C:F9
Which outputs a long wall of text ending with:
.
.
MODULE_SUB_ID 0x0000
MODULE_LENGTH 1132
MODULE_OFFSET 0x046C0000
enp3s0 98:48:27:63:5C:F9 Close Session
enp3s0 98:48:27:63:5C:F9 Reset Device
enp3s0 98:48:27:63:5C:F9 Resetting ...
Congratulations! We have successfully flashed the new firmware on our TL-PA4020P!
For TL-WPA4220
sudo plctool -i enp3s0 -P TL-WPA4220.pib -N FW-QCA7420-1.5.0.0026-02-CS-20200114.nvm -R D8:47:32:C8:73:39
.
.
.
MODULE_SUB_ID 0x0000
MODULE_LENGTH 1132
MODULE_OFFSET 0x046C0000
enp3s0 D8:47:32:C8:73:39 Close Session
enp3s0 D8:47:32:C8:73:39 Reset Device
enp3s0 D8:47:32:C8:73:39 Resetting ...
Congratulations! We have successfully flashed the new firmware on our TL-WPA4220!
Checking the firmware version
sudo plcstat -t -i enp3s0
P/L NET TEI ------ MAC ------ ------ BDA ------ TX RX CHIPSET FIRMWARE
LOC STA 006 D8:47:32:C8:73:39 D4:BE:D9:D9:BB:4A n/a n/a QCA7420 MAC-QCA7420-1.5.0.26-02-20200114-CS
REM CCO 004 98:48:27:63:5C:F9 7C:64:56:8A:82:5A 169 107 QCA7420 MAC-QCA7420-1.5.0.26-02-20200114-CS
Notice the new firmware version for both units:
MAC-QCA7420-1.5.0.26-02-20200114-CS
Conclusion
Since the upgrade, no connection interruptions have occurred.
TP-Link needs to provide updates that include newer firmware/drivers for their products.