BSP Setup

This guide is based on the NXP/Freescale Yocto Project User’s Guide. You can read the full NXP BSP documentation on their Website: https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf

Note

Older releases of the NXP yocto layers contain references to codeaurora.org, which has been shutdown by March 31, 2023. If you need to use older releases contact <support@karo-electronics.de> for instructions.

References

The instructions for setting up and building Linux in the Yocto Project were adopted to our products.

A list of helpful bitbake commands can be found here:

Requirements

For Yocto a Linux host machine is needed.

Hint

The supported distributions for Yocto are listed at the official Yocto documentation.

If you’re already running a Linux host, you should be fine.

Windows users see Linux on Windows with WSL or Ubuntu on Windows 10.

An important consideration is the hard disk space required for the virtual appliance. It is recommended that at least 120 GiB is provided, 500 GiB would be better.

Host Packages

The Yocto framework requires (build) dependencies that need to be available on the host system for the builds.

Follow the instructions at the official Yocto project documentation to install the neccessary host packages for your system.

Setting up Git

If not already done, setup git with the commands below:

git config --global user.name "Your Name"
git config --global user.email "Your Email"
git config --list

Setting up the Repo Utility

Repo is a tool built on top of Git that makes it easier to manage projects that contain multiple repositories, which do not need to be on the same server. Repo complements very well the layered nature of the Yocto Project, making it easier for users to add their own layers to the BSP.

To install the repo utility, perform these steps:

  1. Create a bin folder in the home directory:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
  1. Add the following line to the ~/.bashrc file to ensure that the ~/bin folder is in your PATH variable:

Hint

If the bin folder is already included in your PATH variable, you should skip this step.

PATH=~/bin:$PATH

BSP Checkout

The Repo tool checks out different layers for you, which are defined in our XML-manifest. Their source code can be found in the sources directory, which contains the recipes and machine configurations used to build the images.

fork

Kernel Version

Supported Machines

mickledore

6.1.36_2.1.0

Linux IMX lf-6.1.y fork

  • QS93 series (i.MX 93 A1)

  • TX93 series (i.MX 93 A1)

  • TX8M series

  • TX8P series

  • QS8M series

  • QSXM series

  • QSXP series

langdale

6.1.1_1.0.0

Linux IMX lf-6.1.y fork

  • QS93 series (i.MX 93 A0)

  • TX93 series (i.MX 93 A0)

  • TX8M series

  • TX8P series

  • QS8M series

  • QSXM series

  • QSXP series

kirkstone

(deprecated)

5.15.71_2.2.0

Linux IMX lf-5.15.y fork

  • TX8M series

  • TX8P series

  • QS8M series

  • QSXM series

  • QSXP series

hardknott

(deprecated)

5.10.72_2.2.0

Linux IMX lf-5.10.y fork

  • TX8M series

  • TX8P series

  • QS8M series

  • QSXM series

  • QSXP series

gatesgarth

(deprecated)

5.10.9_1.0.0

Linux IMX 5.10.9 fork

  • TX8M series

  • TX8P series

  • QS8M series

  • QSXM series

  • QSXP series

zeus

(deprecated)

5.4.70_2.3.0

Linux IMX 5.4 fork

  • TX8M series

  • TX8P series

  • QS8M series

  • QSXM series

  • QSXP series

Note

The directory karo-nxp-bsp is just an example and can be chosen freely.

The following command will checkout the latest version of the BSP in Branch mickledore.

mkdir karo-nxp-bsp
cd karo-nxp-bsp
repo init -u https://github.com/karo-electronics/karo-nxp-bsp -b mickledore
repo sync

Tip

If you want to checkout a previous Release Version, use repo as follows:

repo init -u https://github.com/karo-electronics/karo-nxp-bsp -b refs/tags/<tagname>

Release-Tags can be viewed on GitHub: https://github.com/karo-electronics/karo-nxp-bsp/tags

If errors occur during repo initialization, try deleting the .repo directory and running the repo initialization commands again.