From ProventusNova DeveloperWiki
Line 52: Line 52:


===Step 2. Add base distro config===
===Step 2. Add base distro config===

In order to add the initial distro configuration, it is necessary to create distro configuration file inside the '''meta-layer/conf/distro''' directory.

Here is an example of how the directory structure should look like:

<syntaxhighlight lang="bash">
meta-proventusnova/
├── conf
│   ├── distro
│   │   └── proventusnova.conf
│   └── layer.conf
└── README.md

</syntaxhighlight>


===Step 3. Add base machine===
===Step 3. Add base machine===

Revision as of 18:00, 11 March 2025

Introduction

This wiki will provide a detailed guide on how to create a custom Yocto meta-layer.

Create Base Meta-Layer

This section contains steps to create the base custom meta-layer. After completion, the custom base meta-layer will contain the following parts:

  • Custom layer configuration
  • Custom distro configuration
  • Custom machine
  • Custom config template files
  • Custom image recipe

Step 1. Add base layer.conf file

The layer configuration file provides Yocto with the configuration for the custom meta-layer. It shall be stored in a directory called conf inside the base meta-layer directory, and it shall be named layer.conf. According to the Yocto documentation it is recommended to start from an existing layer.conf file from a different meta-layer and change it according to the custom requirements.

For instance, here is an example of how the directory structure should look after creating the layer.conf file.

meta-proventusnova/
├── conf
│   └── layer.conf
└── README.md

An example layer.conf file based on NVIDIA OE4T tegra_demo_distro is shown in the following code snipped.

BBPATH =. "${LAYERDIR}:"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILES_DYNAMIC += "swupdate:${LAYERDIR}/dynamic-layers/meta-swupdate/recipes-*/*/*.bb \
                    swupdate:${LAYERDIR}/dynamic-layers/meta-swupdate/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "proventusnova"
BBFILE_PATTERN_proventusnova = "^${LAYERDIR}/"
BBFILE_PRIORITY_proventusnova = "50"

LAYERVERSION_proventusnova = "4"
LAYERSERIES_COMPAT_proventusnova = "scarthgap"

# This is used by the tegra-distro-sanity bbclass
# to identify the distro layer directory during
# bblayers checks.
TD_DISTRO_LAYERDIR = "${LAYERDIR}"

Step 2. Add base distro config

In order to add the initial distro configuration, it is necessary to create distro configuration file inside the meta-layer/conf/distro directory.

Here is an example of how the directory structure should look like:

meta-proventusnova/
├── conf
│   ├── distro
│      └── proventusnova.conf
│   └── layer.conf
└── README.md

Step 3. Add base machine

Step 4. Add initial config template files

Step 5. Add base image recipe