打印

基于飞思卡尔四核i-飞凌嵌入式iMX6开发板QT移植(移植tslib)

[复制链接]
2091|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llck|  楼主 | 2015-12-24 13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
接上贴:https://bbs.21ic.com/icview-1247682-1-1.html
1.2 移植tslib

tslib 是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供

诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因

此这里先编译安装tslib,这样在后面编译Qt 的时候才能打包编译进去

1.2.1 安装autoconf、automake、libtool包

# sudo apt-get install autoconf #tslib 依赖

# sudo apt-get install automake #tslib 依赖

# sudo apt-get install libtool #tslib 依赖

# sudo apt-get install g++ #tslib 依赖

# sudo apt-get install libc6-dev:i386 #qt4.8.5依赖

#sudo apt-get install build-essential #qt4.8.5依赖

#sudo apt-get install gcc-multilib #qt4.8.5依赖

1.2.2 拷贝压缩文件

拷贝src 目录下tslib-1.4-src.tar.bz2 的到/work/imx6(推荐)目录下面

# tar -xvf tslib-1.4-src.git.tar.bz2

# cd tslib

# ./tslib.sh #飞凌提供的编译脚本,执行完会将tslib 默认安装到/usr/local/arm/tslib

1.2.3 移植tslib到i.MX6目标板

假设用户的根文件系统路径为: /work/imx6/rootfs

执行以下命令:

# cd /usr/local/arm/tslib

# cp -ar lib/* /work/imx6/rootfs /usr/lib

# cp -ar bin/*/work/imx6/rootfs/usr/bin

# vi etc/ts.conf #去掉module_raw input 前注释符#,一定要注意中间的空格也去掉,module 顶格

# cp -ar etc/* /work/imx6/rootfs /etc

1.2.4 导出tslib环境变量

# cd /work/imx6/rootfs

# vi etc/rc.d/qt_env.sh

添加以下环境变量

export TSLIB_TSDEVICE=/dev/input/touchscreen0

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_PLUGINDIR=/usr/lib/ts

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

< tslib 环境变量说明:

TSLIB_CONFFILE //配置文件名

TSLIB_PLUGINDIR //插件目录

POINTERCAL_FILE: //指定包含用于校准指针设备的数据的文件

TSLIB_TSDEVICE //触摸屏设备文件名

TSLIB_CALIBFILE //校准的数据文件,由ts_calibrate 校准程序生成

TSLIB_CONSOLEDEVICE //控制台设备文件名

TSLIB_FBDEVICE //设备名

以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的

开发板上的/dev 目录下的设备节点相对应。

1.2.5 在i.MX6q目标板下测试tslib

用新文件系统启动i.MX6q 板子,进入shell 后执行如下命令:

#source /etc/rc.d/qt_env.sh

# ts_calibrate 对电阻屏进行触摸较验

# ts_test 对电阻屏进行触摸测试

1.3 移植QT4.8.5

1.3.1 拷贝压缩文件

拷贝src 目录下的qt-everywhere-opensource-src-4.8.5.tar.gz 到/work/imx6 目录下面 ,请注意,

我们对Qt 源码进行了必要的配置,默认配置路径就是  /work/imx6 ,如果您的Ubuntu 里面没有该路

径请执行如下命令创建 ”/work/imx6” 路径:

#mkdir /work/imx6

执行以下命令解压Qt 源码文件夹:

# tar xvfj qt-everywhere-opensource-src-4.8.5.tar.gz

#tar xvfj linux-imx6-g++.tar.bz2

#cp –fr linux-imx6-g++ qt-everywhere-opensource-src-4.8.5/mkspecs/qws/ linux-imx6-g++

#cp qteverywhere.sh qt-everywhere-opensource-src-4.8.5/

# cd qt-everywhere-opensource-src-4.8.5

#export PATH=$PATH: /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/

修改qt-everywhere-opensource-src-4.8.5/mkspecs/common/linux.conf,pthread后面添加-lts

#make confclean

#make clean

# ./qteverywhere.sh ##飞凌提供的编译脚本,执行完会将qt 默认安装到/usr/local/arm/qt4.8.5

#make

#mkdir –p /usr/local/freescale/qt4.8.5

#make install

#/usr/local/freescale/qt4.8.5/bin/qmake –v #查看是否按照成功

如下图所示则说明添加qt库编译器成功

1.3.3 移植qt4.8.5 到i.MX6 目标板

# cd /usr/local/freescale/qt4.8.5/

# cp -ar lib/libQt* lib/fonts/ /work/imx6/rootfs/opt/forlinx_qt4.8/lib

# cp -ar demos/embeddeddialogs/embeddeddialogs  /work/imx6/rootfs/opt/forlinx_qt4.8/bin

注:若opt/forlinx_qt4.8{lib,bin}目录不存在可以自己创建,也可以是其他目录

1.3.4 导出qt环境变量

# cd /work/imx6/rootfs

# vi etc/rc.d/qt_env.sh#添加以下环境变量

export QTDIR=/opt/qt4.8.5

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QT_PLUGIN_PATH=$QTDIR/plugins

export QT_QWS_FONTDIR=$QTDIR/lib/fonts

export QWS_MOUSE_PROTO=tslib:/dev/input/event2

export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"

export QWS_SIZE=800x480

Qt 环境变量说明:

LD_LIBRARY_PATH:指定qt 的共享库具体路径

QT_QWS_FONTDIR:指定qt 的font 具体路径

QWS_SIZE:设定在屏幕尺寸

QWS_DISPLAY:指定的显示类型和帧缓冲区

QWS_MOUSE_PROTO:指定触摸设备

以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发

板上的/dev 目录下的设备节点相对应。

开机自动启动程序放在/etc/rc.d/apps.sh

内容如下:

#!/bin/sh

#apps

cd /opt/qt4.8.5/demos/embedded/fluidlauncher

./fluidlauncher -qws &

#apps

手动运行程序

#source /etc/rc.d/qt_env.sh

cd /opt/qt4.8.5/demos/embedded/fluidlauncher

./fluidlauncher -qws &

1.3.5 i.MX6 目标板下测试QT4.8.5

用新移植的文件系统启动开发板,进入shell 后执行如下命令:

# cd /opt/forlinx_qt4.8/bin/

# ./embeddeddialogs -qws&

注意:如果想让界面竖屏显示,只需添加-display "Transformed:Rot90"参数即可。

如下图所示:



相关帖子

沙发
llck|  楼主 | 2015-12-24 13:35 | 只看该作者

由于字数限制,将飞凌嵌入式iMX6开发板QT移植过程分为三次发出,
https://bbs.21ic.com/icview-1247682-1-1.html
https://bbs.21ic.com/icview-1247684-1-1.html
https://bbs.21ic.com/icview-1247686-1-1.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

117

帖子

3

粉丝