Should OpenWrt/LEDE support devices with only 4MB Flash?

@dgilmour77 wrote the following after discovering that he could not install LuCI on his older router.

I don't know the answer to this, but have some questions:

  • How old is a router that only has 4 MBytes flash? Can anyone say how prevalent are they?
  • How much work is it from a development standpoint to keep developing for these devices?
  • How much work is it to support people who have these old routers? What happens to people who flash LEDE, then try to install LuCI (or other packages) that won't fit? Are they screwed? Or just disappointed?
2 Likes

Both 4 MB flash and 32 MB RAM are going to become a hard problem. For the time being (and without expecting too much of the poor hardware) these issues can be circumvented, at least for individual builds, but the writing is on the wall nevertheless.

I have an additional question -- considering that OpenWrt/LEDE are sort of enthusiast (not a mass-market) product, what percentage of the 4Mb device owners are enthusiasts and would want to install LEDE, but would not be able to afford to spend $20-$60 on a supported model? I'd say it's negligibly small and diminishing every day as network devices get cheaper and cheaper.

I'm sure there's a fair number of people who (like me) don't like to throw away old but working devices and would want to squeeze everything they could from them. However, I do believe that:

  1. Supporting 4Mb devices is a hassle for both developers and other volunteers.
  2. If you have an older, but still working device and can't force yourself to trash it -- DONATE IT! I was able to find a charitable organization near me which gladly took two big boxes of old network equipment off my hands and put them to a good use.

Would be nice if there was an effort to make a final Legacy/Sunset build of LEDE for these devices, cramming all possible common packages into the build (USB support where needed, SQM support, Luci of course, some other things maybe). Sure, it wouldn't be as extensible, but it would still offer major advantages over what's available from vendors.

3 Likes

Just for thought, you can find a WNDR3400 for $12 on ebay, 8MB Flash, 64 MB RAM;

Additionally a "newer" router Tp-Link Archer C20i Wireless AC750 Dual Band; Costs $27 New on ebay, 64MB Ram, 4MB Flash but faster CPU compared to the netgear router

1 Like

I'll point out that even things like the zsun SD card reader has 64M ram and 16M
flash, and that's a tiny thing to consider running openwrt/lede on.

https://wiki.hackerspace.pl/projects:zsun-wifi-card-reader

David Lang

