当前位置: 代码迷 >> 综合 >> qt-extended-4.4.3在S3C6410上的移植
  详细解决方案

qt-extended-4.4.3在S3C6410上的移植

热度:44   发布时间:2024-01-13 05:02:11.0

本文转至http://blog.163.com/seven_7_one/blog/static/162606412201161454257860/

qt-extended-4.4.3在S3C6410上的移植  

2011-07-14 17:42:57|  分类: linux学习 |  标签: |字号 订阅

飞凌的开发板目前使用arm-linux-gcc 3.4.5版本来交叉编译tslib-1.4库和qt-extended-4.4.3库,由于qt-extended-4.4.3处于开发中,暂时不放到飞凌开发板的文件系统中,不过可以使用NFS网络文件系统来进行调试和运行 Qtopia4

如何使用NFS网络文件系统可以参考飞凌的《OK6410开发板LINUX2.6用户手册》 NFS部分。

开发平台:Ubantu9.10, 交叉编译器:arm-linux-gcc3.4.5 ,飞凌开发板:6410系列


1  编译tslib

    编译和运行qt-extended-4.4.3(Qtopia4),需要tslib库,该库是触摸屏需要的库文件,如对触摸屏的数据进行过滤,去抖动等,QT的库会调用tslib的库文件
    注意:您也可以不用编译tslib-1.4,直接使用我们编译好的tslib库即可,使用tslib同样需要配置环境变量,如何配置请跳到“配置环境变量”一节

  编译方法:

     解压tslib-1.4.rar后 记得先安装三个东西

     #sudo apt-get install autoconf
     #sudo apt-get install automake
     #sudo apt-get install libtool
  
     #cd tslib/
   
    //设置环境变量,指向交叉编译器路径
    export PATH=/usr/local/arm/arm-linux-gcc-3.4.5/bin:$PATH
    export TOOLCHAIN=/usr/local/arm/arm-linux-gcc-3.4.5
    export TB_CC_PREFIX=arm-linux-
    export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
  
  运行脚本

   #./autogen.sh
   #echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

   配置安装参数
   #./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib/build -host=arm-linux --     cache-file=arm-linux.cache 2>&1 | tee conf_log

  编译
 
  #make 2>&1 | tee make_log
  #make install
 
  编译后会出现bulid文件夹
 
  #cd build/etc
  #gedit ts.conf

  去掉module_raw input前面的#号和空格,注意:module_raw input前面不能有空格,否则运行测试软件时会提示 Segmentation fault

  看一下主机目录 /usr/local/arm/下面是否已经有了 tslib ,如果有记得修改ts.conf,如果没有
  把build 文件夹拷贝到/usr/local/arm下,把build改名为tslib, 编译qt-extended-4.4.3时需要,另外把这个tslib放到网络文件系统目录中的/usr/local下面,我的是/forlinx/root/usr/local/

   在开发板上进入到tslib/bin里面运行./ts_calibrate  看一下屏幕上是否出现校准程序 ,如果出现则表示tslib编译成功完成.在开发板上运行时需要设置环境变量,运行编译好的Qtopia4时也需要环  境变量,为了在每次启动开发板自动设置环境变量可以把以下的内容放到 /forlinx/root/etc/profile文件中


 
 配置环境变量:该环境变量是运行tslib测试程序和运行Qtopia时必须添加的环境变量,在开发板上添加.
 
 export TSLIB_ROOT=/usr/local/tslib
 export TSLIB_TSDEVICE=/dev/input/event1
 export TSLIB_TSEVENTTYPE=H3600
 export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
 export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
 export TSLIB_CALIBFILE=/etc/pointercal
 export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
 export TSLIB_CONSOLEDEVICE=none
 export TSLIB_FBDEVICE=/dev/fb0

 export QWS_MOUSE_PROTO=Tslib:/dev/input/event1
 #export QWS_MOUSE_PROTO=TPanel:/dev/input/event1
 #export QWS_MOUSE_PROTO="Tslib:/dev/input/event1 MouseMan:/dev/input/mice"
 #export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice


 export QTDIR=/opt/Qtopia
 export QPEDIR=/opt/Qtopia
 export PATH=$QTDIR/bin:$PATH
 export QT_PLUGIN_PATH=$QTDIR/plugins:$QTDIR/qt_plugins/
 export QT_QWS_FONTDIR=$QPEDIR/lib/fonts/
 export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/usr/local/tslib/lib:$LD_LIBRARY_PATH

 

 

