Hi guys
We are trying to add QtMultimedia libraries to the fsl-image-multimedia-full, but we are getting an error when running the QT application (./qtappl -platform eglfs):
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
The branch that we are using is dizzy, but we already tried with jethro too. Our local.conf looks like this:
************************************************************
MACHINE ??= 'imx6qsabresd'
DISTRO ?= 'poky'
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES = "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"
BB_NUMBER_THREADS = '4'
PARALLEL_MAKE = '-j 4'
DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = ""
EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh "
DISTRO_FEATURES_remove = "x11 wayland"
PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer"
IMAGE_INSTALL_append = " gcc g++ binutils libgcc libgcc-dev libstdc++ libstdc++-dev libstdc++-staticdev \
autoconf automake ccache chkconfig glib-networking glibmm \
packagegroup-core-buildessential pkgconfig \
boost cmake zlib glib-2.0 packagegroup-fsl-tools-testapps \
ruby \
cpufrequtils \
nano \
gdb \
gstreamer \
gst-meta-video \
gst-fsl-plugin \
gst-plugins-base-app \
gst-plugins-base \
gst-plugins-good \
gst-plugins-good-rtsp \
gst-plugins-good-udp \
gst-plugins-good-rtpmanager \
gst-plugins-good-rtp \
gst-plugins-good-video4linux2 \
openssh-sftp-server \
packagegroup-fsl-gstreamer \
packagegroup-fsl-tools-testapps \
packagegroup-fsl-tools-benchmark \
imx-vpu \
imx-test \
qtbase-fonts \
qtbase-plugins \
qtbase-tools \
qtbase-examples \
qtdeclarative \
qtdeclarative-plugins \
qtdeclarative-tools \
qtdeclarative-examples \
qtdeclarative-qmlplugins \
qtmultimedia \
qtmultimedia-plugins \
qtmultimedia-examples \
qtmultimedia-qmlplugins \
qtsvg \
qtsvg-plugins \
qtsensors \
qtimageformats-plugins \
qtsystems \
qtsystems-tools \
qtsystems-examples \
qtsystems-qmlplugins \
qtscript \
qt3d \
qt3d-examples \
qt3d-qmlplugins \
qt3d-tools \
qtwebkit \
qtwebkit-examples-examples \
qtwebkit-qmlplugins \
qtgraphicaleffects-qmlplugins \
qtconnectivity-qmlplugins \
qtlocation-plugins \
qtlocation-qmlplugins \
cinematicexperience \
cairo pango fontconfig freetype pulseaudio dbus \
alsa-lib alsa-tools alsa-state alsa-utils-alsaconf fsl-alsa-plugins \
i2c-tools \
"
************************************************************
Besides of that we changed the qtmultimedia_git.bb recipe, and now it looks like this:
************************************************************
require qt5.inc
require qt5-git.inc
# There are no LGPLv3-only licensed files in this component.
LICENSE = "GFDL-1.3 & BSD & (LGPL-2.1 & Digia-Qt-LGPL-Exception-1.1 | LGPL-3.0)"
LIC_FILES_CHKSUM = " \
file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
"
DEPENDS += "qtdeclarative"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'gstreamer', 'gstreamer', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
PACKAGECONFIG[alsa] = ",,alsa-lib"
PACKAGECONFIG[pulseaudio] = ",,pulseaudio"
PACKAGECONFIG[openal] = ",,openal-soft"
PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base gst-plugins-bad"
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'alsa', '', 'CONFIG+=done_config_alsa', d)}"
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', '', 'CONFIG+=done_config_pulseaudio', d)}"
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'openal', '', 'CONFIG+=done_config_openal', d)}"
# Handles GStreamer support
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'gstreamer', 'GST_VERSION=1.0', '', d)}"
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'gstreamer010', 'GST_VERSION=0.10', '', d)}"
# Disable GStreamer if completely disabled
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains_any('PACKAGECONFIG', 'gstreamer gstreamer010', '', 'CONFIG+=done_config_gstreamer', d)}"
SRC_URI += "\
file://0001-Initial-porting-effort-to-GStreamer-1.0.patch \
"
#SRCREV = "cc0569a038f6116df559508518b6dacb15be8520"
SRCREV = "2170a3b0fcda613daf76a337fa45cb97e0714cdf"
************************************************************
Hello Daniel Oliveira,
There are some threads on the communities regarding issues with EGL in Qt. Have you tried with the Qt5 image from a BSP release? Which image are you baking (over which the local.conf packages are installing)?
I guess should explain what I have already did.
So, I follow the normal steps, but on this time I tried to be careful, so I dig on yocto mailing list and I search by the last entry referring to a Qt build in jethro branch. I found this (https://lists.yoctoproject.org/pipermail/meta-freescale/2016-February/017332.html). So, what I did was:
1) follow the first steps as referred in FSL Community BSP git page (https://github.com/Freescale/fsl-community-bsp-platform)
a) install repo utility
b) download the BSP source files
2) build a simple image (core-image-minimal)
3) added meta-qt5 updated bblayers.conf and rebuilt core-image-minimal
a) bblayers.conf looks like this
LCONF_VERSION = "6"BBPATH = "${TOPDIR}"BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"BBFILES ?= ""BBLAYERS = " \${BSPDIR}/sources/poky/meta \${BSPDIR}/sources/poky/meta-yocto \\${BSPDIR}/sources/meta-openembedded/meta-oe \${BSPDIR}/sources/meta-openembedded/meta-multimedia \\${BSPDIR}/sources/meta-fsl-arm \${BSPDIR}/sources/meta-fsl-arm-extra \${BSPDIR}/sources/meta-fsl-demos \${BSPDIR}/sources/meta-qt5 \${BSPDIR}/sources/meta-openembedded/meta-ruby \${BSPDIR}/sources/meta-openembedded/meta-multimedia \"
4) built fsl-image-multimedia-full
Until everything went well, without any major errors and I have a stable image. After this in when I start getting lost, and doing things a little randomly.
5) Added to my local.conf the following packages
MACHINE ??= 'imx6qsabresd'
DISTRO ?= 'poky'
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh"
USER_CLASSES ?= "buildstats image-mklibs"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
CONF_VERSION = "1"
DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1"
DISTRO_FEATURES_append = " systemd dbus pulseaudio udev opengl"
DISTRO_FEATURES_remove = "wayland nfc 3g ppp bluetooth x11"
IMAGE_INSTALL_append = " qtbase qtbase-fonts qtbase-plugins qtmultimedia qtmultimedia-plugins qtxmlpatterns cinematicexperience imx-vpu speex gstreamer1.0-rtsp-server gstreamer1.0-plugins-good \
imx-gpu-viv gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
#PREFERRED_VERSION_alsa-plugins = "1.0.29"
PACKAGECONFIG_append_pn-qtdeclarative = " qtxmlpatterns"
#PACKAGECONFIG_append_pn-qtbase = " gles2 accessibility"
PACKAGECONFIG_append_pn-qtbase = " dbus evdev tools gles2 glib linuxfb accessibility sql-sqlite udev pulseaudio"
#PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer alsa"
#PACKAGECONFIG_append_pn-pulseaudio = " systemd dbus"
PACKAGECONFIG_remove_pn-gstreamer1.0-plugins-good = " gdk-pixbuf"
PREFERRED_VERSION_alsa-plugins = "1.0.29"
6) Rebuild fsl-image-multimedia-full and I start getting a lot errors and I try to solve them by removing some of the appends added in step 5 (qtbase-examples qtdeclarative-examples qt3d-tools alsa-utils-alsaconf qtquickcontrols-qmlplugins ).
But after I still got errors but somehow I got a build done without errors. But when I start the qml application I got this error defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"