Support for TP-Link RE450 v1/v2 for 22.03 releases (Change of partition layout)

Here they are:
https://anonfiles.com/b8vdwaZfya/Openwrt_22_03_test_re450v1_zip
https://anonfiles.com/A9vcweZdye/re450_v1_22_03_test_final_zip

All the best. Samoth

Thanks! Much appreciated! Just gonna make mine a batman mesh node.
I have the V2. Anything I should be cautious about?

Edit: do you have the source patches?

Here they are:

https://anonfiles.com/IaGfw1Zay7/Openwrt_22_03_RE450v1_tar_bz2

Be careful and following exactly the steps as written before otherwise you end up with a bricked device !!!

Would be really good if a developer could integrate that to the generic software :wink:

All the best. Samoth

Thanks. Yeah, I'll take a backup of the whole chip :slight_smile:

Everybody can create pull requests, just do the changes and submit it as a PR. It is very unlikely that someone else, especially without a device, will pick up your changeset.

That said: Usually, partition layouts are not changed as people can't easily flash back to stock. Moving it to the "tiny" target as already mentioned in this thread seems the more viable option.

3 Likes

That's useful. But keep in mind that you cannot write it easily back because you must first unsolder the chip !!!

Best regards

Sorry but I am not a developer, coder and I have no knowledge how to create a pull request :frowning:
Best regards

Then that would be a good opportunity to learn it :wink:

i would support this as well. better to have a tiny release than no release at all

Just an update to this. It seems I just about can live with the original layout without challenging Murphy's Law and modify partitons.

First of all, you need to use the imagebuilder and modify the .config file and set CONFIG_TARGET_SQUASHFS_BLOCK_SIZE from 256 to 1024. That will give you some extra space. It's supposedly using a little more ram this way but I didn't check how much. Besides, that's the lesser of 2 evils anyways. And the biggie: disable ca-bundle. I also disabled opkg, ppp and pppoe.
The first rule is that the sysupgrade file can be at most 5697kb, leaving 320 1k blocks which will be about 75% used after first boot.

My goal with these repeaters are mainly to use them as mesh nodes, but also be able to use them as repeaters since not everyone uses mesh.They can also work as travel routers but I think they are a bit too clunky for that. I also want them to support ipv6 - maybe with some of the ipv6 variants that I'll never use but you never know. All in all, I imagine them being like a swiss knife you have in your drawer for emergencies or whatnot.

I fooled around with 22.03.03 I can just about fit Luci, ipv6, luci-app-upnp, luci-app-firewall, luci-proto-relay.. and it's over 5697kb already, so that was a no go.

But with 21.02.5 I managed to cram in luci-app-ntpc luci-app-firewall mesh11sd wpad-wolfssl luci-proto-batman-adv batctl-default luci-app-upnp luci-proto-relay relayd odhcpd-ipv6only odhcp6c ds-lite 6rd 6in4 6to4 luci-proto-ipv6 luci-app-wireguard wireguard-tools.

I also added for good measure the following that doesn't really take up any space:
luci-app-commands luci-app-omcproxy luci-app-ledtrig-rssi kmod-ledtrig-activity kmod-ledtrig-gpio kmod-ledtrig-oneshot kmod-ledtrig-pattern kmod-ledtrig-transient luci-app-dynapoint luci-app-wol luci-app-wifischedule.

For a travel router you'd probably want luci-app-travelmate too, but that depends on curl so that's a no go. Lastly I added a trigger on the wps button for wifi on/off (a physical button is a must on a travel router), and the round wps light I made trigger on when the mesh is up since it already has indicators for 2.4 and 5G.

I found out the CT drivers/firmware in 21.02 (including the smallbuffers variant) don't support mesh/802.11s although they report that they do. Luckily the non-CT drivers/firmware did. Basically it now does what it needs to do and also supports fast roaming. It also has the basic functions to work fully as a normal router with ipv6 support. I'm quite happy with that.

2 Likes

So I noticed a while ago that Openwrt switched back to mbedtls and also added hostapd mbedtls variants. Just looking at the file sizes between libmbedtls/libwolfssl, I didn't think the difference would help much for 6MB devices since everything else tend to get bigger over time as well. But I'm happy to say that I fit a noticeable amount more into today's 23+ snapshot than 21.02.
So I guess the 6MB devices will just about make it till the next big version, but you might want to use the imagebuilder or even build from source to maximize the potential.

The reason for mbedtls instead of wolfssl is no primarily about size (although that is a welcome side-effect), but wolfssl being totally unfit for purpose within stable release management (security updates regularly breaking ABI).

I didn't imply that either..although what does it say in this commit? :saluting_face:

Since v2 v3 is the same hardware, can’t we just repartition v1 and v2 to the same layout as v3, then flash the image for v3?

v2 would be supported as-is, regarding not changing the layout from oem, while those who want can just use the image for v3?

Hi, new to the forum, but have been using OpenWRT for almost a decade.

I could not get my head around creating a Tiny Target and a Git pull. So opted to try using today's Image Builder snapshot and built a minimal image for the RE450 v1 that I am using as a dumb AP.

