qt-embedded和tslib移植到FS2410开发板 收藏
1、环境:
主机:Ubuntu 10.04
开发板:FS2410
Qt-E:qt-embedded-linux-opensource-src-4.5.2
Tslib:tslib-1.4
Cross-compiler:gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu-
2、步骤:
a)下载Qt和Tslib
ftp://ftp.trolltech.com/qt/source/ 这里面是老版本的,要最新版本的就去nokia官网吧
b)解压Qt和Tslib
$cd /home/user
$tar -xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
$tar -xzvf tslib-1.4.tar.gz
b)编译Tslib
$cd tslib
$./autogen.sh
(注:此步需要一些工具,ubuntu下需要安装automake、autoconf、libtool,可以执行下面语句安装
$sudo apt-get install automake autoconf libtool)
执行configure生成Makefile
$echo "ac_cv_func_malloc_0_nonnull=yes" > $ARCH-linux.cache
$./configure --host=arm-softfloat-linux-gnu --prefix=/home/user/tslib --cache-file=$ARCH-linux.cache
(注:--host是交叉编译器的前缀,--prefix是最终编译生成的可执行文件和库文件以及配置文件所安装的目录,这个目录不能与tslib源码目录相同,可以执行./configure --help来查看更多选项)
编译安装
$make
$make install
把指定的安装目录下的tslib文件拷贝到你所挂载的根文件下
$cp -a /tslib /rootfs
修改ts.cong文件
$vim /rootfs/tslib/etc/ts.cong
将第二行“#module_raw input”注释去掉,变为“module_raw input”,注意一定要顶格。
到此tslib编译安装完成。
c)编译Qt-E
$cd ../
$cd qt-embedded-linux-opensource-src-4.5.2
创建config.sh脚本
$vim config.sh
脚本文件内容:
#!/bin/sh
./configure /
-prefix /home/user/qt-embedded-arm /
-release /
-shared /
-fast /
-no-largefile /
-exceptions /
-no-accessibility /
-stl /
-qt-sql-sqlite /
-no-qt3support /
-no-xmlpatterns /
-no-phonon /
-svg /
-no-webkit /
-no-scripttools /
-qt-zlib /
-qt-gif /
-no-libtiff /
-qt-libpng /
-no-libmng /
-qt-libjpeg /
-no-openssl /
-nomake demos /
-nomake examples /
-nomake docs /
-L /home/xin/arm/tslib/lib /
-I /home/xin/arm/tslib/include /
-no-rpath /
-no-optimized-qmake /
-no-nis /
-no-cups /
-iconv /
-pch /
-no-dbus /
-no-separate-debug-info /
-xplatform qws/linux-arm-g++ /
-embedded arm /
-armfpa /
-little-endian /
-qt-freetype /
-depths 16 /
-no-opengl /
-qt-gfx-linuxfb /
-qt-kbd-usb /
-qt-mouse-tslib /
-no-glib
(注:具体的configure选项参数可以执行$./configure --help查看,我所列的选项去除了网络功能,其他功能基本比较全,仅供参考)
执行脚本
$./config.sh
编译安装
$make && make install //时间较长,我的小黑X61大概用了2小时左右,我去吃了饭,洗了个澡,小憩了以下,早上醒来惊喜的发现,编译完成!
移植到开发板上,拷贝编译好的库文件和插件
$cd ../
$cp qt-embedded-arm/lib /rootfs/opt/qt/ -a
$cp qt-embedded-arm/plugin /rootfs/opt/qt/ -a
至此Qt-E和Tslib都移植完成了,但要在开发板上运行qt程序还需要设置一些环境变量
d)设置环境变量
$cd /rootfs
$vim etc/profile
添加内容如下:
export TSLIB_ROOT=/tslib
export TSLIB_TSDEVICE=/dev/event0
export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/tslib/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_TSEVENTTYPE="H3600"
export QWS_SIZE=320*240
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export QWS_DISPLAY="LinuxFb:mmWidth50:mmHeight65:0"
export POINTERCAL_FILE=/etc/pointercal
export QWS_SW_CURSOR
export QWS_KEYBOARD="TTY:/dev/tty1"
export set QTDIR=/opt/qt
export PATH=$QTDIR:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QTDIR/plugins/
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
e)以上步骤基本就应该可以运行你的qt程序了,但还有几个注意事项
i-内核得支持LCD、触摸屏和事件接口(event interface support)
ii-如果文件系统不支持mdev或udev的话,请手动添加设备文件
$cd rootfs/dev
$mknod fb0 c 29 0
$mknod event0 c 13 64
$mknod mouse0 c 13 32
f)测试
运行tslib校准程序
$cd rootfs/tslib/bin
$./ts_calibrate
g)开发自己的Qt-E程序
用Qt Creator编写一个简单的Hello world程序
去掉工程中的*.o文件
用自己编译安转好的Qt-embedded下的qmake来创建Makefile
$/home/user/qt-embedded-arm/bin/qmake -project
$/home/user/qt-embedded-arm/bin/qmake
$make
将生成的可执行文件拷贝到开发板上运行吧
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/zhengzhixin3000/archive/2010/07/01/5707784.aspx