Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3518404
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: C/C++

2008-06-23 13:05:17

交叉编译qtopia-2.2.0(2.2.0版本里面集成了qt\tmake\qtopia)

解压qtopia-free-src-2.2.0.tar.gz,将其mv   qtopia-free-2.2.0

/root/host /qtopia-free-2.2.0

     cd /root/host/qtopia-free-2.2.0

     ./configure

     make

得到本机运行版本uic 工具

解压qtopia-free-src-2.2.0.tar.gz 将其mv /root/2410s/qtopia-free-2.2.0

     cp /root/host/qtopia-free-2.2.0/qt2/bin/uic

/root/2410s/qtopia-free-2.2.0/qt2/bin/

     如上所述arm-linux-gcc 已安装到/usr/local/arm/2.95.3/bin/,并设置$PATH变量

     export PATH=/usr/local/arm/2.95.3/bin:$PATH

     建立PDA安装目录

     mkdir /root/2410s/qtopia (make install的安装目录)

     cd /root/2410s/qtopia-free-2.2.0

      修改文件

     vi /root/2410s/qtopia-free-2.2.0/qt2/src/kernel/qwsmouse_qws.cpp

     其中有3/ect/pointercal 将其改为/mnt/yaffs/pointercal

     (这里因为我的根文件系统不可写,默认的/etc下不可写,所以在校准的时候把pointercal方到了/mnt/yaffs/,这里按照你自己校准文件的存放路径改即可,如果是可读根文件系统,就不用修改了)

修改文件

     vi /root/2410s/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf

     将此行

     QMAKE_LIBS_QT = -lqte

     修改为

     QMAKE_LIBS_QT = -lqte -lpng -lts -lz -luuid -ljpeg

:

     export QTDIR=/root/2410s/qtopia-free-2.2.0/qt2

     export QPEDIR=/root/2410s/qtopia-free-2.2.0/qtopia

     export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH

     export TMAKEDIR=/root/2410s/qtopia-free-2.2.0/tmake

     export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

****************

/root/2410s/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h的末尾加上,这是使qt自己支持触摸屏,我也加了。

#define QT_QWS_IPAQ

#define QT_QWS_IPAQ_RAW

***********************8

     cp /root/2410s/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h

/root/2410s/qtopia-free-2.2.0/qt2/src/tools

     cd $QPEDIR/src/libraries/qtopia

     cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp

     cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h

开始configure

     cd /root/2410s/qtopia-free-2.2.0

     ./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 8,16,24,32 -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -no-xft –release -I/root/2410s/arminclude -L/root/2410s/armlib -lpng -lts -lz –luuid -ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda –displaysize 640x480 -I/root/2410s/arminclude -L/root/2410s/armlib

-prefix=/root/2410s/arm/qtopia'

最后

     make

     make install

/root/2410s/下面有一个qtopia目录,是所需的文件

/root/2410s/qtopia/lib/目录下面看到libqte.so libqte.so.2 libqte.so.2.3

