Re: [poky] Error while bitbaking core-image-minimal using Poky 5.0.9 (Scarthgap) on VMware

Srivamsi Malladi <[email protected]> Mon, 19 May 2025 09:08:24 +0200
Newsgroups org.yoctoproject.lists.poky
Message-ID <CAGOSiZ=j8VZ-js9GXiwS_E4k=WUNrEXp5zVi572XgH2+711K3g@mail.gmail.com>
Thank you so much Peter, Alex and Quentin for quick and informative
responses.

I tried running bitbake world -c cleanall just to be sure to run a complete
fresh build. Then ran bitbake core-image-minimal and it finished without
any errors.
I also tried running bitbake -c cleansstate createrepo-c and then bitbake
createrepo-c. Everything went well, no errors.

Also, I changed my VM config to 8 cores, 16GB RAM and 16GB swap memory. But
still did not get any errors regarding do_compile() on gcc. I used
BB_NUMBER_THREADS=8 PARALLEL_MAKE=8 in this build and maybe that is why I
did not get any OOM errors this time



On Thu, May 15, 2025 at 3:01 PM Peter Marko via lists.yoctoproject.org
<[email protected]> wrote:

> RAM consumption under bitbake is a topic which you usually need to
> fine-tune for your setup.
> By default bitbake spawns number of build processes equal to number of
> cores and each of those processes will spawn the same number of compiler
> threads.
> So it's exponential, which is very problematic and oom-kills occur when
> several memory hungry build processes are run at the same time..
>
> The rule is - the more CPUs, the faster the build.
> However there is the RAM caveat - you have to have sufficient RAM for all
> the spawned processes.
> I personally gave to my (Debian) VM 24 cores and 48G RAM with default
> exponential settings and never observer OOM kill.
> My rule of thumb is to give it 2GB RAM for each CPU I assign.
>
> Of course this is not guaranteed to work in all cases.
> In worst case, you need cores*cores*x GB of RAM (e.g. for 16 cores you
> need 256*x GB).
> But the reality is better, since likelihood that all running bitbake
> processes are busy with super-memory-hungry compiler processes is very low.
> Since only few components are extremely memory hungry compilation
> processes, the average memory factor for each bitbake process is lower with
> higher cpu count.
> You also have to take into account that with low number of cores and RAM,
> also the system eats something.
>
> As example: you build image with 200 components, 8 of them are
> super-memory-hungry and usually there are some dependencies so they can't
> run all at the same time.
> If you give it two cores, probability that all running processes will be
> memory hungry is basically 100%, so give it 4GB per core.
> It you have 32 cores, you can't get to situation that spawned all
> processes are memory hungry, so even if some several at the same time, the
> sum will not be extreme, 2GB should be fine.
>
> Additionally, you can tweak compression settings (e.g. yocto default for
> xz is set to unbelievable 50% of whole RAM ... imagine that 8 components
> are using it at the same time)
> Also using BB_PRESSURE_MAX_{CPU|IO|MEMORY} configuration will help limit
> concurrent processes thus allow using less RAM.
> Also maybe don't use the default cores*cores formula and tweak
> BB_NUMBER_THREADS/PARALLEL_MAKE variables.
> And there are for sure other RAM relevant configurations/optimizations
> possible.
>
> ---
>
> Regarding the problem with quilt - quilt should be used from recipe
> sysroot (workdir), not from host.
> Per log below bitbake thinks it is installed but it is not found when
> needed.
> I think this may be a consequence of oom-kill.
> When oom-kill happens, I'd recommend deleting whole build directory
> because it is probably corrupted.
> Trying to perform a build in corrupted build directory leads to very
> strange build errors.
>
> ---
>
> Peter
>
> > -----Original Message-----
> > From: [email protected] <[email protected]> On
> Behalf Of
> > srivamsi_malladi via lists.yoctoproject.org
> > Sent: Thursday, May 15, 2025 13:02
> > To: [email protected]
> > Subject: [poky] Error while bitbaking core-image-minimal using Poky 5.0.9
> > (Scarthgap) on VMware
> >
> > Hello all,
> >
> > TL;DR: I ran into a couple of errors and fixed them with the help of
> Gemini. I would
> > like to know if there are any better solutions to solve these errors.
> >
> > I am absolutely new to the Yocto project and Poky, so I thought I will
> so a 'hello
> > world' kind of thing with Poky. For that, I setup a VMware with Ubuntu
> 22.04 LTS
> > and with 27.7GB RAM and 16 cores hardware config. My host computer is a
> i9-
> > 13th gen with 32GB RAM running Windows. I chose the really high (max
> actually)
> > RAM and cores thinking I would have a really fast VM, but due to the
> problems I
> > ran into, I realized more RAM, mores cores != more performance. So,
> following is
> > the problem I ran into.
> >
> > When I bitbake core-image-minimal in terminal, I got an error saying
> do_compile
> > failed on gcc 13.0.1 and when I looked at the log, it said error
> x86_64-poky-linux-
> > g++: fatal error: Killed signal terminated program cc1plus.
> > After spending some time on Google and some forums, I found that my VM
> might
> > be fighting with my host PC for resources and in this process, the tasks
> that
> > bitbake wants to run (compiling gcc in this case) are not able to get
> enough PC
> > resources due to which cc1plus got terminated which is needed in the
> process.
> > I tried reducing the RAM to 16GB and cores to 8 and then to 4, the error
> still
> > remained. After reducing the RAM to 8GB and cores to 2, gcc could finally
> > compile, but I ran into another error.
> >
> >
> > When I run bitbake core-image-minimal, I get an error and following are
> the
> > contents of the corresponding log file
> >
> >       DEBUG: Executing python function extend_recipe_sysroot
> >
> >       NOTE: Direct dependencies are
> > ['/home/ubuntu2204/work/poky/meta/recipes-devtools/quilt/quilt-
> > native_0.67.bb:do_populate_sysroot']
> >
> >       NOTE: Installed into sysroot: []
> >
> >       NOTE: Skipping as already exists in sysroot: ['quilt-native']
> >
> >       DEBUG: Python function extend_recipe_sysroot finished
> >
> >       DEBUG: Executing python function do_patch
> >
> >       DEBUG: Executing python function patch_do_patch
> >
> >       DEBUG: Searching for 0001-Do-not-set-PYTHON_INSTALL_DIR-by-
> > running-python.patch in paths:
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/poky
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/poky
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/files/poky
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/
> >
> >
>  /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-c/files/
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/x86-64
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/x86-64
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/files/x86-64
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/
> >
> >
>  /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-c/files/
> >
> >       DEBUG: Using /home/ubuntu2204/work/poky/meta/recipes-
> > devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-
> > running-python.patch for 0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-
> > python.patch
> >
> >       DEBUG: Searching for 0001-include-rpm-rpmstring.h.patch in paths:
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/poky
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/poky
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/files/poky
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/
> >
> >
>  /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-c/files/
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/x86-64
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/x86-64
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/files/x86-64
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c-1.0.4/
> >
> >           /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-
> > c/createrepo-c/
> >
> >
>  /home/ubuntu2204/work/poky/meta/recipes-devtools/createrepo-c/files/
> >
> >       DEBUG: Using /home/ubuntu2204/work/poky/meta/recipes-
> > devtools/createrepo-c/createrepo-c/0001-include-rpm-rpmstring.h.patch
> for 0001-
> > include-rpm-rpmstring.h.patch
> >
> >       NOTE: Applying patch '0001-Do-not-set-PYTHON_INSTALL_DIR-by-
> > running-python.patch'
> (../meta/recipes-devtools/createrepo-c/createrepo-c/0001-
> > Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch)
> >
> >       ERROR: Applying patch '0001-Do-not-set-PYTHON_INSTALL_DIR-by-
> > running-python.patch' on target directory
> > '/home/ubuntu2204/work/poky/build/tmp/work/x86_64-linux/createrepo-c-
> > native/1.0.4/git'
> >
> >       CmdError('quilt --quiltrc
> > /home/ubuntu2204/work/poky/build/tmp/work/x86_64-linux/createrepo-c-
> > native/1.0.4/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout:
> >
> >       stderr: /bin/sh: 1: quilt: not found
> >
> >       ')
> >
> >       DEBUG: Python function patch_do_patch finished
> >
> >       DEBUG: Python function do_patch finished
> >
> > I asked Gemini about the error and it suggested installing quilt. But it
> was already
> > installed.
> > Then I gave it the whole log file and then it explained that
> quilt-native is available in
> > sysroot but not in PATH and so asked me to create a new layer with
> > do_patch:prepend()where I should add the bindir (which should be
> /usr/bin in the
> > sysroot) to PATH.
> > This fixed the error.
> >
> > Now my questions are
> > 1. Regarding the first error, I had to decrease the RAM to 8GB and cores
> to 2
> > which cured the error but increased the build time. Is there a better
> way to handle
> > this without compromising on the build time?
> > 2. Regarding the second error, did this occur because of some problems
> in my
> > system? Or is this a known error with Poky Scarthgap?
> >
> > Thanks & Regards,
> > Srivamsi Malladi.
> >
> >
> >
> >
> >
> >
> >
> >
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#13621):
> https://lists.yoctoproject.org/g/poky/message/13621
> Unfollow This Topic: https://lists.yoctoproject.org/unft/113124703/9810001
> Group Owner: [email protected]
> Unsubscribe: https://lists.yoctoproject.org/g/poky/unsub [
> [email protected]]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>