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

时间:2016-12-02 15:40:13

标签: linux qt qt5 egl imx6

我试图通过指定hellogl_es2平台来运行没有X服务器的eglfs Qt示例:

> ./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安装。

核心转储是(gcoOS_InitLocalDisplayInfo中的libGAL.so处的问题):

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服务器正在运行时,指定xcb平台(-platform xcb,即默认值)工作正常。

1 个答案:

答案 0 :(得分:0)

我设法解决了“分段错误”问题:

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