操作系统:fedora 17 (linux-3.3.4)
开发板:友善之臂Tiny6410
GUI和触摸屏组件:qtE-4.7.0 libts-1.4
gcc & g++ : 4.7.2
arm-linux-gcc & arm-linux-g++ : 4.5.1
busybox-1.20.2
网上关于移植QT和TSLIB的教程网上较多,本手册不打算直接将他们copy过来,我将重点放在基于友善之臂tiny6410的QT移植过程中应该注意的问题。我原先是自己编译busybox、qtE、libts,然后制作的根文件系统,设置好QT及QTE的环境变量后,经过交叉编译的QT程序可以运行,但是触摸屏没反应(单独的校验程序可以执行),考虑是qt与触摸屏没挂接在一起。后来仔细比对了友善之臂提供的rootfs,终于找到了解决方案,步骤如下:
1.制作根文件系统的时候直接使用官方rootfs中的/etc/mdev.conf 和 /etc/friendlyarm-ts-input.conf ,为了防止出现其他问题,可以考虑使用整个etc目录,反正etc目录相对固定,以后有时间了再自己制作。
2.直接使用官方rootfs中的/etc/ts.conf,内容如下
module_raw friendlyarm-ts-input
module pthres pmin=1
module variance delta=30
module dejitter delta=10000
module linear
3.直接拷贝官方rootfs中的ts组件,在/usr/lib/ts目录,里面的friendlyarm-ts-input.so需要加载进来,我们直接拷贝整个ts目录。
4.直接拷贝官方rootfs中的ts校验程序,在/usr/bin/ts_calibrate目录。这是经过友善之臂自定义后编译的。
5.在按照网上的其他教程设置好qte和tslib之后,就可以运行QT程序了,经测试,触摸屏可用。注意:首次使用时候还需进行校验,运行ts_calibrate,然后将生成的pointercal文件拷贝至/etc目录。
PS:以下附上我设置的环境变量,供大家参考
export QTDIR=/usr/local/QtEmbedded-4.7.0-arm
export LD_LIBRARY_PATH=$QTDIR/lib
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export TSLIB_ROOT=/usr/local/tslib-1.4
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
export TSLIB_CONSOLEDEVICE=/dev/tty
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
PS:运行QT程序还需要另外几个库的支持libpng14.so.14 libts-1.0.so.0 libz.so.1 ,将其拷贝至/usr/lib即可。我的/usr/local/QtEmbedded-4.7.0-arm/lib下只放了如下几个库,它们是 libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4,还有fonts/unifont_160_50.qpf
如需要我制作的跟文件系统镜像,请联系ceisscoo@gmail.com
转载于:https://blog.51cto.com/sunke/1103675