iMXQ-SDB - Add QtMultimedia to fsl-image-multimedia-full

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMXQ-SDB - Add QtMultimedia to fsl-image-multimedia-full

2,519 Views
raz3l
Contributor III

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"

************************************************************

Labels (2)
0 Kudos
2 Replies

991 Views
gusarambula
NXP TechSupport
NXP TechSupport

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)?

0 Kudos

991 Views
raz3l
Contributor III

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"

0 Kudos