CONFIG_TARGET_ar71xx_tiny not very useful

We have used Tp-Link 4-32 devices for quite some years now. We were making custom builds for our grassroots, neighbourhood network, and happy with it.

However, with 18.06.1 we need to select target ar71xx_tiny... now we miss some options we find useful. We don't care about opkg, ipv6, luci... but we do care about to have some sort of snmp working on the devices, and other things, as sqm, perhaps sudo, etc...

All of that was packaged in 4 MB and worked quite well for us. So we don't want to get these abilities lost. Not asking anybody to do the work for us, so could you guys give me any pointers about how to build a "not-tiny" target so we can continue getting the features we need.

What I'm looking for is the way to have these features listed again in menuconfig.

My 2 cents: that "tiny" target is probably too much work and at the end of the day, it does not help people like us because it limits too much our build options.

Best regards,

Roman

1 Like

https://forum.openwrt.org/t/should-lede-support-devices-with-only-4mb-flash
Will most likely answer your question

In short, software evolves --> there's more code meaning larger binaries

If you're dead set on this, just revert the commits and maintain your own branch although it will most likely be a waste of time if you plan to use current software.

Dive into make menuconfig and deselect what you don't need, then add what you do.

Just continue building from the old 17.01 branch and forget about 18.06

It will not have new features and may not be quite that secure as 18.06, but 17.01 should still do the job for you. It has had /will have some kernel updates, so some security fixes do get included.

Ps. newer Linux kernels (like in 18.06) may have trouble with 32 MB RAM. That can be even more difficult than the 4 MB flash limit.

On custom build section you have few example what can be strip:
e.g:

Making minimized firmware can properly enable/disable the following options(With BuildRoot):

1、Set Target Images Block size to 1024
Target Images - squashfs - Block size - 1024
Refer to https://www.gargoyle-router.com/phpbb/viewtopic.php?f=7&t=8614

2、Disable kernel debug and wireless debug
Global build settings - Kernel Build Options - everything
Kernel modules - Wireless Drivers - kmod-ath9k - Support for Ubiquiti Unify Outdoor+
Kernel modules - Wireless Drivers - kmod-mac80211 - Export mac80211 internals in DebugFS
Kernel modules - Wireless Drivers - kmod-ath - Force Atheros drivers to respect the user's regdomain settings, Enable DFS support
Refer to Build for TP-Link TL-WR841N(D) [all versions]

3、Remove OPKG & USB function

4、Enable Luci compress
LuCI - Modules - Minify Lua Sources

5、Enable data optimization
Remove ipkg/opkg status data files in final images
Strip unnecessary exports from the kernel image
Strip unnecessary functions from libraries
Refer to https://blog.yichyaqc.cn/openwrt-customize-2/

6、Find and remove other unrelated parts

1 Like

Thank you for your answers.

I don't want to argue about need to support "old" hardware, etc. Also, I know what I can strip, etc. I understand all things said about this on this thread and others. And, generally speaking, I agree.

Instead, my points are:

1- How can I get, say, mini-snmpd appear again in menuconfig under target ar71xx_tiny. Full explanation not needed, but any pointer to menuconfig internals doc, tutorial, howto, etc, would probably save hours of work, and would be really appreciated.

2- <little_rant> I think that creating a new, restricted, "tiny" target, is not worth the effort. On which basis has been decided that 4/32 devices shouldn't have snmp, or for that matter, any other now-missing thing? This is a double waste, first some developer worked to create it, then some people like me need to work more, undoing commits and maintainig a separate branch. Things are going a little bit too far, I think.</little_rant>

3- Unexperienced people may really need an allready build tiny image, but experienced people making customs build should not be limited by the buildroot system itself. (my 2 cents)

Best regards,

Roman

I'm not sure why mini-smpd doesn't appear (and I seem to recall that, along with its libraries, it's actually bigger than snmpd, which supports 64-bit counters).

Within make menuconfig the dependencies can be seen with the question-mark key. That may provide some insight.

On the "why", much is captured at

without my opinions on those decisions intended to be discussed here.

after successful first build you can also modify config files to exclude support for all devices but the one you are using. on next make only mach file for your device will be included in the image. (config files will reset after this again) this can save you some space and i'm sure the whole image generating process could be tweaked to not include objects for other devices...

There is no fundamental difference between ar71xx/tiny and ar71xx/generic wrt. package selection. You likely forgot to install the feeds or made another mistake which caused packages to be missing from menuconfig.

Oh, man. My bad. You are right, of course. I forgot to reinstall feeds after make distclean... Oops.

Thank you very much, you saved my day.

Best regards,

Roman