搭建 ARM 平台的 Qt 环境
说明:在上一个教程已经完成交叉编译QT源码,但是没有配置QT环境的教程,所以补充说明下。
移植 tslib 到文件系统
使用下面的指令打包编译安装好的 arm-tslib 文件夹打包成 tar.bz2 格式,打包以防止文件丢失。
tar -jcf ./arm-tslib.tar.bz2 arm-tslib
然后使用拷贝 arm-tslib.tar.bz2在开发板根文件系统上解压到/usr/lib/目录下。
配置 tslib 的环境变量
编辑/etc/profile 文件,修改成以下内容。如下图红色框部分。“export TSLIB_CALIBFILE=/etc/pointercal”这项是电阻屏专用,如果是电容屏,可不用加这项。电容屏加了这项,如果使用 ts_calibrate 校准后会生成/etc/pointercal 文件,请把它删除!否则可以触摸不准确,因为电容屏不
需要校准。注意,下面指令已经添加了 export LD_PRELOAD=
T
S
L
I
B
R
O
O
T
/
l
i
b
/
l
i
b
t
s
.
s
o
。
经
过
有
些
用
户
反
馈
,
用
了
自
己
制
作
的
文
件
系
统
,
不
知
道
为
何
就
找
不
到
l
i
b
t
s
.
s
o
。
所
以
我
们
需
要
添
加
上
e
x
p
o
r
t
L
D
P
R
E
L
O
A
D
=
TSLIB_ROOT/lib/libts.so。经过有些用户反馈,用了自己制作的文件系统,不知道为何就找不到 libts.so。所以我们需要添加 上 export LD_PRELOAD=
TSLIBROOT/lib/libts.so。经过有些用户反馈,用了自己制作的文件系统,不知道为何就找不到libts.so。所以我们需要添加上exportLDPRELOAD=TSLIB_ROOT/lib/libts.so 这个环境变量!
export TSLIB_ROOT=/usr/lib/arm-tslib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so
测试 tslib
使能 tslib 的配置在/etc/profile 的环境变量,下次开机不用使能,开机会自动使能这个环境变量。
source /etc/profile // 使能环境变量
/usr/lib/arm-tslib/bin/ts_test // 运行 ts_test 测试触摸是否正常,点击界面的 Draw 测试
触摸屏上点击 Draw 测试能够画出线条,且位置准确,说明 tslib 配置正常。按 Ctrl + c 结束 ts_test 指令。
移植 Qt 到文件系统
节编译安装好的 arm-qt 文件夹打包成 tar.bz2 格式,打包以防止文件丢失。
tar -jcf ./arm-qt.tar.bz2 arm-qt
然后在开发板根文件系统上解压到/usr/lib/目录下。如下图,编者已经解压到/usr/lib 目录下。
tar xf arm-qt.tar.bz2 -C /usr/lib
配置 Qt5 的环境变量
编辑/etc/profile,在末尾添加以下内容。如下图红色框内。注意要改为个人实际的路径。要想 Qt 程序显示中文,请自行将 windows 下的(路径 C:\Windows\Fonts)下的中文字库放到新建一个/usr/share/fonts/目录下就可以了。若例程有使用到字符,会显示找到不字库。注意 Windwos 的字库仅为个人学习使用,不要用于商业用途!有版权的!
export QT_ROOT=/usr/lib/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_FONTDIR=/usr/share/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FB_TSLIB=1
测试 Qt 运行
使能 Qt 的配置在/etc/profile 的环境变量,下次开机不用使能,开机会自动使能这个环境变量。
source /etc/profile
/usr/lib/arm-qt/examples/widgets/animation/animatedtiles/animatedtiles //运行编译的示例
7 寸屏 800x480 显示效果如下(拍照效果略差,实际效果很好),同时点击图中的项,确认触摸正常。Qt 官方例子也十分流畅!开启程序需要提前插鼠标!移植的 Qt 不支持热插拨鼠标(出厂系统支持热插拨),Qt 官方说明需要 libudev 情况下 Qt 才能支持热插拔,请自行解决。
注释:主要参考正点原子的QT开发配置