“无法打开egl显示。已中止”使用fsl-community-bsp + meta-qt5

时间:2016-04-27 08:30:13

标签: qt5 yocto

硬件:Riotboard,imx6solo;

BSP :fsl-community-bsp,jethro branch;

Meta-Qt5图层:jethro分支;

bitbake fsl-image-multimedia-full ”生成的图片;

bitbake meta-toolchain-qt5 ”生成的工具链;

参考指南“在Wandboard上使用yocto构建Qt5 - Wandboard Wiki”;

qtbase-plugs包存在,libqeglfs.so也存在;

设置

Qtcreator:设备,套件,编译器,调试器,rootfs,ssh连接;

注意:我只更改了主板上的rootfs,内核,uboot,dtb文件仍然使用了embest。内核为3.10.17_1.0.0;这会影响问题吗?

现在只有一个问题:当我运行“./helloworld -platform eglfs”时,出现错误“无法打开egl显示。已中止”。我试图导出FB_MULTI_BUFFER = 2, export DISPLAY =:0.0,export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER = 1,错误仍然存​​在。我也尝试了fbset,将深度修改为32bit,无法解决问题。

我的另一个帖子链接:How to enable eglfs plugin in Yocto setup? using yocto+meta-qt5 for Riotboard

我的最终目标是为定制板(类似于Riotboard)开发Qt5个应用程序,此外还有其他C应用程序也在板上运行。对于实时功能,我还将包含Xenomai,因此该项目将包含许多内容。

bblayers.conf:

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 \
"

的local.conf:

MACHINE ??= 'imx6solosabreauto'
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"

PACKAGECONFIG_DISTRO_pn-qtbase = "accessibility"

CONF_VERSION = "1"
BB_NUMBER_THREADS = '8'
PARALLEL_MAKE = '-j 8'

DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1"
DISTRO_FEATURES_remove="x11 wayland "

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 \
    ruby \
    cpufrequtils \
    nano \
    gdb \
    gstreamer1.0 \
    gst-meta-video \
    gst1.0-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-gstreamer1.0 \
    packagegroup-fsl-tools-testapps \
    packagegroup-fsl-tools-benchmark \
    packagegroup-fsl-gstreamer1.0-full \
    packagegroup-fsl-tools-gpu \
    imx-vpu \
    imx-test \      
    qtbase-fonts \
    qtbase-plugins \
    qtbase-tools \
    qtdeclarative \
    qtdeclarative-plugins \
    qtdeclarative-tools \
    qtdeclarative-qmlplugins \
    qtmultimedia \
    qtmultimedia-plugins \
    qtmultimedia-qmlplugins \
    qtsvg \
    qtsvg-plugins \
    qtsensors \
    qtimageformats-plugins \
    qtsystems \
    qtsystems-tools \
    qtsystems-qmlplugins \
    qtscript \
    qt3d \
    qt3d-qmlplugins \
    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 fsl-alsa-plugins \
    i2c-tools \ 
    "

感谢。

2 个答案:

答案 0 :(得分:0)

这就是我用于EGLFS的内容:

var obj = {
           _time : "",
           get time () {
             this._time = new Date();
             return this._time;
           },
           set time(val) {
             this._time = val;
           }
};

document.write("<pre>" + obj.time + "</pre>");

另外,你不需要这些;

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"

PACKAGECONFIG_append_pn-qtbase = " sql-sqlite \
gst-plugins-base \
accessibility \
pulseaudio \
examples \
"
EXTRA_IMAGE_FEATURES = " ssh-server-openssh package-management \
             tools-sdk tools-debug"

答案 1 :(得分:0)

最后我解决了这个问题,我切换到了yocto和meta-qt5层的Dizzy分支。通过这种方式,它匹配embest提供的内核版本。