将qt-embedded-linux移植至arm(s3c2440)

将qt-embedded-linux移植至arm(s3c2440)
宿主机:Fedora13
目标 机:s3c2440
交叉 编译 器:arm-linux-gcc- 3.4.1
交叉编译器路径:/usr/local/arm/3.4.1

qt版本:qt-embedded-linux-opensource-src-4.5.3

tslib版本:tslib-1.4.tar.gz

一、移植tslib

1.下载TSLIB-1.4源码:

#mkdir tslib       (这是你存放TSLIB 源码的文件夹,我们下面要通过CVS网络下载源码,网络上也能找到,但是有可能不好用)

#svn co svn://svn.berlios.de/tslib/trunk/tslib tslib

2.编译:

#cd tslib

#./autogen.sh       (生成configure)

#./configure  --host=arm-linux  --prefix=/home/xxxx/tslib_build/        //(xxxx为你的系统用户名)

若make出错可在configure时加入--enable-inputapi=no

#make

#make install

 3.添加到文件系统:

 把 tslib_build/bin/下的ts_calibrate(触摸校准测试程序)拷到文件系统的/bin下,把tslib_build/lib/下的文件拷到文件系统的lib下,

/tslib_build/etc/ts.conf 拷到文件系统的/etc/下。

二、移植qt

1.下载源码:ftp://ftp.qt.nokia.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz

2.解压缩:#tar -xzvf qt-embeded-linux-opensource-src-4.5.3.tar.gz

3.修改源码,去掉鼠标指针:

#cd qt-embedded-linux-opensource-src-4.5.3/src/gui/embedded/

找到 qwscursor_qws.h,在里面加上#define QT_NO_QWS_CURSOR   ,程序里面好像可以去掉,也可以不加。

4、configure

在qt-embedded-linux-opensource-src-4.5.3下建立一个脚本

#vim myconfig.sh

view plaincopy to clipboardprint?01.#!/bin/bash   02../configure /    03.-release -shared /    04.-fast /    05.-pch /  #若编译出现类似<command line>:1: sorry, unimplemented: had to relocate PCH错误,则将其注释掉   06.-no-qt3support /    07.-qt-sql-sqlite /    08.-no-libtiff -no-libmng /    09.-qt-libjpeg /    10.-qt-zlib /    11.-qt-libpng /    12.-qt-freetype /    13.-xplatform qws/linux-arm-g++ /    14.-embedded arm /    15.-depths 4,8,16,32 /    16.-little-endian /    17.-qt-kbd-usb /    18.-no-openssl /    19.-nomake examples -nomake demos -nomake tools /    20.-optimized-qmake /    21.-no-phonon /    22.-no-nis /    23.-no-opengl /    24.-no-cups /    25.-no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm /    26.-no-xinerama -no-xshape /    27.-no-separate-debug-info /    28.-no-qvfb /    29.-qt-gfx-linuxfb /    30.-no-gfx-qvfb  -no-kbd-qvfb  -no-mouse-qvfb /    31.-no-webkit /    32.-confirm-license /    33.-qt-mouse-tslib -I/home/xxxx/tslib_build/include -L/home/xxxx/tslib_build/lib  #!/bin/bash
./configure /
-release -shared /
-fast /
-pch /  #若编译出现类似<command line>:1: sorry, unimplemented: had to relocate PCH错误,则将其注释掉
-no-qt3support /
-qt-sql-sqlite /
-no-libtiff -no-libmng /
-qt-libjpeg /
-qt-zlib /
-qt-libpng /
-qt-freetype /
-xplatform qws/linux-arm-g++ /
-embedded arm /
-depths 4,8,16,32 /
-little-endian /
-qt-kbd-usb /
-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 /
-no-qvfb /
-qt-gfx-linuxfb /
-no-gfx-qvfb  -no-kbd-qvfb  -no-mouse-qvfb /
-no-webkit /
-confirm-license /
-qt-mouse-tslib -I/home/xxxx/tslib_build/include -L/home/xxxx/tslib_build/lib

根据移植需要选择相应的内容,执行configure

