【源码】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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记本电脑里回收站删除的文件怎么找回来?这几招帮你恢复

在日常使用笔记本电脑的过程中,我们可能会因为不小心或者误操作,将一些重要的文件删除到回收站,甚至可能直接从回收站中清空。面对这种情况,很多人会感到惊慌失措,不知道如何是好。但其实,即使文件从回收站…

TQ15EG开发板教程:创建运行petalinux2019.1

工程网盘链接:https://pan.baidu.com/s/1vFRpzmbifXt7GypU9aKjeg 提取码:0ylh 首先需要使用与petalinux相同版本的vivado创建工程,与之前不同的是在创建硬件设计时需要勾选上添加bit文件,所以要在生成bit文件之后再创建硬件设计…

如何搭建Nacos集群

1.搭建Nacos集群 众所周知,在实际的工作中,Nacos的生成环境下一定要部署为集群状态 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构: 我就直接在本机上开三个Nacos来搭…

Spring(22) Spring中的9种设计模式

目录 一、简单工厂模式(Simple Factory)二、工厂方法模式(Factory Method)三、单例模式(Singleton)四、适配器模式(Adapter)五、代理模式(Proxy)七、观察者模…

凌特杯,第二届,数字音频传输。simulink matlab

终于比赛进入了尾声,最为指导老师也是非常的激动。接下来进入了论文写作阶段和视频拍摄阶段。 第二届凌特杯规定的硬件是ADI的Pluto,成本在2k以内,能支持MATLAB,它能够流畅的实时播放接收到的音乐数据,并把数据保存成…

家居EDI:La-Z-Boy EDI 项目案例

家居行业市场规模庞大,总规模稳定增长。随着信息技术的发展以及全球化进程的加快,许多家居行业的老牌企业在全球范围内广泛扩展其供应链体系,产业链较长,从原材料生产供应、生产制造到销售运输,如何高效、准确地处理这…

CH582F核心板入门:RGB灯点亮与蓝牙上报功能实战

文章目录 一、前言二、硬件1.原理图2.实物图3.实物连接图 三、软件1.初始化2.显示部分3.输出部分(打印和蓝牙上报)4.结果4.1 打印结果4.2 蓝牙上报4.2.1 打开手机蓝牙调试助手,找到ble_test_XXXX4.2.2 点击CONNECT4.2.3 找到Unknown Service服…

STM32(15)USART编程

使用USART实现STM32与电脑之间的通信 中介:USB转TTL模块 闭合总开关,外部时钟才会传输到分频器 c8t6手册里面写了,usart最大支持4.5MHz,所以选10 重映射时记得开启AFIO的时钟

python网络爬虫教程笔记(1)

系列文章目录 文章目录 系列文章目录前言一、爬虫入门1.爬虫是什么?2.爬虫工作原理3.爬虫基本原理4.工作流程5.HTTP请求6.HTTP响应7.HTTP原理:证书传递、验证和数据加密、解密过程解析8.Urllib.request库的使用9.TCP3次握手,4次挥手过程 总结…

PCB电路中每个层是什么?有什么作用

在电子工程领域中,印刷电路板(PCB)是不可或缺的组件,它承载着电子元件之间的连接与通信,而PCB并非单层结构,是由多个层次构成,每层都有其特定的功能和作用,下面我们一起来聊聊。 1、…

计算机网络实验一 网线制作

实验目的与要求: 实验目的 了解以太网网线(双绞线)和制作方法 实验内容 了解网线和水晶头 学习网线制作方法 实验环境和要求 网线 水晶头 压线钳 剥线钳 网线测试器 方法、步骤: 步骤一 准备工具和材料 步骤二 剥掉双绞线的外…

基于 Vue3打造前台+中台通用提效解决方案(下)

47、通用组件 - 倒计时组件 特惠部分存在一个倒计时的功能,所以我们需要先处理对应的倒计时模块,并把它处理成一个通用组件。 那么对于倒计时模块我们又应该如何进行处理呢? 所谓倒计时,其实更多的是一个时间的处理,那么对于时间的处理,此时我们就需要使用到一个第三方…

libigl 网格平均曲率计算

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 根据 Laplace-Beltrami 算子与平均曲率法向的关系: 又根据余切 Laplace-Beltrami 算子的定义: 其中 Ai 为该点邻域面积,取 Voronoi cell 面积如下: 得到

uniapp制作--简单的tab切换

一、实现思路 在UniApp中&#xff0c;可以使用v-if来控制Tab栏并进行切换。 创建一个方法来控制点击时的效果。 二、实现步骤 ①view部分展示 <!-- tab选项 --><view class"select-area"><view class"select-top"><view clas…

基于Python+Flask实现一个TODO任务管理系统网站

随着科技的进步&#xff0c;数字化的任务清单逐渐成为生活中不可或缺的一部分。它们不仅可以帮助我们跟踪日常任务&#xff0c;还可以提高效率。但是&#xff0c;你是否考虑过自己制作一个任务管理系统呢&#xff1f; 好消息是&#xff0c;使用Python和Flask&#xff0c;我们可…

Redis 之六:Redis 的哨兵模式(Sentinel)

Redis 哨兵&#xff08;Sentinel&#xff09;模式是一种高可用性解决方案&#xff0c;用于监控和自动故障转移的集群系统。 在 Redis Sentinel 架构中&#xff0c;哨兵是一组运行在特殊模式下的 Redis 进程&#xff0c;它们可以监控一个或多个主从复制结构中的 Redis 主服务器以…

Excel中筛选合并单元格后,只显示第一行怎么办?

Excel中筛选合并单元格后,只显示第一行怎么办? 我们日常的Excel数据在展示的时候为了数据的清晰和美观往往部分相同的单元格进行合并,但是合并之后在筛选时会发现结果会显示异常。 现在我们筛选下国籍为中国的员工信息,发现只显示了一条数据,解决这个异常只需要五Excel步:…

06-prometheus的数据存储

一、本地存储prometheus收集的监控数据 就是将默认的存储&#xff0c;修改为“我们指定”的目录下&#xff1b; 1&#xff0c;配置systemctl启动文件 [rootprometheus-server32 ~]# vim /etc/systemd/system/prometheus-server.service [Unit] DescriptionPrometheus Server D…

站群服务器租用需要考虑哪些?

站群服务器租用是指租用服务器来托管多个网站或应用&#xff0c;通常用于实现网站优化、提高搜索引擎排名等目的。在选择站群服务器租用服务时可以考虑以下几点&#xff0c;RAKsmart小编为您整理发布。 1. 多IP支持&#xff1a;站群服务器应具备多个独立IP地址&#xff0c;以便…