Introduction

This manual is based on offizial NXP i.MX Yocto distribution guide:

IMX_YOCTO_PROJECT_USERS_GUIDE.pdf

IMX_LINUX_RELEASE_NOTES.pdf

IMX_PORTING_GUIDE.pdf

It describes to setup of host system to build and develop a custom linux distribution. For configure a custom embedded linux the following example is used as a base:

https://github.com/SolidRun/meta-solidrun-arm-imx8

The linux build toolchain is configured as docker container where all yocto related configurations implemented. It WSL2 shares volumes with container to ensure cache and images are persistent.

https://viewer.diagrams.net/?border=0&tags={}&lightbox=1&highlight=0000ff&edit=https://drive.google.com/file/d/17xACg1WtTfClj_tf8ZG6V1YbBz3pUCV-/view?usp=drive_link&layers=1&nav=1&title=GettingStarted-LinuxBuildToolchain.drawio#Uhttps://drive.google.com/uc?id=17xACg1WtTfClj_tf8ZG6V1YbBz3pUCV-&export=download

Any newbe should read the following article:

https://www.yoctoproject.org/development/technical-overview/

https://docs.yoctoproject.org/ref-manual/structure.html

https://kickstartembedded.com/2021/12/19/yocto-part-1-a-definitive-introduction/

https://elinux.org/Device_Tree_Usage

https://www.youtube.com/watch?v=5E0sdYkvq-Q&t=375s

Setup

For simplification a docker image has been created where all the following configuration already made.

<aside> ⚠️

Ensure Docker is installed and running on Linux distribution before you start! For Windows user WSL2 must be enabled!

</aside>

<aside> ⚠️

Yocto Build requires a lot of memory, if you have any troubles with building image, maybe adding additional RAM to .wslconfig will help.

As an example for wslconfig:

[wsl2]
processors=12
memory=28GB 

</aside>

Prepare

Ensure git user is configured in WSL by running the following commands in linux host terminal

wsl:/Qlocky.BSP$ git config --global user.email "<email>"
wsl:/Qlocky.BSP$ git config --global user.name "<name>"

Dockerfile Image