Table of Contents
This wiki shows how to create a custom layer in an open source Xilinx Yocto flow. After creating the layer, it provides an example of creating your own machine based on a ZCU102 configuration.
rel-v2018.1 and later (Rocko 2.4)
Yocto Supported Linux Distro
- Dedicated or virtual Linux machine
- Yocto Project Reference Manual: Supported Linux Distributions
Xilinx Tools Dependencies (not required for
rel-v2018.3 and later)
xvfb(X virtual framebuffer) see UG1144 Table 2-1
- XSDK or XSCT Installation (required for
Xilinx Open Source Yocto Installation
Xilinx Tools Path
Don't forget to edit the path and version variables in
local.conf to point to the current SDK root directory.
Creating Your Custom Layer
You may create your custom layer manually by copying an existing
layer.conf, however, Yocto provides some helper scripts to automate it. The
bitbake-layers create-layer script will generate a base layer with a default priority of 6. Once the layer is created, you can either add the layer to
bblayers.conf manually or use the
bitbake-layers add-layer to automate it. Note that adding it manually will be faster, but may increase the likelihood of typos or syntax errors. The sequence below is an example of how to apply these scripts. You may cut-and-paste the commands below into a local script to further automate this flow. The resulting
bblayers.conf are shown below.
conf/layer.conf. If there is a double backward slash
“\\” in the
BBFILES variable, delete one backward slash, so there is only a single backward slash
“\”. This is required for proper line continuation, otherwise your
bbappend files will not be found.
Custom Layer Directory Structure
After the directory structure is created, you can begin populating the layer with recipes, bbappends, patches, cfg fragments, machine configs, etc. The
example.bb recipe is an artifact of the
create-layer and can be safely deleted. You can continue expanding your layer to include recipes for custom BSPs, applications and other open source components or stacks. At this point, it's pretty straight forward to put your layer under Git control.
Verify Your Layer
You can verify that your custom layer has been properly added to the Yocto build system by running
show-layers as shown below.
Removing Your Layer
To remove a layer, you can either manually edit the
bblayers.conf or use the
bitbake-layers remove-layer script as shown below from the
Creating a New Machine Configuration
Now lets create a machine configuration that inherits all of the defaults from the
zcu102-zynqmp machine. The name of this new machine will be the tuple
example-zcu102-zynqmp. In the
conf/machine directory of your custom layer, create a machine configuration file named
example-zcu102-zynqmp.conf with the
require statement below . This will include all of the defaults from the
zcu102-zynqmp. At this point you can customize the machine by adding new properties or overriding any of the
Now you can build your new machine by specifying the
MACHINE variable on the
bitbake command line.
Make sure you have sourced
setupsdk and you are in the
build directory when baking.