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/