#source myconfig.sh

编译

#make (时间比较长)

5、编译完成后,把编译完的LIB库加到你的文件系统中:

view plaincopy to clipboardprint?01.cd your_rootfs   02.cd opt   03.mkdir qt   04.mkdir qtopia   05.mkdir qt/lib (存放你的QT库)   06.mkdir qtopia/bin(存放你的QT应用程序)   07.cp -rf qt-embedded-linux-opensource-src-4.5.2/lib qt/   08.cp qt-embedded-linux-opensource-src-4.5.2/examples/mainwindows/menus/menus qtopia/bin  cd your_rootfs
cd opt
mkdir qt
mkdir qtopia
mkdir qt/lib (存放你的QT库)
mkdir qtopia/bin(存放你的QT应用程序)
cp -rf qt-embedded-linux-opensource-src-4.5.2/lib qt/
cp qt-embedded-linux-opensource-src-4.5.2/examples/mainwindows/menus/menus qtopia/bin

6、制作QT启动脚本:

#vim bin/myqt

添加以下内容:

view plaincopy to clipboardprint?
01.#!/bin/sh   
02.export set TSLIB_TSDEVICE=/dev/event0   
03.export set TSLIB_CONFFILE=/etc/ts.conf   
04.export set TSLIB_PLUGINDIR=/lib/ts   
05.export set TSLIB_CALIBFILE=/etc/pointercal   
06.export set HOME=/root   
07.export set QTDIR=/opt/qt   
08.export set QPEDIR=/opt/qtopia   
09.export set KDEDIR=/opt/qt   
10.export set QWS_DISPLAY="LinuxFB:/dev/fb0"   
11.export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"   
12.#export QWS_SIZE=320x240   
13.export set QWS_KEYBOARD="USB:/dev/input/event1"   
14.export set QWS_MOUSE_PROTO="Tslib:/dev/event0"   
15.export set QT_PLUGIN_PATH=$QTDIR/plugins/   
16.export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/   
17.export set PATH=$QPEDIR/bin:$PATH   
18.export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_P   
19.ts_calibrate  
20.$QPEDIR/bin/menus -qws &  
#!/bin/sh
export set TSLIB_TSDEVICE=/dev/event0
export set TSLIB_CONFFILE=/etc/ts.conf
export set TSLIB_PLUGINDIR=/lib/ts
export set TSLIB_CALIBFILE=/etc/pointercal
export set HOME=/root
export set QTDIR=/opt/qt
export set QPEDIR=/opt/qtopia
export set KDEDIR=/opt/qt
export set QWS_DISPLAY="LinuxFB:/dev/fb0"
export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
#export QWS_SIZE=320x240
export set QWS_KEYBOARD="USB:/dev/input/event1"
export set QWS_MOUSE_PROTO="Tslib:/dev/event0"
export set QT_PLUGIN_PATH=$QTDIR/plugins/
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set PATH=$QPEDIR/bin:$PATH
export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_P
ts_calibrate
$QPEDIR/bin/menus -qws & 

7、开机自动启动你的QT应用程序:


#vim etc/init.d/rcS

在最后一行添加:/bin/myqt &

8、.把刚才的文件系统,制作成内核支持的格式,然后烧入FLASH中。(移植过程中最好是采用NFS挂载的方式,这样方便调试,测试没有问题才烧到FLASH中),不出意外的话,你会看到TSLIB校准界面了,校准完会出现QT界面,点点看,准不准。

如果启动后显示无法打开/dev/null或者/dev/fb0设备等问题,这就需要自己手动添加相应的节点

#mknod -m 666 /dev/null c 2 2

#mknod /dev/fb0 c 29 0

然后手动执行一下/bin/myqt脚本,不出意外的话应该能正常显示屏幕校准的测试程序了。

由于本人的内核驱动并未完全移植好(尤其是触摸屏,LCD显示也不是很正常),所以出现画面之后触屏暂时无法使用,待重新编译下内核,将触摸驱动起来之后再进行后面的移植工作。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huihui1988/archive/2010/09/12/5879211.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值