运行 Qt5 应用程序与 -platform eglfs 时 i.MX6 上的分段错误

Segmentation fault on i.MX6 when running Qt5 application with -platform eglfs

我正在尝试通过指定 eglfs 平台 运行 hellogl_es2 Qt 示例而不使用 X Server:

> ./hellogl_es2 -platform eglfs
No protocol specified
Segmentation fault (core dumped)

CPU是飞思卡尔i.MX6.

Linux 内核是 3.10.17.

发行版是 Ubuntu 14.04.4 LTS(可信)。

Qt 版本为 5.2.1,从 http://packages.ubuntu.comarmhf 架构安装,包 qtbase5-devqtbase5-examplesqtbase5-examples-dbg.

核心转储是(libGAL.sogcoOS_InitLocalDisplayInfo 处的问题):

GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from hellogl_es2...Reading symbols from /usr/lib/debug/.build-id/6f/8a8dfdb5abe920e37000a98092b4058b56da0a.debug...done.
done.
[New LWP 2802]
[New LWP 2803]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Core was generated by `./hellogl_es2 -platform eglfs'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0xb5dd0c84 in gcoOS_InitLocalDisplayInfo () from /usr/lib/arm-linux-gnueabihf/vivante/libGAL.so
(gdb) bt
#0  0xb5dd0c84 in gcoOS_InitLocalDisplayInfo () from /usr/lib/arm-linux-gnueabihf/vivante/libGAL.so
#1  0xb5d095f8 in ?? () from /usr/lib/arm-linux-gnueabihf/libEGL.so.1
/build/buildd/gdb-7.7.1/gdb/frame.c:472: internal-error: get_frame_id: Assertion `fi->this_id.p' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.

行为与其他 Qt 示例项目相同。

当 X 服务器 运行ning 时,指定 xcb 平台(-platform xcb,即默认值)工作正常。

我设法解决了 "segmentation fault" 问题:

apt-get install gpu-viv-bin-mx6q-fb

(自动卸载​​ gpu-viv-bin-mx6q-x11)。

但是,现在我有另一个问题:"EGL Error : could not create the EGL surface: error 0x300b" on i.MX6 when running Qt5 application with -platform eglfs