Im happy to report I was able to do the sysupgrade from the image that was compiled without Luci and a few other packages as hinted to by @theMan .

wget https://downloads.openwrt.org/snapshots/targets/ath79/generic/openwrt-imagebuilder-ath79-generic.Linux-x86_64.tar.xz
cd openwrt-imagebuilder-ath79-generic.Linux-x86_64/
tar -J -x -f openwrt-imagebuilder-ath79-generic.Linux-x86_64.tar.xz
make image PROFILE=tplink_re450-v1 PACKAGES="-ppp -ppp-mod-pppoe -opkg -ca-bundle -firewall4"

I can ssh into the AP my phone and tablet re-connected and all seems well.

BusyBox v1.36.0 (2023-04-07 09:26:26 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r22514-c8934099bf
 -----------------------------------------------------

I will miss Luci, but glad to have a working system running the latest image. :relieved:

You should try building from source. (a little more risky but at least the Re450V1 doesnt need to have resistors desoldered like v2 to access serial in case you mess up, alternatively just get a ch341a and make a backup)

Here's what I crammed into a sysupgrade file of 5697kb with 1024kb squashfs blocksize, from today's snapshot (nothing special or hardcore, just the usual make menuconfig):

ath10k-firmware-qca988x (instead of ath10k-firmware-qca988x-ct since I need mesh)
igmpproxy
kmod-ledtrig-activity
luci-app-commands
luci-app-dynapoint
luci-app-firewall
luci-app-nft-qos
luci-app-nlbwmon
luci-app-ntpc
luci-app-omcproxy
luci-app-udpxy
luci-app-upnp
luci-app-watchcat
luci-app-wifischedule
luci-app-wol

luci-proto-batman-adv/wpad-mbedtls/batctl-default
luci-proto-ipv6//6in4/6rd/6to4/ds-lite/odhcpd-ipv6only/odhcp6c
luci-proto-relay/luci-proto-wireguard
luci-theme-bootstrap/luci-theme-material

uhttpd/luci-mod-admin-full/rpcd-mod-rrdns/px5g-mbedtls/libustream-mbedtls (luci with ssl support without selecting the luci-ssl metapackage coz that selects ppp/mpppoe)

Included but not really needed, could easily be removed if needed:
luci-app-opkg/opkg
kmod-nls-cp437
kmod-nls-iso8859-1
kmod-nls-utf8
kmod-ledtrig-oneshot
kmod-ledtrig-pattern
kmod-ledtrig-transient
luci-app-ledtrig-rssi
luci-app-ledtrig-switch

1 Like

Hi all,

regarding the tp-link-re450 I suggest to do a HW-Mod.

Look at the PCB:

Next to the RJ45 ethernet you go 3 shielded RJ45 connector widths to the right.

There is nor flash with 8 pin, 64Mbit for 3.3V called
W25Q64JV
made by winbond.
https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&partNo=W25Q64JV
https://media.digikey.com/pdf/Data%20Sheets/Winbond%20PDFs/W25Q64JV_Rev_C.pdf

The biggest pin compatible device by winbond to support the small so8 package has 128Mbit or 16MB.
https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&partNo=W25Q128JV

So I suggest to compile a proper u-boot for the RE-450 which could also set the clocks a bit quicker for the CPU depending on some defines in the code.
Also the flash layout should be modified in order to save space.

So one would need to get the mac addresses of the device and patch it to the uboot.
I think we could write a mac patcher tool so one starts with an experimental mac and
can use a command line tool to write the MAC addresses at a certain (known) offset in the
uboot image and correct the CRC or something like that in order to make the new values valid.

The art section would contain some wifi stuff by the manufacturer. We should take our RE450 and
download the ART section and compare it. I guess the content is the same, but if there are MAC addresses they will be different

This would allow us to use the routers with a decent firmware image for the next years. It is just a bit soldering but not that difficult.

As the hardware of all versions is the same (V1 has more RAM but this should not be a big issue) we would be able to use the same firmware image for the hacked 16MB flash version for all RE450

Anybody wants to join the effort?

Why this complicated mod with soldering. The solution is already there see the SW mods and description above.

Best regards.

If anything. I think the easiest way would to flash the v3 image on a v2, youd get 8MB instead of being limited to 6MB. You’d have to backup and restore some of the partitions manually tho.(and crop at least 1 partition)

BUT you can’t just flash a v3 image onto a v2 as a sysupgrade. I tried and now it’s in a boot loop. I took backups of the partitions and also have a spare v2 so I’ll be fine though :grinning:

8MB should be fine for 23.05 and probably the next stable in 2024. As I wrote earlier 5.7MB in the V2 is just about enough for the basic functions, ipv6 and mesh running what is now going to be OpenWrt 23.05, but you need to build from source.

The hardware and the partitions layout is completely different for the RE450 V1, V2 and V3. Therefore it is not possible.

Now you have to desolder the chip for proper reflash with e.g. CH341 for the bricked V2.

Good luck.

Best regards