OpenWrt doesn't recognise the upgraded flash but it does on some devices

so i have the TP-LINK TL-MR3220. It's a decent device for me. It had 4MB ROM only.

But, what i did was (before flashing openwrt) is that i desoldered the original 4MB spi flash, dumped it's content, then using hex software i separated the partitions (ART, bootloader) and recreated an 8MB file but this time with the openwrt image at the same place of the original firmware.

Then i resoldered the 8MB spi flash and the device worked flawlessly. And even recognised the remaining 4MB free space

BUT, i recently bought a HAME MPR-A1 ( wanted to put an openvpn client and siproxid to connect to my server ). I did the exact same, desoldered the spi, dumped it's contents and managed to preserve the layout ( MAC address and WPS pin ) and the exact same as my other router. Then resoldered the new 8MB flash.

Worked flawlessly. But doesn't recognise the full 8MB flash at all...

The question is, why did it work there but not here ? ( please don't mention that i have to build the image myself. I will do that by the way. It's just why did it work automatically here but not there ?

From my understanding, ar71xx could auto detect and resize partitions, but ath79 can't. So if you use an ath79 image for your device you probably won't get the full flash either?
Your new device is not ar71xx either, and I think it was the only target that had this capability.

In those cases, a customised DTS and compiling your own is the right solution.

2 Likes

Ooooo okayyy ! Never knew any of that.

And yes i was using the ar71xx target and didn't upgrade lol ! That's why i never needed to build my own image after the SPI flash upgrade. What are the odds..!

My new device is ramips rt305x

Wait ! I've just tried it (someone already've done it and uploaded it ) and it recognised the whole 8mb flash BUT when i try to install any package it collects the following error

Kernel (= 3.18.23-1-b26e7e3a6fef....)

Don't tell me that i'll have to compile every single package i want because that kernel doesn't match the repo's kernel ?

Is there any way to avoid that problem ? Can i rebuild my own image with the exact same kernel on the repo ?

You can't avoid that. The best is to compile your own.