Skip to content

Creating your Distro Layer

Atharva Nandanwar edited this page Oct 30, 2020 · 7 revisions

Creating your own layer for this distro can be done by using create-distro-layer script.

First Steps

To create a custom distro layer named meta-my-layer with distro name as my-layer, run (from the root of tegra-demo-distro)

./scripts-setup/create-distro-layer -d my-layer

This script will setup the initial metadata for your layer to integrate with meta-tegra and meta-tegra-support. Note that this script takes layers/meta-tegrademo as a template.

This will create a layers/meta-my-layer directory as follows

$ tree meta-my-layer
meta-my-layer
├── classes
│   ├── mender-workarounds.bbclass
│   └── rootfs-postcommands-overrides.bbclass
├── conf
│   ├── distro
│   │   └── my-layer.conf
│   ├── layer.conf
│   └── template-my-layer
│       ├── bblayers.conf.sample
│       ├── conf-notes.txt
│       └── local.conf.sample
└── scripts
    ├── buildenv-host-gcc-check
    └── layer-setup-env

Editing configurations

conf/distro/my-layer.conf will contain distro specific settings for your layer. It is recommended that you should change the following attributes with your custom values:

DISTRO = "my-layer"
DISTRO_NAME = "My-Layer Test Script Distribution"
DISTRO_VERSION_BASE = "X.X"
DISTRO_VERSION = "${DISTRO_VERSION_BASE}+snapshot-${DATE}"
DISTRO_CODENAME = "master"
SDK_VENDOR = "-tdsdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"

MAINTAINER = "Test User <test@oe4t>"

TARGET_VENDOR = "-oe4t"

conf/template-my-layer/local.conf.sample - This file will be used to create a conf/local.conf for your build directory. Hence, make sure you tweak the settings in this file. Review local.conf.sample for creating your own template.

Ex. You might want to disable debug-tweaks for production setup. You will need to change EXTRA_IMAGE_FEATURES ?= "debug-tweaks" to EXTRA_IMAGE_FEATURES ?= "" in your local.conf.sample file.

Mender OTA

tegra-demo-distro also includes Mender OTA support. To leverage this support while making your distribution, Use:

./scripts-setup/create-distro-layer -d my-mender -m

This will add mender related settings in your conf/distro/my-mender.conf. Additionally, it will include mender layers into your conf/template-my-mender/bblayers.conf.sample to include these layers while you are building your distribution.

NOTE - Executing ./scripts-setup/create-distro-layer --help will print a help message for more information