qt210 android 内核移植,FS210开发板上Qt4.7.0移植过程

FS210开发板上Qt4.7.0移植过程

[复制链接]

作者:冯老师,华清远见嵌入式学院讲师。

1. 搭建Qt开发环境平台

1、开发环境:ubuntu 12.04

2、交叉编译链:arm-cortex_a8-linux-gnueabi

3、开发板:FS210

2. Qt移植所需的工具

首先,我们可以从官网下载Qt源码,

1) qt-everywhere-opensource-src-4.7.0.tar.gz  QT的源码包(库)

2) qt-sdk-linux-x86-opensource-2010.05.bin    QT-IDE开发软件

3) tslib-1.4.tar.gz                 QT触摸校验程序

这里我们项目文档中已经给出三个源码。源码位置:该光盘下:\移植相关\QT相关\。

下面介绍一下三个源码的用途:

1)qt-everywhere-opensource-src-4.6.3.tar.gz为Qt的源码包,用来编译各种Qt的库等,这里需要编译三次,分别为x11版本,embedded版本和arm版本(需要应用到不同的平台上);

a. 编译x11版只是为了得到qvfb工具,至于qvfb的用途后面自会说明;

b. embedded版本为Qt 的嵌入式版本,将来和qvfb配合使用;

c.  arm版本很好理解,即要放到开发板上的东西。

2) qt-sdk-linux-x86-opensource-2010.04.bin是开发qt的IDE,这里我用的是linux版本,用它来开发自己的Qt应用。

3) tslib-1.4.tar.gz为触摸屏校正程序,编译qt的arm版本的时候需要tslib的库,tslib编译后会生成触摸屏校正程序(t”s_calibrate),用来给开发板的触摸屏进行校正。

3. tslib的移植

1) 拷贝“该光盘下:\移植相关\QT相关\”目录下的tslib-1.4.tar.gz到linux系统。

2)解压源码:

$ tar -zxvf tslib-1.4.tar.gz

$ cd tslib-1.4

3)执行autogen.sh脚本生产configure文件

这一步需要安装一些工具,如:在ubuntu系统下可以执行:

$ sudo apt-get install autotools-dev

$ ./autogen.sh

如果出现以下错误:则处理如下

./autogen.sh: 4: autoreconf: not found

是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是

因为没有安装automake 工具,(ubuntu 10.04)用下面的命令安装好就可以了。

$ sudo apt-get install autoconf automake libtool

4) 执行confugure生成Makefile文件

a. $ echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

b. $ vi tslib-1.4/plugins/input-raw.c

注释掉 static int check_fd函数中的部分代码,如下所示。

thread-419776-1-1.html

c. $./configure --host=arm-cortex_a8-linux-gnueabi --prefix=/home/linux/tslib --cache-file=arm-linux.cache

说明:

--host :是指你的交叉编译器的前缀;例如:

你的交叉编译器是arm-linux-gcc,则--host=arm-linux。

如果是arm-none-linux-gnueabi-gcc,则--host=arm-none-linux-gnueabi。

--prefix :是你执行make install 的时候编译后生成的可执行文件和库文件以及配置文所安装的目录,这个目录不能和tslib源码目录相同;

--enable-inputapi=no :看你的触摸屏驱动是否支持ioctl操作,如果支持就不用写上,不支持就要添上,如果不添加会有ts_open:Inappropriate ioctol for device configure文件下还有很多选项,你可以执行./configure --help 来进行选择其他项,不过在这里这些选项就够了。

5) 编译安装

$ 修改tests/ts_calibrate.c  修改226行和229行,加上0666

thread-419776-1-1.html

$ make

$ make install

6) 把指定安装目录下的tslib的文件都拷贝到你所挂载的根文件系统下

$ cp -a /home/linux/tslib /source/rootfs

7) 修改/source/rootfs/tslib下的etc目录中ts.conf文件

#vim ts.conf

将第二行的#module_raw input修改成module_raw input

注意一定要顶格写,否则程序执行时会发生读取ts.conf错误

每次重编译tslib并安装后,都要重新修改/etc/ts.conf.

8)导出环境变量

在/source/rootfs/etc/profile中添加如下代码:

export TSLIB_TSDEVICE=/dev/event4

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_PLUGINDIR=/tslib/lib/ts

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=/tslib/etc/ts.conf

export set HOME=/root

export set QPEDIR=/qt-everywhere

export set QTDIR=/qt-everywhere

export set LD_LIBRARY_PATH=/qt-everywhere/lib:/tslib/lib:$LD_LIBRARY_PATH

export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"

export TSLIB_TSEVENTTYPE=H3600

export set QT_QWS_FONTDIR=/qt-everywhere/lib/fonts/

export set PLUGIN_PATH=$QTDIR/plugins

export set PATH=$QPEDIR/bin:$PATH

export PATH LD_LIBRARY_PATH

export TSLIB_ROOT=/tslib

export QWS_SIZE=800x480

说明:

TSLIB_TSDEVICE //触摸屏设备文件名。

TSLIB_CALIBFILE //校准的数据文件,由ts_calibrate校准程序生成。

SLIB_CONFFILE //配置文件名。

TSLIB_PLUGINDIR //插件目录

TSLIB_CONSOLEDEVICE //控制台设备文件名

TSLIB_FBDEVICE //设备名

以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。在以往项目中设备文件名有可能是/dev/event4

9)插上屏后,在开发板上运行/tslib/bin下的测试程序。

把交叉工具链中的库拷贝到/source/rootfs/lib下面

$ cp /home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib/* /source/rootfs/lib

开发板上执行:# /tslib/bin/ts_calibrate

4. 移植QT lib <4.7.0 for arm>

把该光盘下:\移植相关\QT相关\文件夹下的qt-everywhere-opensource-src-4.7.0-beta2.tar拷贝到linux环境下。不能/mnt/hgfs/挂载目录下执行。因为此文件里面有ln 连接文件。Window和linux的磁盘不一样,不支持ln。

1) 解压源码

$ tar xvf qt-everywhere-opensource-src-4.7.0-beta2.zip

2) 改配置文件,指明交叉编译工具链

$ cd qt-everywhere-opensource-src-4.7.0-beta2

$  vi  mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf

thread-419776-1-1.html

3) 配置

$ ./configure -prefix /qt-everywhere -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libtiff -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-gnueabi-g++ -little-endian -qt-freetype -depths 4,8,12,16,24,32 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I/home/linux/tslib/include  -L/home/linux/tslib/lib

备注:红色的为连接TSLIB库的路径,一定要正确。

4) 编译并安装

$ make

$ sudo make install

5) 把prefix制定的安装目录全部拷贝到开发板上

$ cp -a /qt-everywhere /source/rootfs

5、在板子下配置环境变量:(该步骤已做)

1) 修改/source/rootfs/etc/profile添加如下内容:

export LD_LIBRARY_PATH=/qt-everywhere-/lib:$LD_LIBRARY_PATH

export QWS_SW_CURSOR

export QT_QWS_FONTDIR=/qt-everywhere/lib/fonts

(// fonts目录下放字体集,使qt支持中文。(删除其他字体,只留以下三个)

wenquanyi_130_75.qpf  wenquanyi_150_50.qpf  wenquanyi_150_75.qpf)

export set HOME=/root

export set QPEDIR=/qt-everywhere

[本帖最后由 farsight2009 于 2013-11-27 10:34 编辑]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值