您的位置:首页 > Web前端

fedora15下安装QT/E搭建

2013-10-13 14:45 447 查看


移植QT/E到ARM设备(一)

我本次移植已有的条件:fedora15,已搭建好交叉编译环境,nfs服务器,以及qt的安装:



移植开始:

一、编译QT/E环境(有的文件如果宿主机上没有的话自己建立文件夹):

#cd /home/sprife/qt4/for_arm/



首先将qt-embedded-linux-opensource-src-4.4.0.tar.bz2 和tslib-1.4.tar.bz2放到文件夹for_arm下面



#tar xjvf qt-embedded-linux-opensource-src-4.4.0.tar.bz2

#tar xjvf tslib-1.4.tar.bz2

修改脚本文件vi ./tslib-1.4/buid.sh

#############################################

#/bin/sh

export CC=arm-linux-gcc

./autogen.sh

echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

./configure --host=arm-linux --cache-file=arm-linux.cache

-prefix=$PWD/../tslib1.4-install

make

make install

#############################################

#./build.sh

#.cd ..

#cp -a tslib1.4-install/lib/* qt-embedded-linux-opensource-src-4.4.0/lib/

#cp -a tslib1.4-install/include/ts* qt-embedded-linux-opensource-src-4.4.0/include/

#cd qt-embedded-linux-opensource-src-4.4.0

#./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -little-endian -qt-mouse-linuxtp -qt-mouse-tslib -I/home/sprife/qt4/for_arm/tslib1.4-install/include -L/home/sprife/qt4/for_arm/tslib1.4-install/lib -prefix /mnt/nfs/Trolltech/qt-embedded-4.4.0

一定要注意:上面这些配置一定要看清楚了,因为已配置就是=是三四个小时(我相信你不会愿意做两次的)

需要注意:/home/sprife/qt4/for_arm/这个目录是你的解压文件位置,/mnt/nfs这个是你开发板的挂载目录,这个Trolltech/qt-embedded-4.4.0是你自己在你宿主机上的挂载目录下需要建立的文件夹。

################这里你会经过漫长的四个小时################################################



当配置完成后

#make

#make install

若上面的操作没有错误则进行下面的工作(若上面有错,一定要找出错误再做下面的操作,否则,你会浪费很多时间)

#cd /tmp/share 这是我宿主机的挂载目录,你可以根据自己的需要建立挂载目录

#mkdir Trolltech

#cd Trolltech

#mkdir qt-embedded-4.4.0

#cd qt-embedded-4.4.0



#########################################

#cp /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/

lib/ ./ -arf

#cp /home/sprife/qt4/for_arm/tslib1.4-install/etc/ ./ -arf

#cp /home/sprife/qt4/for_arm/tslib1.4-install/bin/ ./ -arf



//在minicom中挂载宿主机的文件系统

#mount -o nolock,rsize=4096,wsize=4096 192.168.1.12:/tmp/share /mnt/nfs

成功以后:

#cd /mnt/nfs/Trolltech/qt-embedded-4.4.0

#vi ep.sh

export QTDIR=$PWD

export LD_LIBRARY_PATH=$PWD/lib

export TSLIB_TSDEVICE=/dev/event0

export TSLIB_PLUGINDIR=$PWD/lib/ts

export TSLIB_CONSOLEDEVICE=none

export TSLIB_CONFFILE=$PWD/etc/ts.conf

export POINTERCAL_FILE=$PWD/etc/ts-calib.conf

export QWS_MOUSE_PROTO=tslib:/dev/event0

export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf

export LANG=zh_CN

export QWS_DISPLAY="LinuxFb:mmWidth160:mmHeight120:0"

保存退出

#./ep.sh



执行触摸屏校准程序:

#./bin/ts_calibrate

这里会出现很多错误:

我遇到的:

错误一:

./bin/ts_calibrate: error while loading shared libraries: libts-0.0.so.0: cannot y

解决办法:

利用echo $LD_LIBRARY_PATH,发现环境变量不对。重新执行export LD_LIBRARY_PATH=$PWD/lib

再执行#./bin/ts_calibrate

错误二:

ts_open: No such file or directory

错误分析:首先你需要查看开发板的/dev下面的lcd设备结点,有的是event0有的是fb0,所以你需要重新

export TSLIB_TSDEVICE=/dev/event0 或者 export TSLIB_TSDEVICE=/dev/fb0(如果你要将这个修改到上面创建的ep.sh脚本下面)

那么最好再执行一下:

#env 查看export TSLIB_TSDEVICE=/dev/event0或者 export TSLIB_TSDEVICE=/dev/fb0是否有若没有最好使用export命令直接在命令行执行。



错误三:Couldnt open tslib config file: No such file or directory ts_config: Illegal seek

解决:#export TSLIB_CONFFILE=$PWD/etc/ts.conf



错误四:

Couldnt load module pthres

No raw modules loaded.

ts_config: Success



解决办法:#export TSLIB_PLUGINDIR=$PWD/lib/ts



我总共出现了上面几个错误:如果你出现不同的错误请参考:http://blog.csdn.net/xiaoyangger/article/details/5369961

完了之后执行:./bin/ts_calibrate

##############################输出信息#########################

xres = 320, yres = 240

selected device is not a touchscreen I understand

Took 10 samples...

Top left : X = -1073360184 Y = -1073618118

Took 10 samples...

Top right : X = -1073360184 Y = -1073618118

Took 10 samples...

Bot right : X = -1073360184 Y = -1073618118

Took 10 samples...

Bot left : X = -1073360184 Y = -1073618118

Took 10 samples...

Center : X = -1073360184 Y = -1073618118

1.558322 -0.006303 0.006302

1.568846 -0.004712 0.004710

Calibration constants: 102126 -413 412 102815 -308 308 65536


移植QT/E(二)到ARM板

出现上面QT/E(一)最后问题:

没有加载触屏驱动程序,我的微处理器是S3C2410,因而加载驱动时也要加载相对应的驱动:

insmod s3c2410_ts.ko显示结果如下:

s3c2410 TouchScreen successfully loaded

input: s3c2410 TouchScreen as /class/input/input0



驱动加载成功。。。。。。。

这里还需要之前所配置的环境变量:

export TSLIB_TSDEVICE=/dev/event0

export QWS_MOUSE_PROTO=tslib:/dev/event0

这里驱动可以提前加载进去内核中,这里就不会配置两次环境变量了

测试./bin/ts_cablirate

校准。。。。。。。。。


QT/E移植三:测试

QT/E移植三:测试

测试的时候会出现下列问题:

找出宿主机交叉编译目录下的下列文件,若没有,用更目录下的文件

解决方法:

find / name "libz.so.1"

find / name "librt.so.1"

find / name "libstdc++.so.6"

find / name "libgcc_s.so.1"

当前目录是/tmp/share/t../q../

cp /lib/libz.so.1 ./lib/

cp opt/usr/local/arm/3.4.1/arm-linux/lib/libgcc_s.so.1 ./lib

cp /opt/usr/local/arm/3.4.1/arm-linux/lib/librt.so.1 ./lib

cp /opt/usr/local/arm/3.4.1/arm-linux/lib/libstdc++.so.6 ./lib

./digitalclock -qws

结果是一个时钟

写一个程序编译然后挂载开发板端到直接运行程序:步骤如下

在/root/.bash_profile里声明

export QLINUXG=/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/mkspecs/qws/linux-arm-g++

将写的文件放到一个目录下:testqt-x11

#/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0

/bin/qmake –project

////////////上面生成一个.pro文件

#/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0

/bin/qmake –spec $QLINUXG -o Makefile

/////////上面需要指明linux-arm-g++的具体位置,因为直接qmake不能找到它/////////////

#make

//////////////上面生成一个可在开发板上执行的二进制文件,可直接放到开发板上运行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: