image size on 20.xx builds -- what about a new SMALL target
Stijn Segers
foss at volatilesystems.org
Mon Aug 3 16:17:34 EDT 2020
Hi,
Op maandag 3 augustus 2020 om 9u40 schreef Henrique de Moraes Holschuh
<henrique at nic.br>:
> 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.
Keep in mind master sets CONFIG_KERNEL_KALLSYMS whereas stable builds
do not. That alone makes a bit of a size difference (never checked how
much). Other than that, 5.4 needs more space than 4.14 does (again, how
much exactly I have not quantified).
Hope this helps a bit.
Stijn
>
>>
>>
>> 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 at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list