[oe] [meta-qt5] Building and running issues on Raspberry Pi

Felix01 Fischer felix01.fischer at iav.de
Tue May 27 10:08:37 UTC 2014


It's not possible to have hardware-accelerated QT on the raspberry pi when 
you are running an X11 environment, therefore I want to use eglfs 
directly.

The raspberry pi doesn't have a mali graphics core, AFAIK.

Nevertheless, applying your patch gives me an error while compiling.

"
[...]/qeglfshooks_stub.cpp: In member function 'virtual void* 
QEglFSHooks::createNativeWindow(QPlatformWindow*, const QSize&, const 
QSurfaceFormat&)':
[...]/qeglfshooks_stub.cpp:256:38: error: variable 
'QEglFSHooks::createNativeWindow(QPlatformWindow*, const QSize&, const 
QSurfaceFormat&)::mali_native_window native_window' has initializer but 
incomplete type
     static struct mali_native_window native_window = {
                                      ^
[...]/qeglfshooks_stub.cpp:261:1: warning: control reaches end of non-void 
function [-Wreturn-type]
 }
 ^
make[4]: *** [.obj/qeglfshooks_stub.o] Error 1
"

Any suggestions?




openembedded-devel-bounces at lists.openembedded.org schrieb am 23.05.2014 
14:41:45:

