DM3730基于openglES的qt embedded配置步骤_20120502

时间:2021-09-27 23:42:09
参考网址:
http://processors.wiki.ti.com/index.php/Building_Qt_with_OpenGL_ES_accelerated_by_SGX#Building_Qt_with_OpenGL_ES


1 配置内核:
1)通过下列命令,参照omap3_evm_defconfig,在.config文件中配置:CONFIG_OMAP2_DSS=y
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap3_beagle_defconfig

2)make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules

3)编译内核


1、配置Graphics_SDK(前提条件:内核中配置的.config文件中配置:CONFIG_OMAP2_DSS=y)
   1) 修改主目录下Rules.make,更改以下路径:(最后用绝对路径)
    GRAPHICS_INSTALL_DIR:当前Graphics_SDK目录的路径
    CSTOOL_DIR:编译环境的路径
    KERNEL_INSTALL_DIR:内核路径(最好用当前目标机运行的内核的源文件路径)
    TARGETFS_INSTALL_DIR:编译完成后,安装到目标机的路径(关联的还有:EXEC_DIR路径)
   
    2) 修改GFX_Linux_KM目录下Makefile文件,更改一下路径
    KERNELDIR:内核路径(最好用当前目标机运行的内核的源文件路径)
   
    3) 编译:make OMAPES=5.x
    安装:make OMAPES=5.x  install //如果“modules.order 不存在”,在内核目录运行:make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules
   
    4) TARGETFS_INSTALL_DIR下回出现opt目录(如果上面1)最后一点的EXEC_DIR没有修改)、etc目录,将这两个目录拷贝到/根目录下面
    执行:
    cp -dr etc /
    cp -dr opt /
    /etc/init.d/omap-demo 
   
  5) 可以将usr/local/bin路径添加到path路径中(此目录中有一些测试代码),此时可以运行在host主机上,生成的例子(GFX_Linux_SDK下)
 
2、配置QT(主机上)
   1) 下载qt-embedded-linux-opensource-src-4.5.3(以下简称qt目录),下载linux-TIarmv7-sgx-g++(官方提供)需要根据实际情况,修改qmake.conf的参数
    QT_INSTALL_DIR       = QT目录   //安装的/mnt/usr_fs/tmp/gaoyz/omap35x_graphics)
export SGX_SDK_ROOT        = Graphics_SDK目录   //dvsdk下

   
   2)  到qt目录下执行如下配置命令:
       ./configure -prefix /mnt/usr_fs/tmp/gaoyz/omap35x_graphics/  -embedded arm -xplatform qws/linux-TIarmv7-sgx-g++ -depths 16,24,32 -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -plugin-mouse-linuxtp -plugin-mouse-pc -fast -opengl es1 -qt-gfx-transformed -qt-gfx-vnc -qt-gfx-linuxfb -qt-gfx-multiscreen -plugin-gfx-powervr -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT  -v
make
 ./configure -prefix /usr/local/Trolltech/Qt_4_5_3_ES2_INPUT  -embedded arm -xplatform qws/linux-TIarmv7-sgx-g++ -depths 16,24,32 -debug -qt-mouse-pc -qt-mouse-linuxtp -plugin-mouse-linuxtp -plugin-mouse-bus -qt-mouse-bus -plugin-mouse-vr41xx -qt-mouse-vr41xx -plugin-kbd-vr41xx  -qt-kbd-vr41xx  -plugin-mouse-pc -fast -opengl es2 -qt-gfx-transformed -qt-gfx-vnc -qt-gfx-linuxfb -qt-gfx-multiscreen -plugin-gfx-powervr -D QT_QWS_MOUSE -D QT_QWS_CLIENTBLIT -D QT_QWS_CURSOR  -v //大约1个半小时
make install //程序安装到/mnt/usr_fs/tmp/gaoyz/omap35x_graphics/目录下面(板子上的qt目录)

   3)先配置环境:
    export PATH=qt目录/bin:$PATH
export LD_LIBRARY_PATH=qt目录/lib:$LD_LIBRARY_PATH
 编译自己的程序
  qmake -project //如需要用opengl,需在生成的.pro文件中,添加"QT += opengl"字样
  qmake -spec qws/linux-TIarmv7-sgx-g++  
  make
 
3、执行qt程序:
   1) 配置路径(在板子上)
    export LD_LIBRARY_PATH=qt目录/lib:/lib:/usr/lib:/usr/local/lib
export QT_PLUGIN_PATH=qt目录/plugins:/lib:/usr/lib:/usr/local/lib
export PATH=/usr/local/bin:$PATH
/etc/init.d/rc.pvr start //加载驱动

2)./app -qws -display powervr






以下是在执行过程可能会遇见的问题:


1.找到powervr的驱动的加载办法
export QT_PLUGIN_PATH=/lib:/usr/lib:/usr/local/lib:/mnt/usr_fs/tmp/gaoyz/plugins 


2.CONFIG_OMAP2_DSS=y


参见:http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/41403.aspx
参照omap3_evm_defconfig,修改omap3_beagle_defconfig
\\192.168.1.117\dvsdk\usr\local\dvsdk\psp\linux-2.6.32-psp03.00.01.06.sdk\arch\arm\configs
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap3_beagle_defconfig   // i use beagle not evm
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules


3、'pOMAPLFBVSyncISRHandle' undeclared (first use in this function) 
应先编译内核


4、qtembedded 4.5.3 配置参数
./configure -prefix /mnt/usr_fs/tmp/gaoyz/omap35x_graphics/  -embedded arm -xplatform qws/linux-TIarmv7-sgx-g++ -depths 16,24,32 -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -plugin-mouse-linuxtp -plugin-mouse-pc -fast -opengl es1 -qt-gfx-transformed -qt-gfx-vnc -qt-gfx-linuxfb -qt-gfx-multiscreen -plugin-gfx-powervr -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT  -v
linux-TIarmv7-sgx-g++:官方提供,需要根据实际情况,修改qmake.conf的参数


5、不选用4.7版本的qt,和官方提供的新的


6、无法安装omaplfb.ko   pvrsrvkm.ko驱动
先检查:检查CONFIG_OMAP2_DSS=y;
http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/109667.aspx#387786
然后,核对是否需要修改board_omap3beagle.c文件,增加dvi设备


7、在配置QT过程中出错
分析出错原因,尝试在qmake.conf中使用绝对路径


8、blit_16
http://groups.google.com/group/beagleboard/browse_thread/thread/06354a2c618365d6
http://groups.google.com/group/beagleboard/browse_thread/thread/58c2b1b7bdd248c0/5b6681f9fffc7181?#5b6681f9fffc7181


9、检查脚本:eglinfo


10、尝试使用opengl 1.0 1.1版本,demo跑不起来,提示opengl的版本不对


11、使用opengl 2.0版本,hello 可以跑起来;我们的QT程序在跑的过程中,遇到以下信息
"QGLContext::chooseContext(): The screen is not a QGLScreen
QEglContext::chooseConfig(): Could not find a suitable EGL configuration 
Requested: "type=es2 rgba=1,1,1,-1 surface-type=window level=0" 
Available: 
"id=1 type=es1,vg rgba=5,6,5,0 depth=24 stencil=8 surface-type=window,pbuffer,vg-colorspace-linear,vg-alpha-format-pre
    caveat=none level=0 max-pbuffer-size=2048x2048
    native-renderable=false visual-id=0 visual-type=0
    Illegal instruction
    
12 hellow_ges2 没显示