I think it's a moot point to speculate at this point. Let's first see if the final builds can fit LuCI in the squashfs (and I see no indication that they don't).

There are lots of things you cannot "aftermarket install" on a 4MB device, not least the USB modules to use extroot. Andit has been like that since OpenWrt CC.

4MB devices will always need their special treatment, but that's no reason to drop them completely if they can at least have basic operation.

1 Like

Read the thread @richb-hanover linked to, and you'll know the answer - you won't have to speculate yourself :wink:

Even if LuCI doesn't fit on 4 MB flash, there are still many other legitimate use cases. Personally, I don't even mind if LuCI is installed or not. I have some old TP-Links which are used exclusively as access points and so far they work great with just minimal configuration via SSH.

That said, I just built the new 17.01 branch with LuCI and sqm-scripts for all ar71xx based devices without any problems. The only optimizations applied were sstrip and an increased block size for squashfs4.

Maybe we could have builds without LuCI for 4 MB devices?

2 Likes

[quote="richb-hanover, post:1, topic:1018"]
I don't know the answer to this, but have some questions:

How old is a router that only has 4 MBytes flash? Can anyone say how prevalent are they?[/quote]
The TP-Link WR802N, which has at least some support, is still available. As I recall, when shopping for a travel device in 2015, that 4mb was prevalent in the market place and that the HooToo TM-02 (my first device) was one of the few that had 8/32. As I recall hardware improved in 2016 . About 1/3 of the devices in the ToH are 4mb devices. TP-Link seems to have the most devices in this class and also has CC 15.05 supported versions. D-Link is probably second and there is a variant of the NEXX 3020 with 4/32. I think that there is a very large population of a few specific TP-Links in the wild. The WR703 and MR3020 are two of the more popular versions. I would expect that the download statistics could help us understand the true popularity to the community, though we may want to look at this 60-90 days after the 17.01 release.

Not at all sure, but assume that build bots take up much of the effort. Again, looking at downloads for some extended period would shed more light on are we just spending CPU time building and disk space storing unused images.

Reading the posts it seems like those that can build an image with extroot can use the devices, but those casual (new) users that read a blog on "How to xyz" are probably are screwed, disappointed or both depending on the device and application. I agree that these devices can make a useful dumb AP and even a basic router for those than have minimal needs. Historically the Release image has included Luci, so for basic applications the previous should work. Unclear if there is still sufficient space for the USB components to config extroot (probably varies by device).

Trunk is a pain to configure on a single port device as the standard image by default has the Ethernet configured as LAN and no Luci. This requires more advanced skills and additional tools over a Release version with Luci and easy access to both the wireless config and package support in the long term. This post is also relevant. Installing LEDE on a router with a single WAN/LAN-port Models with a USB which makes them a bit more useful, but based on the posts noted here and on OpenWrt probably need a Release image with all the components to be able to run extroot compiled in the image (ie an enhanced default config).

Probably worth noting that the uneducated new user does not know that memory is a relevant specification or even to ask. The vendors usually do not include the specs for this (or the CPU in many cases), they just tout functionality. Image size then comes as an unexpected shock.

That said, I think it's time to sunset these devices, and probably plan a point a year or two after to follow with the 8mb devices. Barriers to entry are low ($), and I think that development time should be focused on supporting product released in the last 2 years. That said there is a level of effort to clean up all this stuff which may not be trivial as opposed to keep the status quo.

1 Like

I think that development time should be focused on supporting
product released in the last 2 years.

I was with you up until this point. It frequently takes a year or more before a
new router is fully supported, cutting it off after two years is not reasonable.
We shouldn't require people to replace equipment every year or so.

If equipment becomes hard to support for some reason, there may be justification
for cutting it off, but simply age of the equipment is no reason to remove
support for it.

not having enough memory to run things is a valid reason (although support
should not be removed, just stop distributing new builds for it in a release,
leave things in place for people building their own image)

This isn't proprietary software, this is FOSS software, we support older
equipment until it falls apart (and sometimes even past that point :slight_smile:

David Lang

5 Likes

Agreed.

What I'm thinking is that 4 MB support should be supported but users should be AWARE (possibly add a "black box label" on the wiki to note) that its unlikely that there will be a GUI due to flash size limitations. Additionally, We should have simple UCI command in the wiki to assist users with their setup similar to how OpenWRT's Wiki page (https://wiki.openwrt.org/doc/uci/wireless) has the 1 line command to enable wireless. (this should be added to LEDE's wiki)

A lot of cheap (and therefor common) routers have 4mb flash. (E.g. the tp-wr841n).
A lot of those are used for the "Freifunk" Community network.
See https://freifunk.net/wie-mache-ich-mit/community-finden/.

I assume a good portion of these >35000 devices have 4mb flash.
They currently run OpenWrt.

1 Like

I checked in with @jow on this. Apparently, the kernel symbol table info is indeed disabled on release builds (but not on snapshots). So at least for the device this thread started about, it should be fine.

I did not intend tt suggest sunsetting any device based on it's age. All I am suggesting is that the bulk of the development be spent on newer hardware than older hardware. As I reread this, the sentence is really unnecessary.

1 Like

This is definitely better than my idea of sunset build.

@tmomas, I think this ^^^ is a great idea! Is it possible to insert a warning for all 4Mb devices ToH pages, something to the extent of "Extensibility of this device is limited by its 4Mb flash; only 'xxx' is available for user-installed packages with LEDE 17.01."?

Define 'user-installed packages'? The way I would read it, you're referring to packages installed onto the overlay, and that is virtually impossible with 4 MB flash.

The 'xxx' was missing from the original text as I enclosed it in the brackets.

Do you oppose the idea of the warning message or the wording that I suggested? If latter, you're welcome to improve on that. :wink:

I support a warning as there has been a steady flow of questions about 4MB devices and opkg install.

But xxx can't be defined as there are various bootloaders, wifi firmwares, OEM settings etc. So the amount of free actually available memory varies quite much by device.

And I do not find it realistic to calculate that xxx for each device. So the message should be more generic.

@stangri: I agree a warning can be helpful.

I don't understand what you mean by that. I assume xxx refers to a model, but the remainder of the sentence is unclear to me.

Would you like to say: 'Firmware for xxx is only available without LuCI webinterface by default due to flash size constraints'? Or something in that sense?

Only xxx kB of flash memory is available for overlay where user installed packages are Installed.

1 Like