Hello!
I’m trying to build gstreamer1.0-plugins-good, specifically for the qml6glsink plugin, as part of the host toolchain in Yocto.
The version for the recipe is 1.22.12 from openembedded-core scarthgap ( OpenEmbedded Layer Index - gstreamer1.0-plugins-good ), and we use the meta-qt6 layer at tags/v6.8.3 ( yocto/meta-qt6.git - Yocto layer for Qt6 commit 00c3bd954341a2a755fdee6b978af952f51793e7).
To get gstreamer1.0 and gstreamer1.0-plugins-good to built for the host sdk I’ve added the qt6 PACKAGECONFIG from a newer version of gstreamer
QT56WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}"
PACKAGECONFIG[qt6] = "-Dqt6=enabled,-Dqt6=disabled,qtbase qtdeclarative qtbase-native qttools-native ${QT56WAYLANDDEPENDS},,,qt5"
…and also added the missing dependencies by creating .bbappend files for the missing them that do BBCLASSEXTEND += " native nativesdk ".
I also had to modify the qttools recipe to build with opengl
PACKAGECONFIG:remove:class-nativesdk = " no-opengl "
PACKAGECONFIG:append:class-nativesdk = " gl eglfs "
This allowed the libraries to build and link and be installed as part of the host toolchain, however when actually running the qml sink example code I’ve hit some errors:
-
libEGL warning: MESA-LOADER: failed to open radeonsi: /path/to/our/x86_64-sysroot/usr/lib/dri/radeonsi_dri.so: cannot open shared object file: No such file or directory (search paths /path/to/our/x86_64-sysroot/usr/lib/dri, suffix _dri) libEGL warning: MESA-LOADER: failed to open zink: /path/to/our/x86_64-sysroot/usr/lib/dri/zink_dri.so: cannot open shared object file: No such file or directory (search paths /path/to/our/x86_64-sysroot/usr/lib/dri, suffix _dri)I made sure the library load order is:
- official host QT libraries (installed via qt online installer, not yocto)
- sysroot libraries (for the gstreamer libs and dependencies)
- default search paths
It seems the code is loading a software renderer as a fallback since it cannot find the radeon or zink(?) drivers.
The result is a black screen with the white overlay and no test pattern.
- Then I added
LIBGL_DRIVERS_PATH=/usr/lib64/drito the environment, which is where the graphics drivers are located on my Fedora 41 install. I also kept the same library load order.
This prints the following error
libEGL fatal: did not find extension DRI_Mesa version 1
My question is:
Has anyone built gstreamer 1.22.12 in Yocto for the host toolchain and got an example of it running, and if so how?
Thank you!
