移植QtEmbedded-4.5.2 tslib1.4 到 S3C2440

 
移植QtEmbedded-4.5. 2 tslib 1.4 到 S3C 2440
 
开发环境
   操作系统: Vmware6.0 + Ubuntu 8.04。
   交叉编译器:arm-linux-gcc-4.3. 2
   目标板: mini 2440 + NEC3.5寸屏
  
1、下载源码包:
   在: ftp://ftp.qtsoftware.com/qt/source/ 下载
   qt-embedded-linux-opensource-src-4.5. 2.tar.bz 2
   qt-x 11-opensource-src-4.5. 2.tar.bz 2
   在 http://blog.chinaunix.net/u 2/86708/showart_ 19 24834.html 上下载tslib 1.4.tar.gz
2、配置ubuntu 8.04编译环境
   安装g++: sudo apt-get g++
   安装编译X 11用到的库:sudo apt-get libx 11-dev libxext-dev
   安装libxtst-dev: sudo aptitude install libxtst-dev 否则编译qvfb出错。
3、编译及安装qt-x 11-opensource-src-4.5. 2
   qt-x 11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发
   板,也可以开发Qt应程序。
   tar xjvf qt-x 11-opensource-src-4.5. 2.tar.bz 2
   cd qt-x 11-opensource-src-4.5. 2
   ./configure
   make
   make install
   历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5. 2下,编译完成后源程序不要删除,还有用。
4、编译配置QtEmbedded-4.5. 2-x86版本
   A、解压
   root@hrixin-desktop:/work/qte # tar xjvf qt-embedded-linux-opensource-src-4.5. 2.tar.bz 2
   root@hrixin-desktop:/work/qte # mv qt-embedded-linux-opensource-src-4.5. 2 qt-embedded-linux-opensource-src-4.5. 2-x86
   root@hrixin-desktop:/work/qte # cd qt-embedded-linux-opensource-src-4.5. 2-x86
  
   B、配置编译:
   ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5. 2-x86 -embedded x86 -qvfb
   root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5. 2-x86 # make
   C、安装到/usr/local/Trolltech/QtEmbedded-4.5. 2-x86目录下:
   root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5. 2-x86 # make install
  
   D、建立脚本文件:setenv_arm.sh,输入以下内容:
   export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5. 2-x86/
   export PATH=/usr/local/Trolltech/QtEmbedded-4.5. 2-x86/bin/:$PATH
   export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5. 2-x86/lib/:$LD_LIBRARY_PATH
  
   E、编译x86版QT应用程序前,先执行此脚本文件:
   root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5. 2-x86 # source setenv-x86.sh
  
5、编译安装tslib 1.4
   A、安装编译过程需用到的程序
   root@hrixin-desktop:/home/hrixin # apt-get install autoconf(或autoconf 2. 13)
   root@hrixin-desktop:/home/hrixin # apt-get install automake
   root@hrixin-desktop:/home/hrixin # apt-get install libtool
  
   B、配置编译
   root@hrixin-desktop:/work/qt # tar xzvf tslib- 1.4.tar.gz
   root@hrixin-desktop:/work/qt # cd tslib
   生成./configure
   root@hrixin-desktop:/work/qt/tslib # source autogen.sh
   root@hrixin-desktop:/work/qt/tslib # export ac_cv_func_malloc_0 _nonnull=yes
   root@hrixin-desktop:/work/qt/tslib # ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0 _nonnull=yes
   root@hrixin-desktop:/work/qt/tslib # make
   C、安装
   root@hrixin-desktop:/work/qt/tslib # make install-strip //生成瘦身应用程序和库
   打包
   root@hrixin-desktop:/usr/local # tar czvf tslib.tar.gz tslib
   D、复制到NFS文件系统/usr/local目录下解压
   root@hrixin-desktop:/work/root_qtopia/usr/local # tar xzvf tslib.tar.gz
  
   E、设置环境变量,校准触摸屏。
   在天开板终端建立脚本文件,并执行:
   export TSLIB_ROOT=/usr/local/tslib
   export TSLIB_TSDEVICE=/dev/input/event0
   export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
   export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
   export TSLIB_CALIBFILE=/etc/pointercal
   export TSLIB_FBDEVICE=/dev/fb0
   export QWS_MOUSE_PROTO=tslib:/dev/input/event0
   注意:触摸屏的前提是你的触摸屏驱动已经写好,并加载进了内核.
   你可以测试有没有加载触摸屏驱动,cat /dev/input/event0(这只是我的板子上的触摸屏) ,
   点击触摸屏,看终端有无显示,若有则表明正确。
  
   在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:
   [root@FriendlyARM bin]# ./ts_calibrate
   可以运行此目录下的其他程序进行测试。
  
   注:
   /etc/ts.conf 打开 module_raw input 设置
   # Uncomment if you wish to use the linux input layer event interface
   module_raw input
  
   至此,触摸屏程序能顺利运行,接下来移植QtEmbedded-4.5. 2,设置好环境变量。
