QT5.8简单移植到海思3521a(不带opengl和tslib)

一、准备源码以及工具
1、qt-everywhere-opensource-src-5.8.0.tar.gz下载地址:
http://download.qt.io/archive/qt/5.8/5.8.0/single/
2、安装海思sdk以及交叉编译器
(1)、hi3520D SDK包位置
在”hi3520D_V100R001***/01.software/board”目录下,您可以看到一个 hi3520D_SDK_Vx.x.x.x.tgz 的文件,
该文件就是hi3520D的软件开发包。

(2)、解压缩SDK包
在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf hi3520D_SDK_Vx.x.x.x.tgz ,
解压缩该文件,可以得到一个hi3520D_SDK_Vx.x.x.x目录。

(3)、展开SDK包内容
返回hi3520D_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。
如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。
注意:高版本的Ubuntu记得修改sdk.unpack和sdk.cleanup.
将#/bin/sh 改成 #/bin/bash

(4)、在linux服务器上安装交叉编译器
1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):
进入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv300-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
2)安装glibc交叉编译器(注意,需要有sudo权限或者root权限,暂时不支持glibc版本):
进入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv400-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
3)执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。
4)最后查看交叉编译器是否安装成功:
arm-hisiv300-linux-g++ -v
注意:1),2)中选择一个安装就好。
3、编译mmp/sample/hifb 目录
sample_hifb.c例程是用来开启/dev/fb0,这样,移植到开发板的qt程序才能输出到与开发板连接的显示器显示。但是,sample_hifb.c例程必须要修改才能使用。修改地方:
1)main函数
main函数里面本来有分支选择,修改成直接进入第四分支。
2)SAMPLE_HIFB_Compression()函数(就是1)中的第四分支函数体)
注释掉while(1)中的所有代码,只留while(1){};stPubAttr.enIntfType = VO_INTF_VGA改成stPubAttr.enIntfType = VO_INTF_HDMI;
3)HI_VOID *SAMPLE_HIFB_COMPRESS(void *pData)函数
禁用压缩模式:将/* 2. open compress */注释下的ioctl函数的第三个参数的值设置成false。然后,在这个ioctl后加上while(1){},使程序不再先后运行。
4)保存退出,make编译,生成sample_hifb, 留用。
4、编译qt源码。
1)在源码目录/qtbase/mkspecs/下面创建linux-arm-hisiv300-g++目录,然后将linux-arm-gnueabi-g++目录下面的东西全部拷贝到linux-arm-hisiv300-g++目录
2)修改linux-arm-hisiv300-g++目录下的qmake.conf文件,将里面的arm-linux-gnueabi-全部改成arm-hisiv300-linux-,再在QMAKE_INCREMENTAL_STYLE = sublib下面添加:
QT_QPA_DEFAULT_PLATFORM = linuxfb #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
在modifications to linux.conff注释上面添加:
QMAKE_CFLAGS += -fpermissive
QMAKE_CXXFLAGS += -fpermissive
保存退出
3)在源码目录下
./configure ./configure -v -prefix /opt/Qt5.8-Arm -shared -xplatform linux-arm-hisiv300-g++ -linuxfb -qt-libpng -qt-libjpeg -make libs -opensource -make libs -sql-sqlite -qt-zlib -pch -no-opengl -nomake examples -no-sse2 -no-cups -no-glib -no-xcb -nomake tools -nomake tests
其中/opt/Qt5.8-Arm是安装目录,自定义;如果需要opengl,就将-no-opengl改成-opengl;如果需要tslib,就在末尾-Itslib头文件路径 -Ltslib库文件路径。
make
make install
5,安装nfs服务器
参考博客:https://www.cnblogs.com/MoreExcellent/p/7222895.html

二,准备就绪,就开始做移植
1、挂在/opt目录到/xxx/xxx/nfsroot(这个目录也是自定义的)
给开发板配置网口:ifconfig eth0 192.168.1.xxx
测试下PC机与板子是否网通:不管哪边ping一下就行
挂载:mount -t nfs 192.168.xxx.xxx(pc机):/xxx\xxx/nfsroot /opt(自己决定) -o nolock,这样PC和开发板就能共享文件啦。
2、将一中编译安装的Qt5.8-Arm整个目录,sample_hifb,mmp/ko拷贝到nfsroot,然后在开发板的/opt目录下就会看到这些文件。
3、配置qtreator使其可以编译能载开发板上运行的qt程序
参考博客:https://blog.csdn.net/guoguoshizhuo/article/details/19181463第三步
4、将编译好的qt程序,如UNtitle拷贝到nfsroot
5、配置开发板的环境变量 vi /etc/profile
LD_LIBRARY_PATH=/opt/Qt5.8-Arm/lib
export LD_LIBRARY_PATH

PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin:/opt/Qt5.8-Arm/bin
export PATH

QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_QPA_PLATFORM

QT_QPA_PLATFORM_PLUGIN_PATH=/opt/Qt5.8-Arm/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH

Qt_QPA_FONTDIR=/opt/Qt5.8-Arm/lib/fonts
export Qt_QPA_FONTDIR
保存退出
source /etc/profile
6、安装驱动程序
cd ko
./load3521a -i
7、执行qt程序
./untitle

最后中文无法显示问题,参照博客:http://blog.csdn.net/jiang_dlut/article/details/51829749

你可能感兴趣的:(ubuntu)