如何在TI的AM335x上面使用SGX加速的有OpenGL支持的QT ti sdk am335x evm

2014年2月11日增加:这篇文章讲的是QT4.8,QT5.0的效果更好,请看这篇文章。
TI官方的指南请看这里,因为发布时间的关系,这里面已经有很多和最新的软件包不匹配的地方。经过我的努力,我把这个指南中间复杂的部分给做到Buildroot里面去了,基本上实现了“傻瓜式”编译,可通过菜单选择,简单地实现QT下使用SGX硬件加速的OpenGL。
由于本文还涉及到了SGX硬件驱动程序模块的编译,所以看上去还会比较长,但这部分内容没有什么难度。转载请注明来自EE小站,cosine@126.com。

简单的梳理下:
TI的Wiki提供了U-boot和内核的说明,地址点这里。TI的SDK里提供了制作好的文件系统,但是太庞大了,可以下载Buildroot自己做一个。
补丁的地址在这里。这个补丁是我给Buildroo【】t 2013.05做的,与之相配的TI图形SDK在这里,下“Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin”就可以。应该2013.05之后一段时间Buildroot版本都可以使用这个补丁。
可以参照TI的指南,地址点这里。也可以直接看本文。


如何在TI的AM335x上面使用SGX加速的有OpenGL支持的QT ti sdk am335x evm
具体过程如下:
假设Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin下载到了/home/cdu,那么
~ # cd /home/cdu/home/cdu # chmod 744./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin/home/cdu #./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin

会出来一个交互的安装界面,安装的时候选择“8.x”那项(因为处理器是AM335x),并且把SDK安装到,例如/home/cdu/core335x_bsp/graphics_sdk_4_10_00_01安装完后,打开/home/cdu/core335x_bsp/graphics_sdk_4_10_00_01/Rules.make
假设你的ARM交叉编译器安装在/usr/local/arm/4.7.3-2,前缀是arm-none-linux-gnueabi-,你的内核在/home/cdu/core335x_bsp/linux-3.2.21,那么就Rules.make中的内容修改成这样
# Set home area (ex /home/user/)HOME=/home/cdu/core335x_bsp
# Set Toolchain path (ex/home/user/toolchain/arago-2011.09/armv7a)CSTOOL_DIR=/usr/local/arm/4.7.3-2
# Set Tool chain prefix (ex arm-arago-linux-gnueabi- )CSTOOL_PREFIX=arm-none-linux-gnueabi-
# Set kernel installation path ( ex/home/user/linux-04.00.01.13 )KERNEL_INSTALL_DIR=/home/cdu/core335x_bsp/linux-3.2.21
# Set Target filesystem path ( ex /home/user/targetfs )TARGETFS_INSTALL_DIR=$(DESTDIR)
# Set installation folderGRAPHICS_INSTALL_DIR=$(HOME)/graphics_sdk_4_10_00_01

然后就可以编译了
/home/cdu # cdcore335x_bsp/graphics_sdk_4_10_00_01/home/cdu/core335x_bsp/graphics_sdk_4_10_00_01 #makeDESTDIR=/home/cdu/nfsrootOMAPES=8.x

假设你的根文件系统在/home/cdu/nfsroot,那么请确保有/home/cdu/nfsroot/etc和/home/cdu/nfsroot/etc/init.d这两个目录,否则安装时候会出错,接下来安装
/home/cdu/core335x_bsp/graphics_sdk_4_10_00_01 # makeDESTDIR=/home/cdu/nfsroot OMAPES=8.x install

这样,SDK库就编译好了,接下来把内核的模块安装到文件系统里,假设内核在/home/cdu/core335x_bsp/linux-3.2.21,已经配置并且编译好了
/home/cdu/core335x_bsp/graphics_sdk_4_10_00_01 #cd/home/cdu/core335x_bsp/linux-3.2.21/home/cdu/core335x_bsp/linux-3.2.21 # makeARCH=armmodules_installINSTALL_MOD_PATH=/home/cdu/nfsroot

然后需要把内核驱动模块增加到依赖表中,位置在/home/cdu/nfsroot/lib/modules/3.2.21/kernel/drivers/modules.dep,在里面增加这两行:
extra/omaplfb.ko:extra/pvrsrvkm.ko:

