Qt4.4.3 在s3c2440平台的移植(EMBEDDED 7)

Qt4.4.3 在s3c2440平台的移植(EMBEDDED 7)

1.解压缩
  tar zxf qt-embedded-linux-opensource-src-4.4.3.tar.gz
   cd qt-embedded-linux-opensource-src-4.4.3

2.编译,使用系统默认的图片库,保留大部分常用功能,并加入tslib触摸屏校验的支持
./configure /
  -prefix /new_disk/weiyan/qt/build/ /  //指定安装的目录,与开发板上运行的目录一致
  -release -shared /
  -fast /
  -pch /
  -no-qt3support /
  -qt-sql-sqlite /
  -no-libtiff -no-libmng /
  -qt-libjpeg /
  -qt-zlib /
  -qt-libpng /
  -qt-freetype /
  -no-openssl /
  -nomake examples -nomake demos -nomake tools/
  -optimized-qmake /
  -no-phonon /
  -no-nis /
  -no-opengl /
  -no-cups /
  -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm/
  -no-xinerama -no-xshape /
  -no-separate-debug-info /
  -xplatform qws/linux-arm-g++ /
  -embedded arm /
  -depths 16 /
  -no-qvfb /
  -qt-gfx-linuxfb /
  -no-gfx-qvfb  -no-kbd-qvfb  -no-mouse-qvfb/
  -qt-kbd-usb /
  -confirm-license /
  -qt-mouse-tslib

make (或者gmake)
make install (或者gmake install)

3.设置Qt4应用程序的编译环境
  cp bin/qmake /usr/bin

4.制作Qt4的文件系统,进行适当的裁减
  只复制必须的Qt库
  cd $rootfs  #$rootfs 为文件系统的目录
  mkdir new_disk/weiyan/qt/build –p && cd new_disk/weiyan/qt/build
  cp /new_disk/weiyan/qt/build/lib/libQtCore.so ./
  cp /new_disk/weiyan/qt/build/lib/libQtGui.so.4 ./
  cp /new_disk/weiyan/qt/build/lib/libQtNetwork.so.4 ./
  mkdir fonts
  只复制支持中文显示的文泉驿字体
  cp /mnt/qt/build/lib/fonts/wenquanyi_120_50.qpf fonts

5.编译内置的测试程序
cd $QTDIR/examples/qws/mousecalibration
qmake && make
cp mousecalibration $rootfs/new_disk/weiyan/qt/build/

6.在wy2440开发板上运行QT4测试程序
   重新生成yaffs2文件系统
   mkyaffs $rootfs rootfs.yaffs2

   已生成的文件系统大小为24M
   ll rootfs.yaffs -h
   -rw------- 1 root root  24M 2008-11-02 03:09 rootfs.qt4

在wy2440开发板上重新烧写文件系统,进入到U-Boot
WEIYAN # run uprootfs  自动升级文件系统
WEIYAN # boot   启动内核

设置QT4运行的环境变量
export QTDIR=/new_disk/weiyan/qt/build
export LD_LIBRARY_PATH=$QTDIR/lib:$OPIEDIR/lib
export PATH=$QTDIR/bin:$OPIEDIR/bin:$PATH
export QWS_MOUSE_PROTO=tslib:/dev/event1
export TSLIB_ROOT=/usr
export TSLIB_TSDEVICE=/dev/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONFFILE=/etc/ts.conf

执行基于Qt4的触摸屏校验
[root@WEIYAN /]$ ./new_disk/weiyan/qt/build/mousecalibration

QTE(Qtopia core)移植(一)

Qtopia Core 4是QT/embedded的最新版,网上尽是QT/embedded 2的版本

        我的目标平台是博创的s3c2410,linux2.4内核,开发平台是RHEL.AS.v4.0.Update2,直接从ftp: //ftp.scau.edu.cn/linux_unix/VMware_OS/RedHat_AS_4/Red Hat Enterprise Linux 4.vmdk下载的虚拟机镜像。经过这三天的使用,我认为虚拟机构建的系统有两个特点:一是慢,编译整个Qtopia Core 4用了近五个小时;二是使用方便,可以直接在windows通过pietty连接,一边查资料,一边配置系统,而且工作环境改变时只需将镜像直接移到另外一台电脑,马上可以工作 ^_^

