【源码】imx6ull实现触摸屏单点实验-移植tslib和qt

2024-03-05 16:20

本文主要是介绍【源码】imx6ull实现触摸屏单点实验-移植tslib和qt,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、本实验实验的器材:
1.正点原子imx6ull的阿尔法开发板v2.2
2.屏幕ALIENTEK 4.3 RGBLCD
在这里插入图片描述
二、实验已经移植好的文件:
仓库代码:https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git

在这里插入图片描述
在这里插入图片描述
1.文件说明
arm-qt.tar.bz2:移植好的qt源码
arm-tslib.tar.bz2:移植好的tslib源码
23_multitouch :驱动代码
tslib-1.21:tslib源码
rootfs:移植好的根文件系统
imx6ull-alientek-emmc.dts:移植好的设备树文件

三、移植tslib:
方法一:
直接使用我移植好的根文件系统rootfs,解压替换自己的根文件,然后将make dtbs`重新编译出imx6ull-alientek-emm.dtb文件复制到自己的tftpboot文件夹里:
1.在自己ubuntu环境下编译23_multitouch文件,【记得更改里面的Makefile文件的交叉编译器路径】

make
cp gt9417.ko 到自己的根文件路径/lib/modules/4.1.15

2.然后连接自己的开发板,使用网络加载根文件和dtb、zimage的方法启动板子

ls /dev/input
cd /iib/modules/4.1.15
depmod
modporbe gt9417.ko 
ls /dev/input
查看自己多出来的eventx  是多少号
然后 vi /etc/profile

方法二
第一步:imx6ull-alientek-emm.dts是已经适配4.3寸屏幕的设备树源文件,替换自己linux内核中的设备树文件。然后使用make dtbs重新编译出imx6ull-alientek-emm.dtb文件,然后复制新的dtb文件到自己的tftpboot文件夹里

cp arch/arm/boot/dts/imx6ull-alientek-emmc.dtb /home/wj/linux/tftpboot/ -f

在这里插入图片描述
第二步:将tslib移植 【移植步骤如下】
1.解压tslib文件
2.修改 tslib 源码所属用户:sudo chown wj:wj tslib-1.21 -R 【wj改为自己的ubuntu用户名】
3.安装工具包

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

4.创建一个新的空白tslib文件用来存放编译后的tslib文件
比如:/home/wj/linux/tool/tslib
5.编译

cd tslib-1.21/
/autogen.sh
/configure --host=arm-linux-gnueabihf --prefix=/home/wj/linux/tool/tslib 【前提交叉工具链已经安装好,未安装参考后面的补充步骤】
make
make install

6.执行完以上操作之后,就会在/home/wj/linux/tool/tslib目录下生成
在这里插入图片描述
然后将这里的所有文件复制到自己的根文件下面,比如我的

cd linux/tool/tslib
sudo cp *  /home/wj/linux/nfs/rootfs -f

7.在自己ubuntu环境下编译23_multitouch文件,【记得更改里面的Makefile文件的交叉编译器路径】

make
cp gt9417.ko 到自己的根文件路径/lib/modules/4.1.15

8.然后连接自己的开发板,使用网络加载根文件和dtb、zimage的方法启动板子
在这里插入图片描述

ls /dev/input
cd /iib/modules/4.1.15
depmod
modporbe gt9417.ko 
ls /dev/input
查看自己多出来的eventx  是多少号
然后 vi /etc/profile

在这里插入图片描述
然后在运行
ts_test_mt就会在屏幕上出现测试界面
请添加图片描述
四、移植qt:
1.下载源码
wget https://download.qt.io/archive/qt/5.12/5.12.9/single/qt-everywhere-src-5.12.9.tar.xz
2.解压源码
tar xf qt-everywhere-src-5.12.9.tar.xz
cd qt-everywhere-src-5.12.9/
3.修改qmake.conf 【直接git clone https://gitee.com/QQ1252699831/qt5.12.9-conf.git】
在这里插入图片描述
4.修改autoconfigure.sh,【然后将该文件放在qt-everywhere-src-5.12.9目录下面
在这里插入图片描述
在这里插入图片描述
5.给权限

chmod +x autoconfigure.sh

6.安装g++

sudo apt-get install g++

7.执行

./autoconfigure.sh

8.编译

make

9.安装

make install

10.移植arm-qt到板子的文件系统
打包:tar -jcf ./arm-qt.tar.bz2 arm-qt 【或者直接使用我仓库里的】
11.然后使用 U 盘拷贝 arm-qt.tar.bz2, 在 USB 接口插上 U 盘
12.挂载 U 盘的目录, sda1 为 U 盘的分区,不要写成 sda!sda 只是设备名

mount /dev/sda1 /mnt

进入 U 盘的挂载目录后,将 arm-qt.tar.bz2 解压到/usr/lib 目录下

tar xf arm-qt.tar.bz2 -C /usr/lib

在这里插入图片描述
13.修改/etc/profile

export QT_ROOT=/usr/lib/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event4
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

14.激活环境

source /etc/profile

15.运行qt例程
/usr/lib/arm-qt/examples/widgets/animation/animatedtiles/animatedtiles //运行编译的示例

在这里插入图片描述
五、部署qt程序到板子上:
1.首先确保/usr/lib目录下是否存在以下俩个文件
在这里插入图片描述
2.在QT Create软件中配置自己的交叉编译工具

方法一:配置 ARM 平台的 Qt Creator Kits
方法二:命令行编译 Qt 工程 【推荐】

在这里插入图片描述
3.给linux安装字库请添加图片描述
4.部署编译后的qt程序到板子上
自己在根文件系统下面创建一个文件夹,用来存放qt的可执行文件
在这里插入图片描述
5.板子上测试qt程序

./test

在这里插入图片描述
请添加图片描述
补充:安装交叉编译器
在这里插入图片描述在这里插入图片描述

这篇关于【源码】imx6ull实现触摸屏单点实验-移植tslib和qt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777099

相关文章

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque