Steps to build the following software for i.MX8MP EVK:
 - yocto: scarthgap (master) 5.0
 - linux: Linux Kernel 6.8-rc2, media-stage master
 - driver: new upstream drv alvium-csi2.c
 - mesa: Mesa 24.0.2 using etnaviv driver
 - weston: weston + eglfs backend
 - gst: GStreamer 1.22.10
cd fsl-community-bsp
repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b master
repo sync
You need also the following metas: meta-clang and meta-qt6:
cd sources
git clone git://code.qt.io/yocto/meta-qt6.git
git clone https://github.com/kraj/meta-clang.git
Then add newest meta layers to bblayers.conf
+ ${BSPDIR}/sources/meta-clang \
+ ${BSPDIR}/sources/meta-qt6 \
+"
Append the following to your local.conf file:
TOOLCHAIN_HOST_TASK:append = "\
    nativesdk-ninja \
    nativesdk-libyaml \
    nativesdk-libevent \
    nativesdk-libsdl2 \
    nativesdk-libdrm \
    nativesdk-gnutls \
    nativesdk-libssl \
    nativesdk-pkgconfig \
    nativesdk-meson \
    nativesdk-python3-pyyaml \
    nativesdk-python3-ply \
    nativesdk-python3-jinja2 \
    nativesdk-clang \
    nativesdk-g++ \
    nativesdk-openssl \
    nativesdk-boost \
    nativesdk-python3-sphinx \
    nativesdk-doxygen \
    nativesdk-graphviz \
    nativesdk-qtbase \
    nativesdk-qttools \
"
IMAGE_INSTALL:append = "\
    ninja \
    pkgconfig \
    meson \
    libyaml \
    python3-pyyaml \
    python3-ply \
    python3-jinja2 \
    clang g++ \
    libevent \
    libsdl2 \
    libsdl2 \
    libsdl2-ttf \
    libsdl2-image \
    libsdl2-mixer \
    jpeg \
    libdrm \
    gstreamer1.0 \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gnutls \
    libssl \
    openssl \
    boost \
    packagegroup-core-buildessential \
    python3-sphinx doxygen \
    graphviz \
    qtbase \
    qttools \
    v4l-utils \
    libcamera \
    kmscube \
    kernel-modules \
    packagegroup-qt6-addons \
    e2fsprogs \
    e2fsprogs-mke2fs \
    elfutils \
    trace-cmd \
    opencv \
    libopencv-core-dev \
    libopencv-highgui-dev \
    libopencv-imgproc-dev \
    libopencv-objdetect-dev \
    libopencv-ml-dev \
    opencv-staticdev \
"
MACHINEOVERRIDES .= ":use-mainline-bsp"
DISTRO_FEATURES:remove = " qtwebengine"
DISTRO_FEATURES:append = " gles2 eglfs"
PACKAGECONFIG:append:pn-weston = " systemd egl kms "
IMAGE_FSTYPES += " tar.bz2"
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
BB_NUMBER_THREADS = "4"
PACKAGECONFIG:append:pn-gstreamer1.0-plugins-good = " libv4l2 v4l2 jpeg mpg123 x11"
PACKAGECONFIG:append:pn-gstreamer1.0-plugins-bad = " opencv"
source ./setup-environment build
bitbake fsl-image-multimedia-full
bitbake fsl-image-multimedia-full -c populate_sdk
Get Linux kernel mainline sources from:
git clone https://github.com/torvalds/linux.git
Note: defconfig for imx8mp can be found here:
You can build the Linux kernel in a stand alone way and copy the image and Kernel modules after using:
export ARCH=arm64
export DTC_FLAGS="-@"
export PATH=/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin/:$PATH
export CROSS_COMPILE=aarch64-none-linux-gnu-
make imx8mp_evk_defconfig
make Image dtbs modules
sudo rm -r MODULES
mkdir MODULES
make -j16 modules_install CROSS_COMPILE=$CROSS_COMPILER ARCH=arm64 INSTALL_MOD_PATH=./MODULES
cp arch/arm64/boot/Image /tftp-folder/
cp arch/arm64/boot/dts/freescale/imx8mp-evk.dtb /tftp-folder/
sudo cp -rf MODULES/lib/* /targetfs/lib/
sudo tar -xf tmp/deploy/images/imx8mp-lpddr4-evk/fsl-image-multimedia-full-imx8mp-lpddr4-evk.rootfs.tar.bz2 -C /targetfs/