接下来就可以用Buildroot制作文件系统了,假设Buildroot的压缩包buildroot-2013.05.tar.bz2下载到了/home/cdu/core335x_bsp,我做的Buildroot补丁buildroot-am335x.patch下载到了/home/cdu/core335x_bsp
/home/cdu/core335x_bsp/linux-3.2.21 #cd/home/cdu/core335x_bsp/home/cdu/core335x_bsp# tar xf buildroot-2013.05.tar.bz2/home/cdu/core335x_bsp #cpbuildroot-am335x.patchbuildroot-2013.05/home/cdu/core335x_bsp # cd buildroot-2013.05/home/cdu/core335x_bsp/buildroot-2013.05 # patch-p1 < buildroot-am335x.patch/home/cdu/core335x_bsp/buildroot-2013.05 # makemenuconfig

然后就可以进行配置,QT在Package Selection for the target>Graphic libraries and applications(graphic/text) > Qt,AM335x的OpenGL支持设置选项在Qt下的Graphicsdrivers,必须先选中Linux Framebuffer,会出现AM335x SGX OpenGLDirver,选中并在下方输入图形SDK的路径,例如/home/cdu/core335x_bsp/graphics_sdk_4_10_00_01,其他的选项按需选择即可,接下来就可以编译
/home/cdu/core335x_bsp/buildroot-2013.05 # make

编译过程会自动下载所需的各种软件包,如果没有选中Qt下的Approve freelicense,中间会提示选择授权类型,编译完成之后,将映像释放到根文件系统里
/home/cdu/core335x_bsp/buildroot-2013.05 #tar xfoutput/image/rootfs.tar -C /home/cdu/nfsroot

之后,打开/home/cdu/nfsroot/etc/init.d/powervr.ini,把这里面改成
[default]WindowSystem=libpvrQWSWSEGL.so

将/home/cdu/nfsroot下的文件系统挂载到目标板上,启动以后,输入用户名root登陆,运行
# /etc/init.d/335x-demo# mv /etc/init.d/rc.pvr /etc/init.d/S99powervr

至此,这个文件系统就支持QT使用SGX硬件加速的OpenGL了。
如果你在配置QT的时候选择了Compile and install demos and examples (withcode),那么你可以找到/home/cdu/core335x_bsp/buildroot-2013.05/output/build/qt-4.8.4/examples/opengl/hellogl_es2/hellogl_es2这个文件,把它拷贝到根文件系统里,运行
# hellogl_es2 -qws -display powervr

可以检验是否可以正常工作。
需要说明一下,为了让QT支持OpenGL,AM335x图形处理器的厂家(不是TI,是ImaginationTechnologies)提供的插件程序让QT的动态链接库禁止鼠标光标显示。现象就是,虽然看不到鼠标,但是还可以用。这个目前还没有解决方法,因为貌似图形处理器是直接操作FrameBuffer的,有鼠标估计程序不好写,性能也会下降吧。如果你要用鼠标的话,需要自己写个显示鼠标光标的程序。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/255207.html

更多阅读

如何在unity3d中创建天空 unity3d 天空盒子

如何在unity3d中创建天空——简介我们玩各种各样的网络游戏,都会给人一种感觉,那就是觉得这个游戏世界似乎很大、很宽广。这里主要是因为天空盒的原因。有了天空盒,会突然让玩家觉得,这个游戏世界很美,很大。这里简单介绍一下如何在unity

Excel教程:如何在Excel中自动生成人民币大写

Excel教程:如何在Excel中自动生成人民币大写——简介在Excel中使用单元格设置--特殊--中文大写数字生成的中文大写,不符合中国人对人民币大写数额的书写习惯。比如132.57,使用该设置生成的是:壹佰叁拾贰.伍柒,如何才能生成符号中国人书写

如何在iTunes下载好听的歌曲 2016好听歌曲打包下载

如何在iTunes下载好听的歌曲——简介iTunes作为苹果设备的官方管理工具,除了可以帮助手机用户完成iOS固件升级外,同时还可以下载一些来自国外的好听音乐,本经验就会告诉大家如何通过iTunes来下载国外音乐。如果大家觉得稍显麻烦,随后第

如何在Word中输入平均数的符号X上加一横X拔 算术平均数符号

如何在Word中输入平均数的符号X上加一横(X拔)——简介在我们常用的公式中平均数的基本都是用X的上面加一根横杠来表示,念作“X拔”。它十分常用,但是在我们用Word书写论文过程中,往往不知道如何在Word中输入这个符号,下面我就介绍一下如何

声明:《如何在TI的AM335x上面使用SGX加速的有OpenGL支持的QT ti sdk am335x evm》为网友山河故人分享!如侵犯到您的合法权益请联系我们删除