Create meta layer using yocto scripts

The yocto-layer script simplifies creating a new general layer.

The default mode of the script’s operation is to prompt you for information needed to generate the layer:

  • The layer priority.
  • Whether or not to create a sample recipe.
  • Whether or not to create a sample append file.

Use the yocto-layer create sub-command to create a new general layer. In its simplest form, you can create a layer as follows,

—————————————————–

ubuntu:~/Desktop/devlab/poky-build$ yocto-layer create lynxbee
Please enter the layer priority you’d like to use for the layer: [default: 6]
Would you like to have an example recipe created? (y/n) [default: n] y
Please enter the name you’d like to use for your example recipe: [default: example] helloworld
Would you like to have an example bbappend file created? (y/n) [default: n] y
Please enter the name you’d like to use for your bbappend file: [default: example] helloworld
Please enter the version number you’d like to use for your bbappend file (this should match the recipe you’re appending to): [default: 0.1]

New layer created in meta-lynxbee.

Don’t forget to add it to your BBLAYERS (for details see meta-lynxbee\README).

——————————————————–

ubuntu:~/Desktop/devlab/poky-build$ tree meta-lynxbee/
meta-lynxbee/
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
├── recipes-example
│   └── example
│       ├── helloworld-0.1
│       │   ├── example.patch
│       │   └── helloworld.c
│       └── helloworld_0.1.bb
└── recipes-example-bbappend
└── example-bbappend
├── helloworld-0.1
│   └── example.patch
└── helloworld_0.1.bbappend

7 directories, 8 files

——————————————————–

The previous example creates a layer named meta-lynxbee in the current directory.

As the yocto-layer create command runs, default values for the prompts appear in brackets. Pressing enter without supplying anything for the prompts or pressing enter and providing an invalid response causes the script to accept the default value. Once the script completes, the new layer is created in the current working directory. The script names the layer by prepending meta- to the name you provide.

SHUFFLED :   Reference URLs for Bitbake, Poky, Yocto, Openembedded

Minimally, the script creates the following within the layer:

The conf directory: This directory contains the layer’s configuration file. The root name for the file is the same as the root name your provided for the layer (e.g. layer.conf).

The COPYING.MIT file: The copyright and use notice for the software.

The README file: A file describing the contents of your new layer.

If you choose to generate a sample recipe file, the script prompts you for the name for the recipe and then creates it in layer/recipes-example/example/. The script creates a .bb file and a directory, which contains a sample helloworld.c source file, along with a sample patch file. If you do not provide a recipe name, the script uses “example”.

If you choose to generate a sample append file, the script prompts you for the name for the file and then creates it in layer/recipes-example-bbappend/example-bbappend/. The script creates a .bbappend file and a directory, which contains a sample patch file. If you do not provide a recipe name, the script uses “example”. The script also prompts you for the version of the append file. The version should match the recipe to which the append file is associated.

The easiest way to see how the yocto-layer script works is to experiment with the script. You can also read the usage information by entering the following:

$ yocto-layer help

Once you create your general layer, you must add it to your bblayers.conf file. Here is an example where a layer named meta-lynxbee is added:

BBLAYERS = ?” \
/usr/local/src/yocto/meta \
/usr/local/src/yocto/meta-yocto \
/usr/local/src/yocto/meta-yocto-bsp \
/usr/local/src/yocto/meta-lynxbee \

Adding the layer to this file enables the build system to locate the layer during the build.

Android Android Commands Android Java Applications Application Libraries Bash / Shell Scripts Bluetooth driver Build Frameworks Commands and Packages Core Kernel C Programs Development Environment Setup Documents / Books Errors & Failures File Systems Framebuffer / Display Driver git Go Language Programs Hardware Platforms Home Kernel & Device Drivers Kernel Booting and Porting Linux, OS Concepts and Networking Linux Device Drivers Linux Host, Ubuntu, SysAdmin Linux Kernel Linux Networking Middleware Libraries, HAL NDK / Middleware / HAL Network Driver OS Concepts PHP Procfs Filesystem Programming Languages RaspberryPi Scripting and Automation Search Engine Optimisation ( SEO ) Social Media Socurce Code Management ( SCM ) System Administration, Security Testing and Debugging Uncategorized Userspace Utilities Web design and development Wordpress Yocto / Bitbake / Openembedded
Tags:

Leave a Reply