下面是Qtopia Core 4移植过程:

        1.  下载交叉编译链

ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

。不要用cross-2.95.3,Qtopia Core 4指明要3.2以上的版本。网上的教程大多就拿cross-2.95.3编译QT/embedded 2的...解压缩到/usr/local/arm目录下

tar xjvf linux-gcc-3.4.1.tar.bz2 -C /

设置交叉编译的环境变量:

echo 'export PATH=/usr/local/arm/3.4.1/bin:$PATH' >> /root/.bashrc

        2.  下载Qtopia Core 4的源代码

qtopia-core-opensource-src-4.3.3.tar.gz

,解压

tar zxvf qtopia-core-opensource-src-4.3.3.tar.gz

cd qtopia-core-opensource-src-4.3.3

vi build.sh

添加内容

./configure -embedded arm -xplatform qws/linux-arm-g++ -depths  16 -no-qt3support -little-endian 

gmake  (这个过程最漫长...)

gmake install  (需root 权限)

./build.sh

设置Qt的环境变量:

echo 'export PATH=/usr/local/Trolltech/QtopiaCore-4.3.3-arm/bin:$PATH' >> /root/.bashrc

这样还有一个字体目录的问题,后面讲述。

        3.  编译Hello World,代码参考Qt的文档,保存未 hello.cc 。

qmake -project

qmake

make

将文件移到目标平台,我是通过nfs mount到/mnt/nfs目录下

mount -t nfs -o nolock 192.168.1.112:/home/nfs /mnt/nfs

export QTDIR=/mnt/nfs

export LD_LIBRARY_PATH=$QTDIR/lib

$QTDIR/lib里面放程序要用到的库和字体

lrwxrwxrwx  1 root root      18 Jan 25 20:39 /home/nfs/new/lib/libQtCore.so.4 -> libQtCore.so.4.3.3

-rwxr-xr-x  1 root root 2082044 Jan 25 20:38 /home/nfs/new/lib/libQtCore.so.4.3.3

lrwxrwxrwx  1 root root      17 Jan 24 21:44 /home/nfs/new/lib/libQtGui.so.4 -> libQtGui.so.4.3.3

-rwxr-xr-x  1 root root 7100212 Jan 24 21:42 /home/nfs/new/lib/libQtGui.so.4.3.3

lrwxrwxrwx  1 root root      21 Jan 25 20:36 /home/nfs/new/lib/libQtNetwork.so.4 -> libQtNetwork.so.4.3.3

-rwxr-xr-x  1 root root  369700 Jan 25 20:35 /home/nfs/new/lib/libQtNetwork.so.4.3.3

        可以根据提示从/usr/local/Trolltech/QtopiaCore-4.3.3-arm/lib/复制过来,注意软链接。如提示缺失libstdc++.so.6等库文件,可从/usr/local/arm/3.4.1/arm-linux/lib复制过来。

        字体问题。提示 Cannot find font definition file /usr/local/Trolltech/QtopiaCore?

    实际上这个应该算上是qt的一个bug,因为在pc的平台上,安装的路径就是运行的路径,所以它在设计QTE的时候也是沿用了这一套思想,实际在嵌入式下并不是这样的,所以我们在configure配置的时候使用-prefix指定安装的目录:

./configure -embedded arm -xplatform qws/linux-arm-g++ -depths  16 -no-qt3support -little-endian  -prefix /mnt/nfs/Trolltech/QtopiaCore-4.3.3

如果你的目录还是不对,就建议是建立一个软连接:ln -s

     nfs server still trying的问题:

     因为QT的共享库很大,所以在使用nfs服务的时候最好是能给他指定大点的缓冲区

mount -t nfs -o nolock,rsize=4096,wsize=4096 192.168.1.112:/home/nfs /mnt/nfs

你可能感兴趣的:(Qt4.4.3 在s3c2440平台的移植(EMBEDDED 7))