Failed to install 19.07.0 on modded TL-WR703N

I tried to install OpenWrt 19.07.0 on TL-WR703N. After flashing, the LED blinks very quickly and from the looks of it, it enters the failsafe mode. I tried to connect it via ethernet, but I cannot find it at

My WR703N has been modded with 16/64, I don't know whether this causes the problem.

Has the mod worked? Other than that in the device page it shows 17.01.7 as current supported release.

The mod works. I have tried both 17.01.7 (official) and 18.06.5 (self-built from source code).
The device page confuses me as well as there is image for it in the official release.

At least for the ath79 target, you need to adapt the DTS for your changes - ar71xx is doing a little more autodetection in terms of RAM and flash (depending on the OEM bootloader's capabilities).

1 Like

I have tried to modify ar9331_tplink_tl-wr703n_tl-mr10u.dtsi and change the partition according to 17.01 dmesg output, it still fails (the LED blinks very quickly just like before).
Is there anything else should I modify?

There's likely valuable clues on the serial port.

Try to build a second time and it works. Maybe I did something wrong on the first run.

A few days ago I did the 64MB RAM mod, and since the router is still functional after the operation I'd like to continue with the flash upgrade. The precondition for that is having a custom firmware, but I doubt the ones I managed to build on branch 'openwrt-19.07' are fine:

-rw-r--r-- 1 gep gep 3342340 jan   25 15:05 bin/targets/ar71xx/tiny/openwrt-ar71xx-tiny-tl-wr703n-v1-squashfs-sysupgrade.bin
-rw-r--r-- 1 gep gep 3343130 jan   25 12:47 bin/targets/ath79/tiny/openwrt-ath79-tiny-tplink_tl-wr703n-squashfs-sysupgrade.bin

The first problem is that it is smaller than expected, is bigger (3520.0 KB).

My other problem is that the size of the built images didn't really grow after adding stuff to configuration with make menuconfig.

All I found on this branch regarding the 4MB -> 16MB mod for WR703N was this, seems like some proper single point of responsibility to me:

diff --git a/target/linux/ar71xx/image/ b/target/linux/ar71xx/image/
index 9612694469..393dfd297f 100644
--- a/target/linux/ar71xx/image/
+++ b/target/linux/ar71xx/image/
@@ -344,7 +344,7 @@ endef
 TARGET_DEVICES += tl-wr1041n-v2
 define Device/tl-wr703n-v1
-  $(Device/tplink-4mlzma)
+  $(Device/tplink-16mlzma)
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
diff --git a/target/linux/ath79/image/ b/target/linux/ath79/image/
index 087a74fdf4..17fd2598ec 100644
--- a/target/linux/ath79/image/
+++ b/target/linux/ath79/image/
@@ -60,7 +60,7 @@ endef
 TARGET_DEVICES += tplink_tl-wa901nd-v2
 define Device/tplink_tl-wr703n
-  $(Device/tplink-4mlzma)
+  $(Device/tplink-16mlzma)
   ATH_SOC := ar9331
   DEVICE_PACKAGES := kmod-usb-chipidea2

In the ath79 .mk file

  DEVICE_PACKAGES := kmod-usb-chipidea2

is suspicious too.

Any thoughts or advices what could have gone wrong?
Possibly @Icarusradio could share its config.seed and git diff?

Thanks in advance.

Asked for help too quickly, as usually.
For the ath79 I've just overlooked the answer on tweaking DTS.
For ar71xx I have no answers yet, but since I did a distclean I'm only some aeons away from a success/failure update here.

1 Like

Another place to -maybe, depending on your particular router and its partitioning type- look for would be the partitioning definitions in tools/firmware-utils/src/tplink-safeloader.c, but given that ar71xx is deprecated, ath79 is all you need.

An additional distclean and tweaking the DTS actually did the trick for ath79, no more dependencies seem to have been left:

diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi b/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi
index ffd3d71a62..91200ded72 100644
--- a/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi
+++ b/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi
@@ -68,12 +68,12 @@
                        firmware: partition@20000 {
                                compatible = "tplink,firmware";
-                               reg = <0x20000 0x3d0000>;
+                               reg = <0x20000 0xfd0000>;
                                label = "firmware";
                        art: partition@3f0000 {
-                               reg = <0x3f0000 0x10000>;
+                               reg = <0xff0000 0x10000>;
                                label = "art";

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.