6、编译安装QtEmbedded-4.5. 2-arm版本
   A、解压
   root@hrixin-desktop:/work/qte # tar xjvf qt-embedded-linux-opensource-src-4.5. 2.tar.bz 2
   root@hrixin-desktop:/work/qte # mv qt-embedded-linux-opensource-src-4.5. 2 qt-embedded-linux-opensource-src-4.5. 2-arm
   root@hrixin-desktop:/work/qte # cd qt-embedded-linux-opensource-src-4.5. 2-arm
   B、配置编译:
   ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5. 2-arm -embedded arm \
   -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse 2 -no-svg -no-webkit -qt-zlib -qt-gif \
   -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus \
   -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16, 18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen \
   -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
   注意这个目录要跟你的tslib安装目录相同!!!
   root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5. 2-arm # make
  
   C、安装到/usr/local/Trolltech/QtEmbedded-4.5. 2-arm目录下:
   root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5. 2-arm # make install
   D、打包编译安装好的QtEmbedded库文件:
   root@hrixin-desktop:/usr/local/Trolltech # tar czvf QtEmbedded-4.5. 2-arm.tar.gz QtEmbedded-4.5. 2-arm
   E、建立脚本文件:setenv_arm.sh,输入以下内容:
   export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5. 2-arm/
   export PATH=/usr/local/Trolltech/QtEmbedded-4.5. 2-arm/bin/:$PATH
   export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5. 2-arm/lib/:$LD_LIBRARY_PATH
  
   F、编译ARM版QT应用程序前,先执行此脚本文件:
   root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5. 2-arm # source setenv-arm.sh
   编译calculator
   root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5. 2-arm/examples/widgets/calculator # calculator.pro
   root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5. 2-arm/examples/widgets/calculator # make
7、在主机上建立NFS启动根文件系统,把编译好的库文件复制到相关目录下。
   A、文件系统目录为:/work/root_qtopia/,修改rcS
   [root@FriendlyARM /]# vi /etc/init.d/rcS
   #/bin/qtopia &
  
   建立Trolltech目录:
   root@hrixin-desktop:/work/root_qtopia/usr/local # mdkir Trolltech
  
   B、把打包好的库文件:QtEmbedded-4.5. 2-arm.tar.gz复制到/work/root_qtopia/usr/local/Trolltech目录下
   root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech # tar xzvf QtEmbedded-4.5. 2-arm.tar.gz
   root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech # cd QtEmbedded-4.5. 2-arm/
  
   C、复制5-F中编译好的calculator可执行文件到此目录下:
   root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5. 2-arm # cp /work/qt/qt-embedded-linux-opensource-src-4.5. 2-arm/examples/widgets/calculator/calculator ./
   D、建立脚本文件
   root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5. 2-arm # gedit setenv.sh
   输入以下内容:(把设置tslib环境变量的脚本文件内容,也添加进来)
   #!/bin/sh
   export TSLIB_ROOT=/usr/local/tslib
   export TSLIB_TSDEVICE=/dev/input/event0
   export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
   export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
   export TSLIB_CALIBFILE=/etc/pointercal
   export TSLIB_FBDEVICE=/dev/fb0
   export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
   export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5. 2-arm
   export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.5. 2-arm
   export LD_LIBRARY_PATH=$QTDIR/lib:$TSLIB_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
  
   E、至此,主机上的文件系统已经配置好,开板通过NFS挂载到此文件系统启动。
   启动后,开发板串口终端执行刚才的脚本文件(通过NFS启动,执行脚本文件未成功),设置好环境变量。
   检查环境变量是否成功:
   [root@FriendlyARM QtEmbedded-4.5. 2-arm]# echo $QTDIR
   /usr/local/Trolltech/QtEmbedded-4.5. 2-arm
   成功!
   如果没有输出,则失败。同样的方法检查其他两个环境变量。
  
   F、运行calculator
   [root@FriendlyARM QtEmbedded-4.5. 2-arm]# ./calculator -qws &
   From:http://hrixin.blog. 163.com/blog/static/ 1004 23 173 20097 1233457694/
1.下载qt-embedded-linux-opensource-src-4.5. 2.tar.gz和 tslib- 1.4.tar.gz
2.交叉编译
#cd tslib
#vi do.sh
#!/bin/sh
./configure --build=i386-linux --host=arm-linux ac_cv_func_malloc_0 _nonnull=yes CC=/usr/local/arm/4. 2. 2-eabi/usr/bin/arm-linux-gcc CXX=/usr/local/arm/4. 2. 2-eabi/usr/bin/arm-linux-g++ --prefix=$PWD/build
#chmod 755
#./do.sh
#make
#make install
#cd qt-embedded-linux-opensource-src-4.5. 2
#mkdir libts
#cp (***tslib)/build/lib/libts* libts/
#cp (***tslib)/build/include/* libts/
修改mkspecs/qws/linux-armv6-g++/qmake.conf,加入下面几行设置qmake的FLAGS:
#qwdu added
QMAKE_INCDIR = (****)/qt-embedded-linux-opensource-src-4.5. 2/libts
QMAKE_LIBDIR = (****)/qt-embedded-linux-opensource-src-4.5. 2/libts
#vi do.sh
#!/bin/sh
./configure \
-opensource \
-prefix /***/***(install dir) \
-release \
-shared \
-no-qt3support \
-no-xmlpatterns \
-no-svg \
-no-webkit \
-qt-zlib \
-qt-gif \
-qt-libtiff \
-qt-libpng \
-qt-libmng \
-qt-libjpeg \
-make libs \
-make tools \
-nomake examples \
-nomake docs \
-nomake demo \
-no-nis \
-no-cups \
-no-iconv \
-no-dbus \
-no-openssl \
-xplatform qws/linux-armv6-g++ \
-embedded arm \
-little-endian \
-qt-freetype \
-depths 16 \
-qt-gfx-linuxfb \
-no-gfx-transformed \
-no-gfx-multiscreen \
-no-gfx-vnc \
-no-gfx-qvfb \
-qt-kbd-tty \
-qt-kbd-usb \
-qt-mouse-tslib \
-qt-mouse-pc \
-no-glib
#chmod 755 do.sh
#./do.sh
#make
#make install
在开发板上设置环境变量
#vi /usr/etc/rc.local
#!/sh/bin
export TSDIR=/usr/tslib
export PATH=$TSDIR/bin:$PATH
export LD_LIBRARY_PATH=$TSDIR/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CALIBFILE=$TSDIR/etc/pointercal
export TSLIB_CONFFILE=$TSDIR/etc/ts.conf
export TSLIB_PLUGINDIR=$TSDIR/plugins
export TSLIB_TSDEVICE=/dev/ts0
export TSLIB_TSEVENTTYPE=H3600
export QTDIR=/usr/qt
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QTDIR/plugins/
export QT_QWS_FONTDIR=$QTDIR/fonts
#export QWS_MOUSE_PROTO=LinuxTP:/dev/ts0
export QWS_MOUSE_PROTO=Tslib:/dev/ts0
#mkdir /usr/qt
把之前编译安装的QT库和程序(qt的install目录)copy到开发板的/usr/qt目录下,具体如下:
bin fonts lib plugins
bin下放入mousecalibration
fonts下放入*qpf字体(字体比较大,占用空间,可以只复制QT自己转化过的qpf字体)
lib下放入libQtCore.so.4.5. 2,libQtGui.so.4.5. 2,libQtNetwork.so.4.5. 2,libQtSql.so.4.5. 2
然后链接下
libQtCore.so.4 -> libQtCore.so.4.5. 2
libQtGui.so.4 -> libQtGui.so.4.5. 2
libQtNetwork.so.4 -> libQtNetwork.so.4.5. 2
libQtSql.so.4 -> libQtSql.so.4.5. 2
#mkdir /usr/tslib
再把之前编译安装的Tslib库和程序(tslib的bulid目录)copy到开发板的/usr/tslib目录下,具体如下:
bin etc include lib plugins
设置完毕
qt的库比较大,可以arm-linux-strip下
#sh /usr/etc/rc.local
#ts_calibrate
#mousecalibration
这两个程序测试结果成功
在mini 2440上移植qt embedded for linux 4.5. 2
作者: 孙晓明 ,华清远见嵌入式学院 讲师。
【实验环境】
1、主 机:Fedora9 DVD 发行版
   2、目标机:mini 2440 友善之臂
   3、源码包:
   ftp://ftp.qtsoftware.com/qt/source/qt-embedded-linux-opensource-src-4.5. 2.tar.gz
   4、编译器 arm-linux-gcc-4. 1. 2
   http://qtextended.org/downloads/toolchains/arm9 20t-eabi.tgz
