On Thu, 8 Dec 2022 at 08:15, Peter Robinson <pbrobin...@gmail.com> wrote:
> On Thu, Dec 8, 2022 at 12:42 AM Adam Williamson > <adamw...@fedoraproject.org> wrote: > > > > Hi folks! Today I woke up and found > > https://bugzilla.redhat.com/show_bug.cgi?id=2151495 , which diverted me > > down a bit of an "installer environment size" rabbit hole. > > > > As of today, with that new dep in webkitgtk, Rawhide's network install > > images are 703M in size. Here's a potted history of network install > > image sizes: > > > > Fedora Core 8: 103.2M (boot.iso 9.2M + stage2.img 94M) > > Fedora 13: 208M > > Fedora 17: 162M (last "old UI") > > Fedora 18: 294M (first "new UI") > > Fedora 23: 415M > > Fedora 28: 583M > > Fedora 33: 686M > > Fedora 37: 665M > > Fedora Rawhide: 703M > > > > The installer does not really do much more in Rawhide than it did in > > FC8. Even after the UI rewrite in F18, we were only at 294M. Now the > > image is well over 2x as big and does...basically the same. > > > > Why does this matter? Well, the images being large is moderately > > annoying in itself just in terms of transfer times and so on. But more > > importantly, AIUI at least, the entire installer environment is loaded > > into RAM at startup - it kinda has to be, we don't have anywhere else > > to put it. The bigger it is, the more RAM you need to install Fedora. > > The size of the installer environment (for which the size of the > > network install image is more or less a perfect proxy) is one of the > > two key factors in this, the other being how much RAM DNF uses during > > package install. > > > > So, I did a bit of poking about into *what* is taking up all that > > space. There's a variety of answers, but there's two major culprits: > > > > 1. firmware > > 2. yelp (which pulls in webkitgtk and its deps) > > > > I've been using du and baobab (the GNOME visual disk usage analyzer, > > which is great) to examine the filesystems, but I ran a couple of test > > builds to confirm these suspects, especially after the impact of > > compression (it's hard to check the *compressed* size of things in the > > installer environment directly). > > > > I did a scratch build of lorax which does not pull in firmware > > packages, and had openQA build a netinst using that lorax. It came out > > at 489M - 214M smaller than current netinsts, a size we last managed in > > Fedora 26. I did a scratch build of anaconda with its requirement of > > yelp dropped (which would break help pages), and built a netinst with > > that; it came out at 662M - 41M smaller than current images. I haven't > > run a combined test yet, but it ought to come out around 448M, around > > the size of Fedora 24. > > > > Even then we'd still be about 50% larger than the Fedora 18 image, for > > not really any added functionality. > > > > I've moaned about the sheer amount and size of firmware blobs in other > > forums before, but 214M compressed is *really* obnoxious. We must be > > able to do something to clean this up (further than it's already > > cleaned up - this is *after* we dropped low-hanging fruit like > > enterprise switch 'firmwares' and garbage like that; most of the > > remaining size seems to be huge amounts of probably-very-similar > > firmware files for AMD graphics adapters and Intel wireless adapters). > > I know some folks were trying to work on this (there was talk that we > > could drop quite a lot of files that would only be loaded by older > > kernels no longer in Fedora); any news on how far along that effort is? > > I've done a few passes, dropping a bunch of older firmware upstream > that are no longer supported in any stable kernel release, also a > bunch of de-dupe and linking of files rather than shipping of multiple > copies of the same firmware. It's improved things a bit, unfortunately > a lot of the dead firmware was tiny compared to say average modern > devices like GPUs or WiFI. > > The problem with a lot of the firmware, and with the new nvidia "open > driver" which shoves a lot of stuff into firmware in order to have an > upstreamable driver apparently the firmwares there are going to be > 30+Mb each, is that they're needed to bring up graphics/network etc to > even just install so I don't know how we can get around this and still > have a device work enough to be able to install the needed firmware > across the network. > > Ideas on how to solve that problem welcome. > > The only ideas I have seen which 'work'* is to ship a minimal set of drivers for some 'chosen' hardware and then you have a bloated kitchen-sink iso which has all the drivers in it. The chosen hardware could be a 'defined' virtual environment which needs a minimal set of firmware, languages, etc. Everything else can be done in the install for getting languages, extra firmware, etc. The kitchen-sink.iso is going to be one which we know is going to be large. Now I have doubled the QA, releng, and product work.. I would say we would focus most of the work on the mini-installer, but we all know that all the work will be in the kitchen-sink one. * for some small definition of 'work' -- Stephen Smoogen, Red Hat Automotive Let us be kind to one another, for most of us are fighting a hard battle. -- Ian MacClaren
_______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue