Qt-4.7.3 到OK6410开发板的移植

时间:2022-07-22 16:34:25

近乎原版的老房原创,转载请声明

--------------------------------------------------------------------------------咯一个-------------------------------------------------------------------------------

以下步骤使用QT版本为4.7.3,arm-linux-gcc版本4.2.2-eabi,在飞凌OK6410开发板和飞凌提供的2.6.28内核环境验证通过;

1、首先编译移植tslib1.4

(0)安装autoconf ,automake ,libtool三个工具

(1)解压缩tslib1.4.tar.gz

       tar xzvf tslib1.4.tar.gz

       cd tslib

(2) ./autogen.sh  // 用于生产configure

(3) ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes

(4) make

(5) make install

     编译和安装后在主机的/usr/local/tslib目录下可以看到编译好的程序和库。

(6)修改/usr/local/tslib/etc目录下的ts.conf文件,将module_raw input前面的注释和空格都去掉,注意空格必须去掉,不然出错

2、编译QT

(1)NOKIA官网上下载qt-everywhere-opensource-src-4.7.3.tar.gz

将qt-everywhere-opensource-src-4.7.3.tar.gz压缩包解压

      tar xzvf qt-everywhere-opensource-src-4.7.3.tar.gz

      cd qt-everywhere-opensource-src-4.7.3

(2)配置QT(可以在这里对QT进行裁剪)

./configure -opensource -confirm-license-release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths4,8,16,18,24,32 -fast -optimized-qmake -qt-sql-sqlite -qt-libjpeg -qt-zlib-qt-libpng -qt-freetype -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 -no-phonon -no-nis -no-cups -no-glib -no-xcursor -no-xfixes-no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools-nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib-D__ARM_ARCH_5TEJ__

 

【备注】:

进行编译配置;

 

-opensource

 

-confirm-license

 

-release

 

-shared

 

-embedded arm

 

-xplatform

 

qws/linux-arm-g++

 

-depths 4,8,16,18,24,32

 

-fast

 

-optimized-qmake

 

加入以下插件

 

-qt-sql-sqlite

 

-qt-libjpeg

 

-qt-zlib

 

-qt-libpng

 

-qt-freetype

 

-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

 

-no-phonon

 

-no-nis

 

-no-cups

 

-no-glib

 

-no-xcursor

 

-no-xfixes

 

-no-xrandr

 

-no-xrender

 

-no-separate-debug-info

 

-nomake examples

 

-nomake tools

 

-nomake docs

 

设置 tslib 为鼠标驱动、校正

 

-qt-mouse-tslib

 

-I/usr/local/tslib/include

 

-L/usr/local/tslib/lib

 

支持 arm 体系结构,6410:-D__ARM_ARCH_5TEJ__ 2440/10:-D__ARM_ARCH_4T__

 

-D__ARM_ARCH_4T__

 

 

(3)修改源代码

修改qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-g++/qmake.conf文件(添加lts参数,貌似是指tslib库):

QMAKE_CC                = arm-linux-gcc -lts

QMAKE_CXX               = arm-linux-g++ -lts

QMAKE_LINK              = arm-linux-g++ -lts

QMAKE_LINK_SHLIB        = arm-linux-g++ -lts

修改qt-everywhere-opensource-src-4.7.3/src/3rdparty/freetype/include/freetype/config/ftconfig.h

    将"orr %0,%2, lsl #16/n/t" /* %0 |= %2 << 16 */

     修改为 "orr %0, %0, %2, lsl #16/n/t" /* %0 |= %2 << 16 */

意思是加一个%0在%2前面。

(4) make

(5) make install  

即可将QT安装在/usr/local/Trolltech/QtEmbedded-4.7.3-arm

(6)准备中文字体,下载文泉驿字体库

将文泉驿字体库拷贝到QtEmbedded-4.7.3-arm/lib/fonts;

3、加到开发板根文件系统

(1)根文件系统/lib需要的库如下(具体与版本有关,你可以试一个QT程序看提示缺少什么)

这些库可从arm-linux-gcc安装目录下得到;

(2)拷贝tslib、QT相关库到开发板根文件系统

将安装的tslib目录拷贝到开发板根文件系统的/usr/local;

将安装的QT目录QtEmbedded-4.7.3-arm拷贝到开发板根文件系统的/usr/local/Trolltech;

(3)创建QT配置文件

根文件系统的/etc目录下创建一名为profile的文件,内容如下:

exportQTDIR=/usr/local/Trolltech/QtEmbedded-4.7.3-arm

export T_ROOT=/usr/local/tslib

export PATH=$QTDIR/bin:$PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/event1//只要是1,触摸屏tslib测试程序就能正常工作,但在做完驱动课设后发现必须是0才可以,不知道为什么

exportTSLIB_PLUGINDIR=$T_ROOT/lib/ts

exportTSLIB_CONFFILE=$T_ROOT/etc/ts.conf

exportTSLIB_CALIBFILE=/etc/pointercal

exportQWS_MOUSE_PROTO=tslib:/dev/event1//只要是1,自己写的HelloQt应用程序就能正常工作,但在做完驱动课设后发现必须是0才可以,不知道为什么。

exportLD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib

注意TSLIB_TSDEVICE、QWS_MOUSE_PROTO指定的设备与具体开发板内核相关,可能与上面不同;

【备注】

export setTSLIB_ROOT=/usr/local/tslib

 

#tslib 库的目录

 

export setTSLIB_CONSOLEDEVICE=none

 

#tslib 运行需要的控制台,就是 LCD 屏幕 ,设定为 none

 

export setTSLIB_TSDEVICE=/dev/event0

 

#触摸屏设备文件

 

export set TSLIB_FBDEVICE=/dev/fb0

 

#LCD 显示器设备文件

 

export setTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

 

# tslib 库配置文件路径

 

export set TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

 

# tslib 库插件的目录

 

export set TSLIB_CALIBFILE=/etc/pointercal

 

#触摸屏校正配置文件的路径

 

export setQTDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm

 

#QT 库的路径

 

export setQPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm

 

#对于 QT 4 Embedded 版本同上

 

export set PATH=$QTDIR/bin:$PATH

 

#加入到 PATH

 

export setQWS_MOUSE_PROTO=tslib:/dev/event0

 

#触摸屏设备文件

 

export set QWS_DISPLAY=LinuxFb:/dev/fb0

 

#LCD 显示设备文件

 

export set QWS_SIZE=800x600

 

#显示区域大小,可以不加

 

export setLD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH

 

#加入到 LD_LIBRARY_PATH

 

 

(4)采用nfs方式挂载根文件系统;

(5)超级终端中输入:

/usr/local/tslib/bin/ts_calibrate

进行触摸屏校正;

(6)自己编写程序,验证下

 ./filename -qws -font wenquanyi &

有问题再与我联系解决!

房 2011/10/18