当前位置: 首页 > news >正文

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

一、本实验实验的器材: 1.正点原子imx6ull的阿尔法开发板v2.2 2.屏幕ALIENTEK 4.3 RGBLCD 二、实验已经移植好的文件: 仓库代码:https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.文件说明 arm-qt.tar.bz2:移植好的…...

【JSON2WEB】07 Amis可视化设计器CRUD增删改查

总算到重点中的核心内容,CRUD也就是增删改查,一个设计科学合理的管理信息系统,95%的就是CRUD,达不到这个比例要重新考虑一下你的数据库设计了。 1 新增页面 Step 1 启动amis-editor Setp 2 新增页面 名称和路径随便命名&#xf…...

ThreeJs同一个场景多个相机的显示

在threeJs开发数字孪生中,我们正常是需要使用一个相机,画面显示的内容也就是这个相机拍摄到的内容,但是是否可以添加多个相机,可以同时从不同角度观察模型呢,实际上是可以的,不过多个相机的拍摄到的画面肯定…...

Vue基础篇

Vue Vue是一套用于构建用户界面的渐进式JavaScript框架 什么是渐进式? Vue可以自底向上逐层地应用; 当构建简单应用时, 只需一个轻量小巧的核心库; 当构建复杂应用时, 可以引入各式各样的Vue插件 Vue具有以下特点: 采用组件化模式, 提高代码复用率且让代码更好维护 声明式编…...

计算机视觉基础知识(十六)--图像识别

图像识别 信息时代的一门重要技术;目的是让计算机代替人类处理大量的物理信息;随着计算机技术的发展,人类对图像识别技术的认识越来越深刻;图像识别技术利用计算机对图像进行处理\分析\理解,识别不同模式的目标和对象;过程分为信息的获取\预处理\特征抽取和选择\分类器设计\分…...

数仓开发-2023/2/29

1.简单自我介绍 2.介绍下之前的公司离线数仓项目 3.sql和hivesql区别? 4.sql的执行顺序? 5.hive的优化 6.说下你之前公司来,你的技能层次在每个公司?你怎么评价你的技能? 7.你的之前业务主要是做什么?我说了…...

ipv6过渡技术-IPv4 over IPv6隧道示例

实验拓扑如下: 环境概述: PC1和PC2与路由器之间为IPv4网络。两台路由器之间为IPv6网络,通过配置,要求是PC1与PC2能互通。即使IPv4可以在IPv6网络中通信。 配置方法: AR1: # ipv6 # interface Gigabi…...

SpringBoot约定大于配置

什么是约定大于配置 "约定大于配置"(Convention Over Configuration)是一种理念,旨在通过默认约定和规则来减少开发人员需要做的配置工作。在Spring Boot框架中,这一原则得到了充分应用,帮助开发者更快地构…...

DHCP自动获取IP地址实验(华为)

思科设备参考&#xff1a;DHCP自动获取IP地址实验&#xff08;思科&#xff09; 一&#xff0c;实验目的 路由器搭载DHCP&#xff0c;让PC通过DHCP自动获取IP地址 二&#xff0c;不划分vlan--全局地址池 实验拓扑 配置命令 Router <Huawei>system-view [Huawei]ip po…...

探索Terraform实践:优化基础设施管理

Terraform 是管理基础设施及代码&#xff08;IaC&#xff09;最常用的工具之一&#xff0c;它能使我们安全且可预测地对基础设施应用更改。 Terraform作为一个强大的基础设施即代码工具&#xff0c;为开发人员和运维团队提供了一种简单而强大的方式来定义、部署和管理基础设施。…...

MYSQL高级_目录

2024持续更新中… MYSQL01高级_Linux版安装、各级别字符集、字符集与比较规则、SQL大小写规范 MYSQL02高级_目录结构、默认数据库、表文件、系统独立表空间 MYSQL03高级_新增用户、授予权限、授权底层表结构、角色理解 MYSQL04高级_逻辑架构剖析、查询缓存、解析器、优化器、执…...

MongoDB获评2023年Gartner®云数据库管理系统“领导者”

MongoDB 很荣幸在《2023 年 Gartner 云数据库管理系统 (CDBMS) 魔力象限》报告中被评为领导者。我们相信这一成就让 MongoDB 成为唯一一家连续两年斩获“领导者”称号的纯应用程序数据库服务提供商。 社区及开发者数据平台用户的需求一向是 MongoDB 关注的重点&#xff0c;而这…...

基于FastAPI构造一个AI模型部署应用

前言 fastapi是目前一个比较流行的python web框架&#xff0c;在大模型日益流行的今天&#xff0c;其云端部署和应用大多数都是基于fastapi框架。所以掌握和理解fastapi框架基本代码和用法尤显重要。 需要注意的是&#xff0c;fastapi主要是通过app对象提供了web服务端的实现代…...

【Unity】使用ScriptableObject存储数据

1.为什么要用ScriptableObject&#xff1f; 在游戏开发中&#xff0c;有大量的配置数据需要存储&#xff0c;这个时候就需要ScriptableObject来存储数据了。 很多人会说我可以用json、xml、txt&#xff0c;excel等等 但是你们有没有想过&#xff0c;假设你使用的是json&#x…...

ChatGPT聊天机器人数据隐私和安全问题

ChatGPT是否安全使用&#xff1f; 是的&#xff0c;ChatGPT是安全的&#xff0c;因为它无法对你或你的计算机造成任何直接损害。由于网页浏览器和智能手机操作系统都使用了沙箱技术&#xff0c;因此ChatGPT无法访问你设备的其余部分。换句话说&#xff0c;当你使用ChatGPT应用程…...

MyBatis三个经典问题

1. Mybatis的执行流程 MyBatis 是一个流行的 Java 持久化框架&#xff0c;提供了对象关系映射 (ORM) 和 SQL 映射的功能&#xff0c;使开发者能够更加方便地与数据库交互。MyBatis 的执行流程大致如下&#xff1a; 配置阶段: 加载配置文件: MyBatis 通过读取配置文件&#xff…...

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站&#xff0c;以提高网站性能、功能完善、用户体验等方面的优势&#xff0c;解决现有教学仪器设备销售网站的问题&#xff0c;并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…...

Java项目:37 springboot003图书个性化推荐系统的设计与实现

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 springboot003图书个性化推荐系统的设计与实现 管理员&#xff1a;首页、个人中心、学生管理、图书分类管理、图书信息管理、图书预约管理、退…...

mysql 8 修改账号密码

一 进入Mysql bin目录 cmd 运行&#xff08;跳过密码&#xff09;&#xff0c;运行完不要关闭 mysqld --console --skip-grant-tables --shared-memory 二 新打开一个cmd mysql bin 目录下登录&#xff0c;密码输入时&#xff0c;直接回车 mysql -uroot -p 三 修改密码 m…...

拜占庭将军问题与区块链

文章目录 拜占庭将军问题问题背景问题的现实意义将军-副官模型三将军问题四将军问题3m将军问题 口头消息算法基本假设方法介绍正确性证明 签名消息算法 区块链区块链是什么区块链对于拜占庭将军问题的解决方法工作量证明奖励机制最长链原则小结 区块链的意义 总结 拜占庭将军问…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...