libqte.so.2.3.12 这四个文件. 这是编译qte的库文件

    

     拷贝库与触摸屏校准/测试程序

     mkdir /root/2410s/qtopia/bin/tests

     mkdir /root/2410s/qtopia/lib/ts

     cp /root/2410s/tslib-1.3/tests/.libs/ts_* /root/2410s/qtopia/bin/tests

     cp /root/2410s/tslib-1.3/src/.libs/libts-0.0.so.0* /root/2410s/qtopia/lib

     cp /root/2410s/tslib-1.3/src/.libs/libts.so /root/2410s/qtopia/lib

     cp /root/2410s/tslib-1.3/plugins/.libs/*.so /root/2410s/qtopia/lib/ts

     cp /root/2410s/armlib/*.so* /root/2410s/qtopia/lib   //所有需要的支持的库文件

qtopia复制到共享文件夹/root/share/

     cp -r /root/2410s/qtopia /root/share/

注意 ::::   把文件/root/2410s/tslib-1.3/etc/ts.conf文件拷贝到你的板子的/etc/目录下

cp /root/2410s/tslib-1.3/etc/ts.conf /root/share

****************

首先要建立宿主机和开发板的通讯,假设本机的ip 地址为192.168.0.155 并且/root/share 为共享文件夹。

*******************

/root/share设置为共享目录,可通过nfs来访问

配置NFS(网络文件系统)

使计算机系统通过网络访问其它计算机系统的目录和文件

远程访问控制

修改etc/export指定文件夹共享可访问

最后一行加上

/root/share 192.168.0.* (rw,sync,no_root_squash)

共享目录 可访问主机ip地址 访问方式

   执行minicom

minicom

   启动nfs服务(也可在一个文件中加上语句,不用每次敲击命令)

   nfs /etc/rc.d/init.d/nfs start

在开发板终端输入命令

   ifconfig eth0 192.168.0.12 (如果开发板不能自动得到ip,需要设置)

    mount t nfs o nolock 192.168.0.155:/root/share /mnt/nfs 将文件复制到开发板上

mount t nfs o nolock 192.168.0.155:/tmp/qtmp /tmp

(因为qte在板上跑会创建/tmp/qtembedded-0,而我的根文件系统为只读文件系统cramfs,这句是为了使/tmp可写,要不然会出现错误Cannot create Qt/Embedded data directory: /tmp/qtembedded-0。如果是可写文件系统不用这一步。)

   把文件/root/share/tslib/etc/ts.conf文件拷贝到你的板子的/mnt/yaffs目录下

    cp /mnt/nfs/ts.conf /mnt/yaffs

(默认是/etc目录下面的,我这里需要修改也是因为根文件系统不可写的缘故)

运行[以下操作在目标板上进行]:

     在你的板子上设置运行环境变量

export QTDIR=/mnt/nfs/qtopia

export QPEDIR=/mnt/nfs/qtopia

export QWS_MOUSE_PROTO=TPanel:/dev/touchscreen/0raw

export LD_LIBRARY_PATH=/mnt/nfs/qtopia/lib

export TSLIB_TSEVENTTYPE=H3600 tslib中的设备结构体定义

export TSLIB_CONSOLEDEVICE=none tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty

export TSLIB_FBDEVICE=/dev/fb0 指定帧缓冲设备

(我的开发板上只有/dev/fb/0,所以做了一个链接 ln -s /dev/fb/0 /dev/fb0)

export TSLIB_TSDEVICE=/dev/touchscreen/0raw指定开发板对应触摸屏设备节点文件

export TSLIB_CALIBFILE=/mnt/yaffs/pointercal指定触摸屏校准文件pintercal的存放位置

(默认是在/etc下面,可写文件系统为/etc/pointercal

export TSLIB_CONFFILE=/mnt/yaffs/ts.conf 指定TSLIB配置文件的位置

export TSLIB_PLUGINDIR=$QTDIR/lib/ts 指定触摸屏插件所在路径

***************************

如果为可写根文件系统,可以修改开发板/etc/profile文件,将这些环境变量写入,就不用每次设置了

*****************************

    

校准屏幕(5点校准)

     cd /mnt/nfs/qtopia/bin/tests

     ./ts_calibrate

    会陆续在LCD4个角和中点出现光标,点击光标进行校准,生成校准文件

     再运行测试

    /ts_test

     这时LCD上出现光标,你的手指点哪里光标就会跟到哪里才成功

     (如果有问题,参考终端的打印信息,坐标的值)

    

需要时序信息。如果是可写rootsf,新建/urs/share文件夹,按照上面的方法,将本机/root/2410s/qtopia/etc/zoneinfo文件夹拷贝到/urs/share/ 如果是只读rootfs,要重新制作镜像文件烧写(还需要支持输入法文件,运行pda时会有warnig

     运行PDA

      cd ..

    ./qpe

出现”Tap anywhere to continue”,然后进行qpe5点校准,进入qpe

推荐论坛

Qt/Qtopia中文论坛

中国Linux论坛

阅读(931) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~