我这几天移植qt-embedded-linux-opensource-src-4.5. 2 因为之前使用友善的 arm-linux-gcc-4.3. 2编译qt-embedded-linux-opensource-src-4.5. 2 没有错误,但是运行例子程序example/widget/analogclock/analogclock -qws & 就会出段错误, 所有改用 openmoko的arm-linux-gcc-4. 1. 2编译, 最后可以成功看到界面。
   移植的tslib 1.4 在,并且运行ts_calibrate 五点校准,触摸屏是有反应的,并能生成/etc/pointercal
   ts_test 也是好使的,拖拽都没有问题。 但是就是运行移植的 QTE的程序 触摸屏一点反应也没有。 顺便说一下,内核还是用的mini 2440出厂时nand里的linux- 2.6. 29,没有动过,触摸屏已经是被内核支持了。
这是我配置的环境变量:
以下环境变量都是我在终端敲入的
   export QTDIR=/usr/local/QtEmbedded-4.5. 2-moko-arm
   export QPEDIR=/usr/local/QtEmbedded-4.5. 2-moko-arm
   export PATH=$QTDIR/bin:$PATH
   export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
   export TSLIB_ROOT=/usr/local/tslib
   export TSLIB_TSDEVICE=/dev/event0
   export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH
   export TSLIB_FBDEVICE=/dev/fb0
   export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
   export TSLIB_CONSOLEDEVICE=none
   export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
   export POINTERCAL_FILE=/etc/pointercal
   export TSLIB_CALIBFILE=/etc/pointercal
   export QWS_MOUSE_PROTO=Tslib:/dev/event
这是我安装tslib 1.4的步骤:
一、tslib移植
第一步:解压tslib- 1.4.tar.gz
  
   tar -zxvf tslib- 1.4.tar.gz
第二步:进入解压过的目录
   
   cd tslib- 1.4
第三步:执行tslib- 1.4目录下的autogen.sh
   ./autogen.sh
第四步:执行autogen.sh脚本所生成的Makefile文件
   在命令行打入以下命令:
   echo "ac_cv_func_malloc_0 _nonnull=yes" >$ARCH-linux.cache
   ./configure --host=arm-linux --prefix=/usr/local/tslib --cache-file=$ARCH-linux.cache
第五步:
   make
   make install
第六步:把指定安装目录下的tslib的文件都copy到你所挂载的根文件下
   sudo cp -a /home/linux/tslib/* /opt/FriendlyARM/mini 2440/root_qtopia/usr/local/tslib/
第七步:修改/opt/FriendlyARM/mini 2440/root_qtopia/usr/local/tslib/ 下的etc目录中ts.conf文件
   vi ts.conf 将第二行的#module_raw input修改成module_raw input 注意一定要顶格写否则程序执行时会发生读取ts.conf错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值