移植Qt4.8.5到mini2440开发板

host:Ubuntu11.10
target:Omap35X EVm 
交叉编译链:4.3.2,Sourcery G++ Lite 2008q1-126 for ARM GNU/Linux 
tslib源代码:tslib-1.4.tar.gz
tslib安装目标路径:/usr/local/arm-linux/tslib1.4

安装步骤:


1.准备工作
确保以下软件已安装

# apt-get install autoconf(或autoconf2.13)
# apt-get install automake
# apt-get install libtool


2.下载
http://download.csdn.net/detail/scholar_fish/4167788
下载版本为tslib-1.4.tar.gz

3.配置
解压源代码tslib-1.4.tar.gz,并进入源代码文件夹

# tar -zxvf tslib-1.4.tar.gz
# cd tslib

配置

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

# ./configure --host=arm-none-linux-gnueabi --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no --prefix=/usr/local/arm-linux/tslib1.4

注意,prefix选项更换为你的安装路径。

4.编译

# make


5.安装

# make install

编译生成的库,头文件等都拷贝至prefix制定的路径中。

6. 修改ts.conf内容
    打开安装路径下的/etc/ts.conf文件,修改其内容。 

# vi /usr/local/tslib/etc/ts.conf


   搜索定位至#module_raw input,把行首的注释符去掉,但要注意行首不要留有空格,即文字是顶格的,不然之后会出现段错误(segmentational fault)。

7.移植至开发板
将安装路径下的整个tslib文件夹,下载至开发班的上,我存放的路径为/usr/local

8. 设置开发板环境变量
通过超级终端, 打开环境变量文件/etc/profile

# vi /etc/profile

添加如下内容:

export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1

export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal  
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf   
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 
export TSLIB_FBDEVICE=/dev/fb0  
export TSLIB_CONSOLEDEVICE=none  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

其中,TSLIB_ROOT更换为自己实际存放的路径;
另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下那个文件

9.执行测试命令
 重启开发板(使系统读取profile环境变量),进入tslib/bin目录,执行触摸屏校准程序

# ./ts_calibrate

如果出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。
也可执行此目录下其他的程序来体验触摸屏!

10.出错记录
(1)第4步make时出现以下错误:

ts_test.o: In function `main':
ts_test.c:(.text+0x1d4): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0x9f4): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_test] 错误 1
make[2]:正在离开目录 `/home/zhuandi/programs/tslib1.4/tslib/tests'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/home/zhuandi/programs/tslib1.4/tslib'
make: *** [all] 错误 2

原因:直接copy了网络上的以下配置参数,参数中的”malloc_0 _nonnull"中多了一个空格。

# ./autogen.sh
# echo "ac_cv_func_malloc_0 _nonnull=yes">arm-none-linux-gnueabi.cache

解决:删除空格即可。

(2)第9步测试校准程序或其他程序时出现错误:egmentaton fault
         原因:修改ts.conf时去掉注释符号时,留下空格。
         解决:删除空格即可。

(3)第9步测试校准程序或其他程序时出现错误:触摸屏能显示,但对其操作无反应。
         原因:网络上一参考博文的环境配置,其中没有export QWS_MOUSE_PROTO=tslib:/dev/input/event1 
         解决:环境变量加上export QWS_MOUSE_PROTO=tslib:/dev/input/event1 ,重启板子即可。

二 移植Qt-4.8.5

(1)

要更改mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf这个文件,如下

要不然会出现The tslib functionality test failed!这个错误。

QMAKE_INCDIR=/opt/tslib/include
QMAKE_LIBDIR=/opt/tslib/lib
# modifications to g++.conf
QMAKE_CC                = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX               = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK              = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP             = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-strip

----------------------------------------------------------

然后配置

./configure -prefix /usr/local/QT4.8.5-ARM-mini2440/ -force-pkg-config -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -qt-mouse-tslib -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -I/opt/tslib/include -L/opt/tslib/lib

加粗线的记着加上,要不点触摸屏会没反应,/usr/local/QT4.8.5-ARM-mini2440/ 这个是我安装的路径。

(2)make -j 3  这里同时开启3个线程编译,具体多少视CPU核心数量而定。

(3)make install

进入编译好的库,把plugins,imports,lib,mkspecs复制到开发板某个目录下,我这里是/opt/Qt-4.8.5-ARM。

配置环境变量,我把下面的写到.bashrc里了。

export TSLIB_ROOT=/opt/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/opt/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/opt/tslib/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export QTDIR=/opt/Qt-4.8.5-ARM
export QPEDIR=/opt/Qt-4.8.5-ARM
export PATH=$QTDIR/bin:$PATH
export QWS_DISPLAY=LinuxFb:/dev/fb0
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QWS_FONTDIR=$QTDIR/lib/fonts


设置完成。

在开发板上,先进入tslib/bin里面,运行./ts_calibrate进行校准,

校准完成后reboot,

然后运行你的QT程序 ./player -qws

一切正常。


参考:http://www.amobbs.com/thread-5570875-1-1.html


转载     http://blog.csdn.net/u010842812/article/details/41306953
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值