您的位置:首页 > 编程语言 > Qt开发

qt4.6.3移植以及一线tslib移植

2015-10-17 15:29 513 查看
准备:

qt4源码友善提供的arm-qte-4.6.3-20100802.tar.gz

编译器版本4.4.3.可以运行arm-linux-gcc -v查看一下。

(一)。拷贝arm-qte-4.6.3-20100802.tar.gz,然后解压,进入arm-qte-4.6.3

(1)。mini2440为我们的QtE-4.6.3 的编译制作了现成的脚本 build-all,所以,直接./build-all

这个过程将十分漫长。

查看build-all脚本

#/bin/bash

rm -fr qt-everywhere-opensource-src-4.6.3

rm -fr /usr/local/Trolltech/QtEmbedded-4.6.3-arm

tar xfvz qt-everywhere-opensource-src-4.6.3.tar.gz

cd qt-everywhere-opensource-src-4.6.3

echo yes | ./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -no-mouse-linuxtp

make && make install

cd /usr/local/Trolltech/QtEmbedded-4.6.3-arm

(主要看./configure 的配置,由于qt程序在开发板上运行无法使用触屏我将 --qt-mouse-pc去掉了)

(2).当顺利执行完毕,再运行 mktarget 脚本,

./mktarget

将会从编译好的目标文件目录中(usr/local/Trolltech/QtEmbedded-4.6.3-arm/),提取出必

要的 QtE-4.6.3 库文件和可执行二进制示例,并打包为 target-qte-4.6.3.tgz。

(3).把上面这个包在开发板的根目录下解压,就可以使用了,如下命令

#tar xvzf target-qte-4.6.3.tgz –C /

这样,

就会在/usr/local/目录下创建生成 Trolltech 目录,

它里面包含了运行所需要的所有库文件和可执行程序。

同时,我在板子上的/usr/local/Trolltech/QtEmbedded-4.6.3-arm/下建立了bin目录(我的这个原来没有bin这个目录)

(4)一般不提倡用(2),(3)因为库太占资源了,一般开发板上的动态库,我们都是只cp需要的库。库的路径就在(usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/),一般我们的字体库在(usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/fonts/)我们开发板一般用的是文泉驿字体。直接下载解压到开发板的相应目录下即可。

(二)。 安装触摸屏校验工具

(1) tslib-1.4.tar.gz放到一个目录下,比如/opt目录下。接着执行命令如下:

tar zxvf tslib-1.4.tar.gz 然后

(2) Source autogen.sh

(3)echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

(4)./configure --prefix=/usr/local/tslib --host=arm-linux --cache-file=arm-linux.cache --target=arm-linux

提示:--prefix=/usr/local/tslib这个选项是安装路径,这个路径一定要和最后开发板上的tslib的路径一致。否则会提示找不到配置文件(ts.conf)。

(4)在然后:make

(5)以上无错误后,make install

如果以上步骤没错,则可以在/usr/local/tslib下出现我们需要的库文件,这些库文件我们移植时会用到将其全部拷贝到开发板的/usr/local/tslib下。

(6)用命令执行:vi /etc/profile,在里面增加如下内容:

export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm

export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm

export TSLIB_ROOT=/usr/local/tslib

export PATH=$QTDIR/bin:$PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

export QWS_DISPLAY=LinuxFb:/dev/fb0

export QWS_SIZE=240x320

export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY

(7)修改mini2440上/usr/local/tslib/etc/ts.conf 文件:把第二行# module_raw input 前面的#和空格去除,保存退出。

得到的配置文件如下:

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

然后,进行触摸屏的校正:

cd /usr/local/tslib/bin

./ts_calibrate

板子上的中文正常显示:

(6)mini2440上显示字体时的环境变量设置:

首先,要保证板子的/usr/local/TR../Q../lib/fonts(这个路径根据自己的实际情况而定)下有font_wenquanyi文泉驿字体,没有的话从网上下一个

然后路径根据自己的实际情况:

我的路径是是/usr/local/TR../Q../lib/fonts,把该路径加入到/etc/profile

export QT_QWS_FONTDIR=/usr/local/TR../Q../lib/fonts

然后source /etc/profile

这下,OK了

(三)补友善的一线触屏tslib移植

(1)下载tslib源码

git clone https://github.com/kergoth/tslib
(2)打补丁(tslib-one-wire.patch 参考http://blog.csdn.net/openme_openwrt/article/details/7546796)

cp tslib-one-wire.patch tslib/

patch -p1 <tslib-one-wire.patch

(补丁有的没打上,查看补丁文件,手动补上就行了)

(3)编译的地址--prefix=和移植到开发板的路径要一致,不要--prefix=$PWD/install-tslib(否则提示打不开ts.conf文件)。

./configure --host=arm-linux --target=arm-linux --prefix=/usr/local/tslib

(4)make

make install

(5)修改后ts.conf文件内容如下:

module_raw one_wire_ts_input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: