用的英码科技的sbc3730开发板,内核、文件系统,都是英码科技提供的,文件系统中/opt/gfxsdkdemos/ogles2,/opt/gfxsdkdemos/ogles下面的例程均可以运行。
qt-embedded-linux-opensource-src-4.5.3 + Graphics_SDK_4_03_00_02,配置,编译,安装生成带opengles2的qt,安装后复制到开发板文件系统下,把QT目录/plugins/gfxdrivers文件夹复制到开发板根目录/usr/lib下
开发板执行:export LD_LIBRARY_PATH=QT目录/lib
运行QT目录/examples/opengl/hellogl_es2/hellogl_es2
./hellogl_es2 –qws –display powervr
报错:
powervr : driver not found
Aborted
/etc/powervr.ini文件内容
[default]
WindowSystem=libpvrPVR2D_FRONTWSEGL.so
#WindowSystem=libpvrPVR2D_FLIPWSEGL.so
#WindowSystem=libpvrQWSWSEGL.so
如果注释第一行,用第三行的libpvrQWSWSEGL.so,还是报同样错误。
请问这是怎么回事?是文件系统共中powervr驱动没装好,还是我的qt没编译好呢?
附:如果用strace -f -o hellogl_es2.log ./hellogl_es2 –qws –display powervr来执行
生成的.log文件如附件所示,其中报错部分如下:
1647 open("/usr/lib/libpvr2d.so", O_RDONLY) = 8
1647 read(8, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\370\24\0"..., 512) = 512
1647 fstat64(8, {st_mode=S_IFREG|0644, st_size=128533, ...}) = 0
1647 mmap2(NULL, 54080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 8, 0) = 0x416f8000
1647 mprotect(0x416fe000, 28672, PROT_NONE) = 0
1647 mmap2(0x41705000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 8, 0x5) = 0x41705000
1647 close(8) = 0
1647 munmap(0x416d3000, 91288) = 0
1647 munmap(0x416ea000, 53668) = 0
1647 munmap(0x416f8000, 54080) = 0
1647 stat64("/usr/lib/gfxdrivers/libqgfxpvregl.so", {st_mode=S_IFREG|0755, st_size=472905, ...}) = 0
1647 write(2, "powervr: driver not found\n", 26) = 26
1647 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
1647 statfs64(0x66f, 1647, {???}) = 0
1647 --- SIGABRT (Aborted) @ 0 (0) ---
1647 rt_sigaction(SIGABRT, {SIG_DFL}, {0x4020f0d8, [ABRT], SA_RESTART|0x4000000}, 8) = 0
1647 socket_subcall(0x28001, 0, 0x100, 0, 0x6, 0x6, 0x416cf000, 0x12c) = 0
1647 statfs64(0x66f, 1647, {???}) = 0
1647 sigreturn() = ? (mask now [USR1])
1647 --- SIGABRT (Aborted) @ 0 (0) ---
1647 +++ killed by SIGABRT +++