I'm cc'ing the OpenWrt-Adm list on this as well, because I smell a policy decision looming. Some thoughts:
1) In my opinion, we should not aim for a third (Tiny/Small/Normal) build for 20.xx. We don't need any more hurdles to overcome before we ship an RC1 version. 2) I had not understood how "close to the wire" we are with 8MByte machines. (That is, vendors reserving 1.5MBytes+ for their own purposes, leaving us with a max of 6.5Mbytes...) 3) Instead of creating an entire new "Small" build, with its attendant new directories, enormous load on the build infrastructure, etc., I wonder if we should spend the engineering time improving the chef.libremesh.org ImageBuilder facility. This has the following good attributes: - People can build an image of whatever size they want, to their own specifications - It gives us information about the popularity of various devices, and their common configurations - We would no longer need to guess what features to put into the "default" stable release - I also envision an enhancement to chef.libremesh.org that lets you preview the size of already-built images that contain the packages you have specified. This dramatically helps with caching, and makes the user experience vastly better as well. Someone can either wait a long time while their image builds, or they can just download one that's pre-built, potentially with a few extra packages. Thoughts? Thanks. Rich > On Aug 3, 2020, at 8:40 AM, Henrique de Moraes Holschuh <henri...@nic.br> > wrote: > > On 02/08/2020 19:11, Daniel Golle wrote: >> On Sun, Aug 02, 2020 at 11:49:54PM +0200, Bjoern Franke wrote: >>> Hi, >>> >>>> >>>> Your Filesystem has a size of 5.81M. MT7620 has a kernel size of around >>>> 2M, which exceeds the available space on flash. >>> >>> On 19.07.3, the listed lineup of packages has 5.54M and it fits: >>> >>> Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144 >>> compressed data, compressed metadata, compressed fragments, >>> no xattrs, compressed ids >>> duplicates are removed >>> Filesystem size 5674.78 Kbytes (5.54 Mbytes) >>> 35.35% of uncompressed filesystem size (16051.56 Kbytes) >>> Inode table size 13736 bytes (13.41 Kbytes) >>> 22.46% of uncompressed inode table size (61170 bytes) >>> Directory table size 17662 bytes (17.25 Kbytes) >>> 44.53% of uncompressed directory table size (39661 bytes) >>> >>> >>> >>>> You can try to remove other packages (such as ppp) from the image. >>>> Stripping LuCI should also save a lot of space, given you only >>>> need it for the initial installation. >>>> >>> >>> Yes, but I was wondering why the image gets 300Kb bigger on 20.xx. >> Apart from the usual kernel growth we have also enabled a bunch of >> previously disabled kernel features on targets which are not marked >> as SMALL_FLASH[1]. MT7620 is a mixed bag in that regard and it would >> make sense to split it similar to ath79 into a 'tiny' and a 'generic' >> variant. The 'mt7620-generic' variant could then also ship with NAND >> support and support for Xiami miRouter 3. The 'mt7620-tiny' variant >> would have SMALL_FLASH set and hence come without the features >> enabled in [1] which should give us ~ 200kB. >> [1]: >> https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=fcb41decf6c622482b20af45a77e62db8d95046e > > This sort of commit can easily be a problem even for 8MiB FLASH devices. > > (Some?) vendors are adding a lot of cruft we can't simply jettison from > FLASH, e.g. the dual-bootloaders and "http recovery" stuff on TP-Link Archer > C60v3 and later, and I understand, several other of their models. > > That effectively reduces usable FLASH enough to matter on 8MiB devices. It is > already a problem on OpenWrt 19.07 -- for anything that needs FLASH-filling > monsters like OpenSSL and ca-certificates, at least. > > IMO, if things keep going that way (and there is no reason to believe they > would not -- or should not, for that matter), we would truly benefit from a > SMALL variant soon (not just TINY). And by soon, I do mean OpenWrt 20.x if > at all possible :-( > > Note that I AM NOT speaking against changes that end up increasing core > openwrt size. I am just stating that such changes show the need of one or > two knobs for anything that is not possible to build as a "module" > kernel-side or as an optional package *and* isn't something you'd strictly > need on smaller devices. > > There's TINY, but it removes too much -- being the single true/false knob > that exists ATM -- and it seems to be really set up for devices with > something like 3-5MiB usable FLASH. It is also too useful to drop/repurpose, > so I am *not* suggesting that. > > A new SMALL could target 5.5MiB to ~6.5MiB *usable* FLASH, IMHO. One would > look at everything that is !TINY to see if it should also be !SMALL, and > review for !SMALL what already landed that increases the static kernel size > and always-installed package size. > > For not-yet merged changes, you'd ask for !TINY and perhaps !SMALL if they > increase in any relevant way the static kernel size, or always-installed > package size. Note that for TINY, 10KiB is already relevant. For !SMALL I am > not sure, but I'd say 50KiB as a first try. And exceptional cases would only > need a sufficiently good justification in the commit log (as in, enough to > convince the core team). > > -- > Henrique de Moraes Holschuh > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel