[meta-freescale] Error 0x300b in Qt5 applications with EGLFS
alfonso at mantic.mx
Sun Nov 17 11:53:52 PST 2013
Using a wand board quad with the LCD display from Future Electronics, I am building qt5 using the master branch by cloning meta-qt5 in the sources directory, adding the directory in conf/bblayers.conf and adding this in the conf/local.conf:
IMAGE_INSTALL_append = " qtbase qtbase-plugins qtbase-examples cinematicexperience gstreamer nano cairo pango fontconfig freetype “
To successfully build qt5 I remove the cmake directory in recipes-devtools and apply this patch http://patchwork.openembedded.org/patch/60673/ to Qt5 (I know its not the best way and Otavio doesn’t like it :P ). I am also putting USE_X11 = “no” in sources/meta-fsl-arm/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc so framebuffer gpu drivers get included.
I boot Poky (it boots Linux-3.0.35-4.0.0-wandboard+gd3) and test the gnu drivers using the tiger demo from vivante and a slightly modified* glcubes demo that works on i.mx6 (some or all tutorials in /opt/viv_samples/vdk do not work in master branch).
When running a Qt5 application with -platform eglfs this error occurs:
#./hellogl_es2 -platform eglfs
evdevtouch: Using device /dev/input/event0
min X: 0 max X: 0
min Y: 0 max Y: 0
min pressure: 0 max pressure: 255
device name: prism_st
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).
Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
EGL Error : Could not create the egl surface: error = 0x300b
I even built Qt5.2 inside the wand board but the examples throw the same error.
Has anyone managed to get Qt5 running without X11?
* In order to run the glcubes demo in i.mx6 the call to eglCreateWindowSurface must be modified this way:
EGLNativeDisplayType natdisp = fbGetDisplayByIndex(0);
EGLNativeWindowType natwindow = fbCreateWindow(natdisp,0,0,0,0);
eglsurface = eglCreateWindowSurface (egldisplay, eglconfig, natwindow, NULL);
More information about the meta-freescale