Here are some optimizations to increase build time.  These create source and sstate cache mirrors that can be used by multiple users on a build host.

Setting up a Source File Mirror

One way to speed up a clean build is to keep a mirror of source files on the local build host and use those for building instead of fetching them from the upstream repository.  This usually applicable to clean builds which haven’t done an initial fetch.  This mirror can be made available to other users on the build host.

  1. Setup a workspace based on the branch to mirror (e.g. kirkstone, rdkb-2024q1-kirkstone, rdkb-2024q2-kirkstone).
  2. Add this to conf/local.conf to generate tarballs of git repos downloaded during the fetch process.
    1. BB_GENERATE_MIRROR_TARBALLS = "1"
  3. Run the fetch task for the image
    1. bitbake target --runonly=fetch
  4. When bitbake completes, the download directory will contain tarballs of source files used during the build. Copy the files to the download mirror directory.  Use --dry-run to see if everything looks sane.  Example command to copy the files.
    1. rsync --exclude=*.done --dirs -v --info=nonreg0 downloads/ /srv/rdkmirrors/downloads
  5. Developers can add these to conf/local.conf to use the source mirror:
    1. SOURCE_MIRROR_URL ?= "file:///srv/rdkmirrors/downloads"
    2. INHERIT += "own-mirrors"

References