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

来源:互联网 发布:什么软件下歌不要钱 编辑:程序博客网 时间:2024/04/30 12:15

准备:

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

0 0
原创粉丝点击