2 编译和运行qt-extended-4.4.3 

 注意: 您可以使用自己编译的Qtopia在开发板上运行,也可以使用我们已经编译好的Qtopia,不用自己编译,编译过程需要很长时间,我的PC用了3个多小时。
        如果直接使用编译好的Qtopia,看“运行Qtopia4”一节。

编译Qtopia4:

   编译Qtopia4需要指定交叉编译器的路径,如果在编译tslib时已经设置好了环境变量就不需要再设置了,编译之前先执行export命令,看一下是否已经有了以下的环境变量

  export PATH=/usr/local/arm/arm-linux-gcc-3.4.5/bin:$PATH
  export TOOLCHAIN=/usr/local/arm/arm-linux-gcc-3.4.5
  export TB_CC_PREFIX=arm-linux-
  export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux

 编译qt-extended-4.4.3 时注意先建立一个空文件夹,该文件夹与qt-extended-4.4.3处于同一级别目录下,如qt-extended-4.4.3所在目录为 /mnt/Qt-test/qt-extended-4.4.3,则需要建立 /mnt/Qt-test/builddir文件夹,然后在命令终端中

  另外需要注意的是:1 编译Qtopia时确保你的Ubantu9.10环境中安装了GNU g++编译器,Qtopia编译过程中用这个编译器用来编译一些工具在PC上运行.
                    2 注意你的Ubantu中要安装X11的SDK库,Qtopia编译过程中需要使用X11SDK里面的一些头文件,使用以下命令即可安装需要的文件
                      apt-get install libx11-dev libxext-dev libxtst-dev
                    3 编译时 虚拟机中的qt-extended-4.4.3 文件夹不能放在与Windows共享的目录中,否则会编译出错.
     

     

  cd /mnt/Qt-test/builddir 输入以下内容,即可开始配置Qtopia4了,具体的配置含义可以 ../qt-extended-4.4.3/configure  -help 查看,您可以根据自己的需要,填写属于自己的配置,另外网络  上有不少关于配置的解释,在此就不多讲了

 ../qt-extended-4.4.3/configure -release -image /opt/Qtopia -prefix /opt/Qtopia -xplatform linux-arm-g++ -arch arm  -build-qt -no-dbus   -ui-type home -launch-method quicklaunch -remove-module qvfb -remove-module modem -remove-module bluetooth  -add-displaysize 480x272 -remove-module drm  -remove-module infrared -remove-module dbus  -extra-qt-config "-qt-mouse-linuxtp"  -extra-qt-embedded-config "-xplatform qws/linux-arm-g++ -embedded arm -qconfig qpe -shared -little-endian -webkit -qt-kbd-usb -qt-libpng -qt-libjpeg -qt-gif -depths 4,8,16,32 -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib"  2>../qtopiaconfigureERR.txt


  配置完成后,根据提示即可完成编译和安装,目前安装在 /opt/Qtopia 下面,


运行Qtopia4:

  把Qtopia放到开发板的 /opt目录下面即  /opt/Qtopia/,我的是NFS文件系统是 /forlinx/root/opt/Qtopia,确认在开发板上已经设置好了环境变量,环境变量参看tslib中  “配置环境变量”一节。

  配置好环境变量后,既可以运行Qtopia了,另外Qtopia中自带的软件也可以单独运行,Qtopia/bin里面的软件如 ./photogallery -qws 即可运行图片浏览软件 ,而不需要启动qpe桌面环境.下面的命令 可运行Qtopia

   cd /opt/Qtopia/bin
   ./qpe

 即可在屏幕上看到Qtopia4的界面, 里面附带了一些应用程序,目前这些应用程序需要修改完善,有的暂时不能使用,我们会逐步进行程序的修改和优化,最终会给您一个惊喜的使用体验。

 

  相关解决方案