https://github.com/tprrt/manifests
A collection of various manifests for git-repo to set up OE/Yocto build environments.
https://github.com/tprrt/manifests
git-repo manifest openembedded yocto
Last synced: 4 months ago
JSON representation
A collection of various manifests for git-repo to set up OE/Yocto build environments.
- Host: GitHub
- URL: https://github.com/tprrt/manifests
- Owner: tprrt
- License: gpl-3.0
- Created: 2021-01-07T14:53:22.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-06-18T08:32:04.000Z (12 months ago)
- Last Synced: 2025-11-20T15:29:05.862Z (7 months ago)
- Topics: git-repo, manifest, openembedded, yocto
- Homepage:
- Size: 115 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
.. image:: https://circleci.com/gh/tprrt/manifests.svg?style=svg
:alt: Circle badge
:target: https://app.circleci.com/pipelines/github/tprrt/manifests
==================
git-repo manifests
==================
A collection of `git-repo`_ manifests to set up OE/Yocto build environments.
----
Install git-repo
================
In first, you should install the `git-repo`_ utility:
.. code-block:: bash
mkdir ~/bin
curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+rx ~/bin/repo
export PATH=${PATH}:~/bin
*Note: make sure ~/bin exists and it is part of your PATH.*
Pull the OE/Yocto build environment
===================================
Download the OE/Yocto build environment:
.. code-block:: bash
mkdir dist
cd dist
repo init -u git@github.com:tprrt/manifests.git [-b ][-m ]
repo sync -j4
By default, when the branch and the manifest aren't specified, the default
manifest from the master branch is used.
Here, the default manifest will fetch the master branch of required layers to
build the nodistro flavor.
Then Bitbake and all required layers will be downloaded.
Following, an example to pull the layers of the Kirkstone (LTS) release:
.. code-block:: bash
repo init -u git@github.com:tprrt/manifests.git -b master -m nodistro/branch/kirkstone.xml
repo sync -j4
Select the configuration and distribution
=========================================
Currently two distro flavors are available:
- nodistro
- exiguous *(coming soon)*
To select the right distro configuration, it is only required to set both
environment variables:
- `DISTRO`
- `TEMPLATECONF`
You can also specify `BDIR`, if you want build each distro flavor in a separated
folder.
For example, to select the exiguous distro and build it into a separated folder:
.. code-block:: bash
export BDIR=build-exiguous
export DISTRO=exiguous
export TEMPLATECONF=meta-exiguous/conf
source ./layers/oe-init-build-env
By default, the variable:
- `DISTRO` is equal to `nodistro`
- `TEMPLATECONF` is equal to `meta/conf`
- `BDIR` is equal to `build`
If you when reduce the build time you should modify the paths to share the
following folders between your different build environments:
- `CCACHE_TOP_DIR`
- `SSTATE_DIR`
- `DL_DIR`
Which are by default located into `BDIR`.
Select the machine
==================
By default, if the `MACHINE` variable isn't specified then the `Qemux86-64`
target will be used.
The `MACHINE` environment variable can be set to all available machine
configurations defined into `meta-\*/conf/machine/\*.conf`:
- `qemux86-64` to use `meta/conf/machine/qemux86-64.conf`,
- `raspberrypi4-64` to use `meta-raspberrypi/conf/machine/raspberrypi4-64.conf`,
- `sama5d2-xplained-sd` to use `meta-atmel/conf/machine/sama5d2-xplained-sd.conf`,
- `imx8qxp-mek` to use `meta-freescale/conf/machine/imx8qxp-mek.conf`,
- `beaglebone` to use `meta-ti/conf/machine/beaglebone.conf`,
- etc.
For exemple, to use Qemu ARMv8:
.. code-block:: bash
export MACHINE="qemuarm64"
Here, an example, to use a Raspberrypi 4 target:
.. code-block:: bash
bitbake-layers add-layer ../layers/meta-raspberrypi
export MACHINE="raspberrypi4-64"
You will notice that it is also necessary to add the layer containing the
machine configuration when it isn't already present in `conf/bblayers.conf`.
For example, to add the meta-raspberrypi:
.. code-block:: bash
bitbake-layers add-layer ../layers/meta-raspberrypi
Build an image or a SDK
=======================
Finally, you will be able to build an image for the given target:
.. code-block:: bash
bitbake core-image-minimal
Or, to build a SDK:
.. code-block:: bash
bitbake -c populate_sdk core-image-minimal
----
Use the following command to validate the `circleci`_ pipeline:
.. code-block:: bash
podman run --rm --security-opt seccomp=unconfined --security-opt label=disable -v $(pwd):/data circleci/circleci-cli:alpine config validate /data/.circleci/config.yml --token $TOKEN
.. _circleci: https://circleci.com
.. _git-repo: https://gerrit.googlesource.com/git-repo