> Von: Diego Sueiro <diego.sueiro at gmail.com>
> An: openembedded-devel at lists.openembedded.org, 
> Datum: 23.05.2014 15:15
> Betreff: Re: [oe] [meta-qt5] Building and running issues on Raspberry Pi
> Gesendet von: openembedded-devel-bounces at lists.openembedded.org
> 
> Are u running on X11 environment?
> 
> Do you have mali module and lib onto your system? I'm not sure if
> meta-raspberrypi provides mali support. If not you fave to use a X11 
image.
> 
> I had this same problem in another machine and I applied this patch to 
get
> Cinematics Experience working with eglfs.:
> 
> Index:
> 
qtbase-opensource-src-5.2.1/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
> ===================================================================
> ---
> qtbase-opensource-src-5.2.1.orig/src/plugins/platforms/eglfs/
> qeglfshooks_stub.cpp
>   2014-02-01 18:37:36.000000000 -0200
> +++
> 
qtbase-opensource-src-5.2.1/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
>    2014-05-15 17:04:19.117306579 -0300
> @@ -251,7 +251,12 @@
>      Q_UNUSED(platformWindow);
>      Q_UNUSED(size);
>      Q_UNUSED(format);
> -    return 0;
> +//    return 0;
> +   static struct mali_native_window native_window = {
> +        .width = (short unsigned int)size.width(),
> +        .height = (short unsigned int)size.height(),
> +    };
> +    return &native_window;
>  }
> 
>  void QEglFSHooks::destroyNativeWindow(EGLNativeWindowType window)
> 
> 
> This patch comes from this link:
> 
http://wickwire2099.blogspot.com.br/2014/02/qt5-on-cubieboard-a10a20.html
> 
> 
> Regards,
> 
> --
> *dS
> Diego Sueiro
> 
> Administrador do Embarcados
> www.embarcados.com.br<http://www.embarcados.com.br/?
> utm_source=assinatura_diego&utm_medium=e-
> mail&utm_campaign=Assinatura%20Email%20Diego>
> 
> /*long live rock 'n roll*/
> 
> 
> On Fri, May 23, 2014 at 7:17 AM, Felix01 Fischer 
> <felix01.fischer at iav.de>wrote:
> 
> > No suggestions?
> >
> >
> >
> >
> >
> > openembedded-devel-bounces at lists.openembedded.org schrieb am 
13.05.2014
> > 12:36:19:
> >
> > > Von: Felix01 Fischer <felix01.fischer at iav.de>
> > > An: openembedded-devel at lists.openembedded.org,
> > > Datum: 13.05.2014 15:11
> > > Betreff: [oe] [meta-qt5] Building and running issues on Raspberry Pi
> > > Gesendet von: openembedded-devel-bounces at lists.openembedded.org
> > >
> > > Hello,
> > > I'm trying to get Qt5 running on a raspberry pi using yocto and I'm
> > facing
> > > two problems:
> > > I'm using up to date layers from poky, meta-raspberrypi and meta-qt5
> > >
> > > First, I have to add the following to local.conf (or a
> > > qtbase_5.X.Y.bbappend file)
> > >
> > > QT_CONFIG_FLAGS += " \
> > >     -device linux-rasp-pi-g++ \
> > >     -device-option
> > > CROSS_COMPILE=$PATH_TO_SYSROOT_DIR/x86_64-linux/usr/bin/arm-poky-
> > > linux-gnueabi/arm-poky-linux-gnueabi-
> > > \
> > > 
-I$PATH_TO_SYSROOT_DIR/raspberrypi/usr/include/interface/vcos/pthreads
> > > \
> > > "
> > >
> > > then I get the following error while "bitbake qtbase":
> > >
> > > "DEBUG: Executing python function sysroot_cleansstate
> > > DEBUG: Python function sysroot_cleansstate finished
> > > DEBUG: Executing shell function qmake5_base_preconfigure
> > > DEBUG: Shell function qmake5_base_preconfigure finished
> > > DEBUG: Executing shell function do_configure
> > >
> > > This is the Qt Open Source Edition.
> > >
> > > You are licensed to use this software under the terms of
> > > the Lesser GNU General Public License (LGPL) versions 2.1.
> > >
> > > You have already accepted the terms of the  license.
> > >
> > > Performing shadow build...
> > > Preparing build tree...
> > > Symbol visibility control disabled.
> > > -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC
> > bsymbolic_functions.c
> > > /media/yocto_build/qt5-raspb/build/tmp/work/raspberrypi-poky-linux-
> > > gnueabi/qtbase/5.2.1-r0/qtbase-opensource-src-5.2.1/config.tests/
> > > unix/bsymbolic_functions.test:
> > > line 14: -o: command not found
> > > Symbolic function binding disabled.
> > > -reduce-relocations was requested but this compiler does not support 
it
> > > Re-run configure with -v for more information
> > > WARNING:
> > > /media/yocto_build/qt5-raspb/build/tmp/work/raspberrypi-poky-linux-
> > > gnueabi/qtbase/5.2.1-r0/temp/run.do_configure.5533:1
> > > exit 1 from
> > >
> > > /media/yocto_build/qt5-raspb/build/tmp/work/raspberrypi-poky-linux-
> > > gnueabi/qtbase/5.2.1-r0/qtbase-opensource-src-5.2.1/configure
> > > -v -dont-process -opensource -confirm-license -sysroot
> > > /media/yocto_build/qt5-raspb/build/tmp/sysroots/raspberrypi
> > > -no-gcc-sysroot -prefix /usr -bindir /usr/bin/qt5 -libdir /usr/lib
> > > -datadir /usr/share/qt5 -sysconfdir /etc/qt5 -docdir 
/usr/share/doc/qt5
> > > -headerdir /usr/include/qt5 -archdatadir /usr/lib/qt5 -libexecdir
> > > /usr/lib/qt5/libexec -plugindir /usr/lib/qt5/plugins -importdir
> > > /usr/lib/qt5/imports -qmldir /usr/lib/qt5/qml -translationdir
> > > /usr/share/qt5/translations -testsdir /usr/share/qt5/tests 
-examplesdir
> > > /usr/share/qt5/examples -hostbindir /usr/bin/qt5 -hostdatadir
> > > 
/media/yocto_build/qt5-raspb/build/tmp/sysroots/raspberrypi/usr/lib/qt5
> > > -external-hostbindir
> > > 
/media/yocto_build/qt5-raspb/build/tmp/sysroots/x86_64-linux/usr/bin/qt5
> >
> > > -platform
> > > /media/yocto_build/qt5-raspb/build/tmp/sysroots/x86_64-linux/usr/
> > > lib/qt5/mkspecs/linux-oe-g++
> > > -xplatform linux-oe-g++ -reduce-relocations -shared -silent -no-pch
> > > -no-rpath -pkg-config -no-accessibility -no-alsa -dbus -directfb 
-evdev
> > > -nomake examples -no-fontconfig -freetype -opengl desktop -no-eglfs
> > > -opengl es2 -eglfs -no-glib -no-gtkstyle -no-iconv -no-icu
> > -system-libjpeg
> > > -no-kms -system-libpng -make libs -linuxfb -no-mitshm -no-mtdev 
-no-nis
> > > -openssl-linked -no-openvg -qt-pcre -pulseaudio -release -no-sm
> > > -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc
> > > -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-tds -nomake 
tests
> > > -make tools -tslib -libudev -widgets -no-xcb -no-xcursor -no-xfixes
> > > -no-xinerama -no-xinput -no-xinput2 -no-xkb -no-xrandr -no-xrender
> > > -no-xshape -no-xsync -no-xvideo -system-zlib -device 
linux-rasp-pi-g++
> > > -device-option
> > > CROSS_COMPILE=/media/yocto_build/qt5-raspb/build/tmp/sysroots/
> > > x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
> > > -I/media/yocto_build/qt5-raspb/build/tmp/sysroots/raspberrypi/usr/
> > > include/interface/vcos/pthreads
> > > ERROR: Function failed: do_configure (log file is located at
> > > /media/yocto_build/qt5-raspb/build/tmp/work/raspberrypi-poky-linux-
> > > gnueabi/qtbase/5.2.1-r0/temp/log.do_configure.5533)"
> > >
> > >
> > >
> > > A look into
> > > build/tmp/work/raspberrypi-poky-linux-gnueabi/qtbase/5.2.1-r0/
> > > 
qtbase-opensource-src-5.2.1/config.tests/unix/bsymbolic_functions.test
> > >
> > > tells me that the "COMPILER" and "SYSROOT_FLAG" variables are empty. 
I
> > > don't know what to do here.
> > > My workaround is to remove "-reduce-relocations" from 
QT_CONFIG_FLAGS in
> >
> > > qtbase.inc
> > >
> > > After that the build succeeds without problems.
> > > But, when I boot up my image and try to run a Qt5 Application from 
the
> > > console I always get the same error:
> > >
> > > "EGLFS: Unable to query physical screen size, defaulting to 100 dpi.
> > > EGLFS: To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and
> > > QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
> > > libpng warning: iCCP: Not recognizing known sRGB profile that has 
been
> > > edited
> > > EGL Error : Could not create the egl surface: error = 0x300b"
> > >
> > > I'm stuck with this error and don't really know what to do.
> > >
> > > Kind regards,
> > >
> > > Felix Fischer
> > >
> > > Student Employee (VC-I42)
> > > Vehicle Cockpit - HMI Software and Code generation
> > >
> > > IAV GmbH
> > > Carnotstr. 1
> > > 10587 BERLIN
> > > GERMANY
> > >
> > > Phone: +49 30 3997-89540
> > > Fax:       +49 30 3997-89411
> > > E-Mail:  <mailto:felix01.fischer at iav.de>
> > > Internet: http://www.iav.com
> > >
> > > Sitz/Registered Office: Berlin,
> > > Registergericht/Registration Court: Amtsgericht Charlottenburg,
> > > Registernummer/Company Registration Number: HRB 21 280,
> > > Geschäftsführer/Managing Directors: Kurt Blumenröder, Michael 
Schubert,
> > > Dr. Rüdiger Goyk
> > > Vorsitzender des Aufsichtsrates/Chairman of the Supervisory Board: 
Dr.
> > > Harald Ludanek
> > > --
> > > _______________________________________________
> > > Openembedded-devel mailing list
> > > Openembedded-devel at lists.openembedded.org
> > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list