MiniGUI移植过程

此次miniGUI的移植是移植的比较老的版本,用于性能较弱的嵌入式系统中,移植的minigui版本为MiniGUI 3.0.12,在此将移植过程记录下来,方便以后取用。
前言:嵌入式芯片采用的是全志科技的T3芯片,编译服务器采用的是ubuntu14.04.4服务器版,在进行移植前一定要进行T3的镜像的编译工作,也就是说在移植minigui之前要先把开发板提供的镜像源码顺利完成一次编译,因为移植所需要的tslib、freetype、zlib等库需要进行编译,否则要自行进行tslib等库的移植,需要移植的东西太多,但是在编译镜像源码的时候在buildroot中要去除png、jpeg的库的支持,去除qt库的支持,其他没必要保留的东西都不要保留了
一、下载所需要的源码包
minigui-res-be-3.0.12.tar.gz
libminigui-gpl-3.0.12.tar.gz
libmgutils-1.0.4.tar.gz
libmgplus-1.2.4.tar.gz
jpegsrc.v7.tar.gz
libpng-1.2.37.tar.gz
minigui相关的可以去MiniGUI官网下载,只需要下载上面列出的三个源码包即可http://www.minigui.org/download,其余的都可以百度
二、源码编译工作
将所有的源码包在服务器上进行解压,并且配置好交叉编译工具链,在完成开发板镜像编译之后会在开发板编译路径下面找打交叉编译工具链
~/cqr40_linuxqt_bv3s/buildroot-2017.02.3/output/host/usr/bin/
这是又企划科技提供的T3芯片开发吧的镜像源码
1、编译jpegsrc
进入路径jpegsrc路径下面,打开configure文件,在文件头添加如下内容,这主要是添加交叉编译工具链,如果没有将编译工具链所在的路径放到环境变量中则下面要填写绝对路径,否则编译的时候回显示找不到命令
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar

然后执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install

2、编译libpng-1.2.37
进入路径jpegsrc路径下面,打开configure文件,在文件头添加如下内容。与编译jpeg类似
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar
CFLAGS=-I/opt/build/include
CPPFLAGS=-I/opt/build/include
CXXFLAGS=-I/opt/build/include
LDFLAGS=-L/opt/build/lib

然后执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install

3、编译minigui-res-be-3.0.12.tar.gz
进入路径之后直接执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install
这个只是资源文件,不牵扯源码编译所以不必提供交叉编译工具链的路径

4、编译libminigui-gpl-3.0.12
这是minigui 的核心库,和镜像源码有些不匹配的地方,不要使用镜像源码提供的png和jpeg的源码,在编译镜像源码的buildroot中一定要将他们去掉,但是zlib、tslib和freetype2可以保留
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar
CFLAGS=-I/opt/build/include
CPPFLAGS=-I/opt/build/include
CXXFLAGS=-I/opt/build/include
LDFLAGS=-L/opt/build/lib

执行命令
./configure
–prefix=/opt/build/
–host=arm-linux
–target=arm-linux
–build=i386-linux
–with-osname=linux
–with-targetname=fbcon
–enable-autoial
–disable-vbfsupport
–enable-tslibial
–enable-videomstar
–enable-videofbcon
–disable-pcxvfb
–disable-videomstar --enable-pngsupport --enable-jpgsupport --disable-screensaver
–disable-splash
–enable-gb18030support
–enable-ttfcache
–with-ttfsupport=ft2
–with-ttfcachesize=512
–with-ft2-includes=/opt/cqr40_linuxqt_bv3s/buildroot-2017.02.3/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/freetype2/

make -j8
make install
附注:如果需要自提ttf类型的要增加–enable-ttfcache\ --with-ttfsupport=ft2\ 还需要额为提供freetype2的include的地址,这个在交叉编译工具链中有,但是会提示有一个头文件找不到,–with-ft2-includes=path 配置上即可,上面配置选项中最后一个就是。
5、编译libmgplus-1.2.4库
进入路径libmgplus-1.2.4路径下面,打开configure文件,在文件头添加如下内容。与编译jpeg类似
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar
CFLAGS=-I/opt/build/include
CPPFLAGS=-I/opt/build/include
CXXFLAGS=-I/opt/build/include
LDFLAGS=-L/opt/build/lib

然后执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install

6、复制资源文件
完成以上的编译后所需要的文件可开发用的库都已经完成,全部在/opt/build/路径下面,在此路径下面include 文件夹存放用来开发的头文件,lib文件存放完成编译的库文件,etc路径下面是MiniGUI的配置文件。
将etc下MiniGUI.cfg文件拷贝到开发吧的/etc路径下面,将lib文件中的所有库文件拷贝到开发板中/lib路径下面即可,现在已经完成了移植。

三、对项目进行配置
以上是程序的移植,光是这些库还是不能启用起来,需要对配置文件和库需要的资源进行拷贝
1、拷贝配置文件,MiniGUI.cfg文件的拷贝
2、在/opt/build/share路径下面是所需要的资源,例如图片文件和字库文件等,需要拷贝到开发板上,路径随意,只需要在cfg的配置文件里面写明即可
3、修改MiniGUI.cfg配置文件
1、开头system的配置 修改成如下,采用fb设备,触摸屏采用tslib。触摸设备为/dev/input/event4,这些事根据全志镜像中Qt的配置找到的

23 [system]
24
25 gal_engine=fbcon
26 defaultmode=800x600-16bpp
27
28
29 ial_engine=tslib
30 mdev=/dev/input/event4
31 mtype=IMPS2

2、关于分辨率的配置
33 [fbcon]
34 defaultmode=800x600-32bpp

3、添加自定义字体,如果不需要可以保持默认,我这里添加了73行中msyh字体的支持
66 [systemfont]
67 font_number=6
68 font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
69 font1=-FixedSys-rrncnn--16-ISO8859-1
70 font2=-Courier-rrncnn--16-ISO8859-1
71 font3=-SansSerif-rrncnn--16-ISO8859-1
72 font4=-System-rrncnn--16-ISO8859-1
73 font5=ttf-msyh-rrncnn-24-24-utf-8

4、添加字体库所在的路径 在下面写上所需要的库的路径地址即可
93 [truetypefonts]
94 font_number=6
95 name0=ttf-arial-rrncnn-0-0-ISO8859-1
96 fontfile0=/storage/share/minigui/res/font/arial.ttf
97 name1=ttf-times-rrncnn-0-0-ISO8859-1
98 fontfile1=/storage/share/minigui/res/font/times.ttf
99 name2=ttf-msyh-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
100 fontfile2=/storage/share/minigui/res/font/msyh.ttf
101 name3=ttf-simfang-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
102 fontfile3=/storage/share/minigui/res/font/simfang.ttf
103 name4=ttf-stcaiyun-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
104 fontfile4=/storage/share/minigui/res/font/stcaiyun.ttf
105 name5=ttf-simhei-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
106 fontfile5=/storage/share/minigui/res/font/simhei.ttf

5、添加资源库所在的路径,就是编译minigui-res-be-3.0.12所产生的文件
103 [cursorinfo] (不修改运行会报错)
104 # Edit following line to specify cursor files path
105 cursorpath=/usr/local/share/minigui/res/cursor/
8. 131 [resinfo](不修改运行会报错)
9. 132 respath=/usr/local/share/minigui/res/
10.
以上为为整个项目进行MiniGUI库的整体移植过程,这些是为了匹配原有的项目进行的移植,所有的操作都为兼容之前的项目所进行的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值