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