I'm building images using Yocto for a NXP imx 8m plus board following this guide. I'm using debian 12. I selected the imx8mp-lpddr4-evk
machine and fsl-imx-wayland
distro. I was able to build the imx-image-core
with some warnings, but the image works just fine. Then I tried to build the imx-image-multimedia
and I got a build error for the imx-gpu-sdk
:
| WARNING: WARNING: Unused variant setting 'WindowSystem'
| Flavor settings: WindowSystem=Wayland_XDG
| Install area '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty' is unclaimed, claiming it
| Checking if package Recipe.glm_0_9_9 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/glm-0.9.9.8
| Checking if package Recipe.BuildTool.CMake is installed
| Validating installation for 'Recipe.BuildTool.CMake'
| FindFileInPath: 'cmake'
| Found at '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/usr/bin/cmake'
| Found version 3.25.2 expected minVersion 3.16
| Validating executable file 'cmake' is in path: True
| '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/usr/bin/cmake'
| Checking if package Recipe.Wayland_XDG is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/Wayland_XDG-1.0
| Checking if package Recipe.RapidVulkan_1_3_250 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/RapidVulkan-1.3.250.0
| Checking if package Recipe.BuildTool.Git is installed
| Validating installation for 'Recipe.BuildTool.Git'
| FindFileInPath: 'git'
| Found at '/home/reach/projects/imx/sources/poky/scripts/git'
| Validating executable file 'git' is in path: True
| '/home/reach/projects/imx/sources/poky/scripts/git'
| Checking if package Recipe.stb_2_35 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/stb-2.35.0.2
| Checking if package Recipe.gli_0_8_3 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/gli-0.8.3.0
| Checking if package Recipe.nlohmann_json_3_11 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/nlohmann_json-3.11.2
| Checking if package Recipe.RapidOpenVX_1_1 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/RapidOpenVX-1.1.0.1
| Checking if package Recipe.RapidOpenCL_1_2 is installed
| Installation directory not located: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/Yocto/Ninja_3_6/RapidOpenCL-1.2
| Checking if package Recipe.BuildTool.ninja_1_8 is installed
| Validating installation for 'Recipe.BuildTool.ninja_1_8'
| FindFileInPath: 'ninja'
| Found at '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/usr/bin/ninja'
| Found version 1.11.1 expected minVersion 1.8
| Validating executable file 'ninja' is in path: True
| '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/usr/bin/ninja'
| Builder using BuildThreads: 8
| Creating package Recipe.glm_0_9_9 build pipelines
| Creating package Recipe.Wayland_XDG build pipelines
| Creating package Recipe.RapidVulkan_1_3_250 build pipelines
| Creating package Recipe.stb_2_35 build pipelines
| Creating package Recipe.gli_0_8_3 build pipelines
| Creating package Recipe.nlohmann_json_3_11 build pipelines
| Creating package Recipe.RapidOpenVX_1_1 build pipelines
| Creating package Recipe.RapidOpenCL_1_2 build pipelines
| Package location: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/ThirdParty/Recipe/glm_0_9_9
| Package 'Recipe.glm_0_9_9' recipe not enabled
| WARNING: no intallation validation available for recipe 'glm-0.9.9.8'
| WARNING: no intallation validation available for recipe 'glm-0.9.9.8'
| Package location: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/ThirdParty/Recipe/Wayland_XDG
| Building package: Recipe.Wayland_XDG
| - Creating '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild' as it was missing
| Running cmake and build on source '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/ThirdParty/Recipe/Wayland_XDG' and installing to '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild/_Install'
| * Running cmake at '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild' for source '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/ThirdParty/Recipe/Wayland_XDG' with prefix -DCMAKE_INSTALL_PREFIX=/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild/_Install and options []
| Build commands '['cmake', '-G', 'Ninja', '-DCMAKE_INSTALL_PREFIX=/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild/_Install', '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/ThirdParty/Recipe/Wayland_XDG', '-DCMAKE_BUILD_TYPE=RELEASE']'
| -- The C compiler identification is GNU 12.3.0
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Check for working C compiler: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc - skipped
| -- Detecting C compile features
| -- Detecting C compile features - done
| -- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1")
| -- WAYLAND_PROTOCOLS_DIR: '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/share/wayland-protocols'
| -- WAYLAND_SCANNER: '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/bin/wayland-scanner'
| -- DF_WAYLAND_SCANNER: '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/bin/wayland-scanner'
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild
| * Running make at '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild' for project 'Wayland_XDG_DF' and configuration 'release'
| [1/3] Generating df-xdg-shell-client-protocol.h, df-xdg-shell-protocol.c
| FAILED: df-xdg-shell-client-protocol.h df-xdg-shell-protocol.c /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild/df-xdg-shell-client-protocol.h /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild/df-xdg-shell-protocol.c
| cd /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild && /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/bin/wayland-scanner client-header /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml df-xdg-shell-client-protocol.h && /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/bin/wayland-scanner public-code /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml df-xdg-shell-protocol.c
| /bin/sh: 1: /home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot-native/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/recipe-sysroot/usr/bin/wayland-scanner: not found
| ninja: build stopped: subcommand failed.
| * cmake failed '['cmake', '--build', '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild', '--config', 'RELEASE', '--parallel', '8']'
| * A error occurred removing '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild/_Install' to be safe.
| ERROR: cmake failed ['cmake', '--build', '/home/reach/projects/imx/imx-builds/tmp/work/armv8a-mx8mp-poky-linux/imx-gpu-sdk/6.2.1-r0/git/.Thirdparty/.Temp/pipeline/Yocto/Ninja_3_6/Wayland_XDG-1.0/0001_CMakeBuild', '--config', 'RELEASE', '--parallel', '8']
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/reach/projects/imx/sources/meta-imx/meta-sdk/recipes-graphics/imx-gpu-sdk/imx-gpu-sdk_6.2.1.bb:do_compile) failed with exit code '1'
Seems to me that I'm missing or I have miss-configured some graphics libs. How can I fix this?
These are the commands I executed to clone the yocto project with all imx dependencies and the initial setup:
mkdir imx-yocto-bsp && cd imx-yocto-bsp
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.36-2.1.0.xml
repo sync
DISTRO="fsl-imx-wayland" MACHINE="imx8mp-lpddr4-evk" source imx-setup-release.sh -b imx-builds
Turns out there's some misconfiguration with the
WAYLAND_SCANNER
path. it should point to/usr/bin/wayland-scanner
but in my case it points to a yocto path. I was not able to fix it using my Debian 12 computer. I use an Ubuntu 22.04 instead. Is hard for me to tell exactly why the Debian computer had that problem. In any case it compiles now without problems.