嵌入式Qt移植之tslib部署到Busybox根文件
烧写Busybox根文件系统到开发板
准备好一个固化系统
-
以TF卡为例子
-
TF 卡用读卡器插到 Ubuntu 虚拟机
-
会出现两个分区
-
boot分区是存放内核和设备树这些
-
rootfs分区是存放文件系统的
-
-
-
-
eMMC、NADA FLASH或者其他方式挂载也可,操作类似
替换文件系统
-
查看挂载
-
ls /media/alientek/rootfs/
-
出厂文件系统
-
-
删除出厂文件系统
-
sudo rm /media/alientek/rootfs/* -rf
-
-
将Busybox根文件系统移动至ubuntu
-
Windows目录
- 阿尔法Linux开发板(A盘)-基础资料\阿尔法Linux开发板(A盘)-基础资料\08、系统镜像\02、教程系统镜像\01、V2.4版本之前的底板\03、文件系统\02、busybox-1.29.0根文件系统
-
-
将Busybox根文件系统解压
-
sudo tar xf rootfs.tar.bz2 -C /media/alientek/rootfs/
-
同步
- sync
-
-
将TF卡退出
将TF卡插入开发板SD卡槽,拨码开关选择以SD卡启动,检查系统能否正常启动
拷贝编译好的tslib到Busybox根文件系统
将TF卡重新插回ubuntu
arm-tslib-imx6ull 到/usr/lib 目录下
-
cp -r arm-tslib-imx6ull /media/alientek/rootfs/usr/lib/
将TF卡退出
配置tslib环境变量
将TF卡插入开发板SD卡槽,拨码开关选择以SD卡启动
已有TSLIB环境配置
- 系统上可能已经烧写的文件系统中包含了tslib,并且在/etc/profile文件中配置了tslib的环境变量
重新配置TSLIB环境变量的原因
-
需要重新配置自己的tslib环境变量,指定自己编译的tslib所在文件夹,以避免与文件系统中已有的tslib冲突
-
直接使用文件系统中已有的tslib是否可行,需要自行测试,版本可能不一样所以建议指定自己移植的tslib
vi /etc/profile
-
export TSLIB_ROOT=/usr/lib/arm-tslib-imx6ull
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE= T S L I B R O O T / e t c / t s . c o n f e x p o r t T S L I B P L U G I N D I R = TSLIB_ROOT/etc/ts.conf export TSLIB_PLUGINDIR= TSLIBROOT/etc/ts.confexportTSLIBPLUGINDIR=TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so-
export TSLIB_CALIBFILE=/etc/pointercal
- 这项配置是为电阻屏专用的。如果使用电容屏,可以不用加这项。若电容屏加了这项,并且使用 ts_calibrate 校准后生成了 /etc/pointercal 文件,请删除该文件,否则会影响触摸准确性,因为电容屏不需要校准
-
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so
-
添加 LD_PRELOAD 环境变量
-
自己制作的文件系统时,系统可能找不到 libts.so,因此需要添加这个环境变量
-
-
sync
- 同步数据
测试tslib触摸
reboot
- 重启开发板
env
-
查看环境变量是否生效
/usr/lib/arm-tslib-imx6ull/bin/ts_test
-
运行 ts_test 测试触摸是否正常,点击界面的 Draw 测试
-
触摸屏上点击 Draw 测试能够画出线条,且位置准确,说明 tslib 配置正常