Yocto Linux BSP User Guide for i.MX9 Series - Yocto 6.0 (Wrynose)
Overview
This guide describes how to set up the Yocto 6.0 (Wrynose) environment, add the Advantech BSP layer, build a bootable image, and flash it to an SD card for supported i.MX9-based boards.
Supported platforms:
- i.MX 93
- i.MX 95
Target release: Yocto 6.0 (Wrynose), NXP release 6.18.20-2.0.0.
Note:
meta-advantech-nxpis hosted in Azure DevOps and may require valid access permission.
Prerequisites
- Ubuntu 22.04 or 24.04 host system
- 8 CPU cores or more recommended
- 16 GB RAM minimum, 32 GB recommended
- 500 GB free disk space recommended
- Git, Docker, Python, and Yocto build tools
The first build requires accepting the NXP Software License Agreement when the
setup script prompts for it. The examples below set EULA=1 to allow the build
to continue after the license has been accepted.
Build Environment
1. Fix the Ubuntu 24.04 user namespace restriction
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
2. Start the Docker container
docker run --privileged -it --name wrynose-6.18.20-2.0.0 \
-v <your_workspace_path>:/home/adv:rw \
-v /dev:/dev \
advrisc/u22.04-imx9lbv1:latest /bin/bash
Replace
<your_workspace_path>with your local workspace path.
Quick Start
1. Configure Git
git config --global user.name "Your Name"
git config --global user.email "your.email@advantech.com"
export GIT_SSL_NO_VERIFY=1
git config --global http.sslverify false
git config --global url."https://".insteadOf git://
2. Initialize the NXP Yocto manifest
mkdir imx-yocto-bsp
cd imx-yocto-bsp
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-wrynose -m imx-6.18.20-2.0.0.xml
repo sync -j$(nproc)
3. Clone the Advantech meta layer
cd sources
git clone https://AIM-Linux@dev.azure.com/AIM-Linux/meta-advantech-nxp/_git/meta-advantech-nxp -b wrynose-6.18.20-2.0.0
cd ..
The
meta-advantech-nxprepository is hosted in Azure DevOps. Confirm that your account has access before runninggit clone.
Supported Boards
| Board | SoC | Machine name | Build directory |
|---|---|---|---|
| ROM-2820 | i.MX 93 | imx93rom2820a1 | build_rom2820 |
| AFE-E420 | i.MX 93 | imx93afee420a1 | build_afee420 |
| AOM-5521 | i.MX 95 A2 | imx95aom5521a2 | build_aom5521 |
| AOM-2521 | i.MX 95 B0 | imx95aom2521b0 | build_aom2521 |
Build Image
To continue an existing build environment, run the following from the BSP root
directory instead of running imx-setup-release.sh again:
source setup-environment build_<board>
bitbake imx-image-full
ROM-2820
MACHINE=imx93rom2820a1 DISTRO=fsl-imx-xwayland EULA=1 source ./imx-setup-release.sh -b build_rom2820
bitbake-layers add-layer ../sources/meta-advantech-nxp
bitbake imx-image-full
AFE-E420
MACHINE=imx93afee420a1 DISTRO=fsl-imx-xwayland EULA=1 source ./imx-setup-release.sh -b build_afee420
bitbake-layers add-layer ../sources/meta-advantech-nxp
bitbake imx-image-full
AOM-5521
MACHINE=imx95aom5521a2 DISTRO=fsl-imx-xwayland EULA=1 source ./imx-setup-release.sh -b build_aom5521
bitbake-layers add-layer ../sources/meta-advantech-nxp
bitbake imx-image-full
AOM-2521
MACHINE=imx95aom2521b0 DISTRO=fsl-imx-xwayland EULA=1 source ./imx-setup-release.sh -b build_aom2521
bitbake-layers add-layer ../sources/meta-advantech-nxp
bitbake imx-image-full
Verify Output
ls build_<board>/tmp/deploy/images/<machine>/
Expected output:
imx-image-full-<machine>*.wic.zst
The exact filename can include a timestamp or release suffix. Use the filename
shown by ls in the following flashing step.
Flash to SD Card
zstd -d imx-image-full-<machine>.wic.zst
sudo dd if=imx-image-full-<machine>.wic of=/dev/sdX bs=4M status=progress conv=fsync
Warning: Confirm the target device is correct before running
dd; writing to the wrong disk may destroy data.
After writing the image, boot the board from the SD card. Use a serial console
configured for 115200 8N1 to monitor the boot process. After login, verify the
running image with:
uname -a
cat /etc/os-release
Troubleshooting
repo syncfails: check network access, the correct manifest branch, and available disk spacegit clonefails: verify Azure DevOps access and the repository branch namebitbake-layers add-layerfails: confirm../sources/meta-advantech-nxpexists and has not already been added- Docker permission errors: confirm the workspace volume is writable by the container user
- A machine is not found: confirm the machine configuration exists in
conf/machine/and that the correct manifest branch was initialized - Build fails: verify the Yocto environment was sourced correctly and the container includes the required packages
Related information
- NXP Yocto release notes
- Advantech BSP documentation
- Board-specific deployment guides