目录

一.搭建开发环境

创建虚拟机

安装 VMware Tools

设置共享文件夹

更新和安装对应库

安装QT 5.12.9 开发环镜

初次编译开发板的SDK

Tslib编译,安装

QT源码编译,交叉环境安装

添加QT的 Kits 构建套件

测试构建工具

T113硬件调式

测试驱动程序

终端机配置QT程序运行环境


一.搭建开发环境

准备工作

安装好VMware Workstation 17 Player虚拟工具

准备文件

  1. QT源代码: qt-everywhere-src-5.12.9.tar.xz
  2. tslib-1.21.zip
  3. QT安装程序:qt-opensource-linux-x64-5.12.9.run
  4. 开发板SDK:Tina-Linux-20220815.tar.gz
  5. 安装于虚拟机的系统:ubuntu-18.04.6-desktop-amd64.iso

创建虚拟机

运行VMware Workstation 17 Player 点创建新虚拟机

  1. 选择稍后安装操作系统 >下一步
  2. 客户机操作系统选 Linux , 版本 Ubuntu 64位 >下一步
  3. 名称,位置跟据实际情况选择 > 下一步
  4. 磁盘大小100GB(并非立即占用).将虚拟磁盘存储为单个文件(可选多个文件) >下一步
  5. 自定义硬件 内存,处理器根据电脑性能调整,网络适配器选择桥接(不要有IP冲突就可以) CD/DVD先择提前准备好的系统镜像文件ubuntu-18.04.6-desktop-amd64.iso >关闭硬件窗口>完成

安装虚拟系统

运行新建虚拟机,进入Ubuntu安装程序的Welcome页面

1.选择中文(简体) > 点安装Ubuntu

2键盘布局 >继续

3.更新和其他软件 选 ‘最小安装’ >继续

4.清除整个磁盘并安装(创建虚拟机时指定的磁盘,选物理盘的要注意数据掉失) >现在安装 >继续

5.地方选择 Shanghai >继续

6.名称计算机名,用户名,密码 自己决定.选自动登录 > 继续

7. 等等等…………(多长时间要由计算机配置决定)

8. 安装完成 > 现在重启

9. 进入Ubuntu系统桌面.

重启失败 按Alt+Ctrl 点虚拟机上方式强制重启

如果再次进入安装程序, 要在CD/DVD取消系统镜像文件

安装 VMware Tools

  1. 虚拟机左上角Player ->管理->安装VMware Tools 桌面出现挂载VMwareTools镜像光盘(如果没有 虚拟机设置->CD/DVD 设备状态选择已连接和启动时连接)
  2. 双击打开VMwareTools文件夹. 文件夹空白外右击在终端打开
  3. cp VMwareTools-10.25-20206839.tar.gz ~/
  4. cd ~/
  5. tar -zxvf VMwareTools-10.3.25-20206839.tar.gz
  6. cd vmware-tools-distrib
  7. sudo ./vmware-install.pl 输入系统安装时指定的密码,以后不在说明
  8. 输入yes 回车 后面地址选项全部按回车使用默认
  9. 出现 --the VMware team 安装完成 重启生效 >关闭系统

至此 虚拟系统ubuntu-18.04.6安装完成

设置共享文件夹


打开虚拟机设置,如上图添加文件夹

点下一步 选择主机目录 下一步直到完

在虚拟系统 打开文件夹>其他位置  共享文件夹在mnt目录下

/mnt/../... 地址就是共享目录

更新和安装对应库

打开终端 (Ctrl + Alt + T)

更新

sudo apt-get update

安装相关库

sudo apt-get install autoconf automake libtool m4 pkg-config build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++6 libstdc++6 libmpc-dev libgmp-dev

修改根目录的opt文件权限方便后面文件复制

sudo chmod 777 /opt

安装QT 5.12.9 开发环镜

用户目录新建Allwinner文件夹

mkdir ~/Alwinner

将QT源码 QT安装程序,TinaLinux tslib复制进去

文件夹愉右击 在终端打开

sudo ./qt-opensource-linux-x64-5.12.9.run  运行QT安装程序

1点next输入帐号/密码 点Next 如果没有要在QT官网注册

2同意 GPL协议 点下一步直到安装文件夹

3地址默认 /opt/Qt5.12.9 下一步

4组件 全选(Sources 占用空间比较大可以去掉) 下一步

5许可协议 同意 下一步 下一步 等安装完成 关闭

初次编译开发板的SDK

右击Tina-Linux-20220815压缩包提取到此处

打开终端进入SDK根目录

cd Tina-Linux-20220815/Tina-Linux

先择分支

source ./build/envsetup.sh

lunch

7

编译内核(选项全部回车选默认)

make

编译设备树

mboot

打包

pack

Tslib编译,安装

关联T113所用的编译器

gedit ~/.bashrc

文件末尾增加一行

export PATH=$PATH:/home/ubuntu/Allwinner/Tina-Linux-20220815/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/

source ~/.bashrc

运行arm-openwrt-linux-gcc -v 可以看到arm编译工具的信息

右击 tslib源码压缩包提取到此处

进入tslib源码根目录

cd tslib-1.2.1

运行autogen.sh

./autogen.sh

tslib源码根目录创建安装文件夹

mkdir tmp
echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux.cache
./configure –host=arm-openwrt-linux –cache-file=arm-linux.cache -prefix=$(pwd)/tmp
make

安装tslib库 ,完成,tslib安装在tmp文件夹

make install 

将安装文件复制到/opt文件夹改名为tslib

   cp -r ./tmp /opt/tslib

下步骤安装qt交叉编译环境会用到此tslib

QT源码编译,交叉环境安装

解压QT源码,右击提取到此处

进入QT源文件

cd qt-everywhere-src-5.12.9

修改qmake.conf文件

gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
### qmake configuration for building with arm-linux-gnueabi-g++#MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublibQT_QPA_DEFAULT_PLATFORM  = linuxfb
QMAKE_CFLAGS   += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS      += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hardinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC                = /home/ubuntu/Allwinner/Tina-Linux-20220815/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-gcc
QMAKE_CXX               = /home/ubuntu/ Allwinner/Tina-Linux-20220815/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-g++
QMAKE_LINK              = /home/ubuntu/ Allwinner/Tina-Linux-20220815/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-g++
QMAKE_LINK_SHLIB        = /home/ubuntu/ Allwinner/Tina-Linux-20220815/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-g++# modifications to linux.conf
QMAKE_AR                = arm-openwrt-linux-ar cqs
QMAKE_OBJCOPY           = arm-openwrt-linux-objcopy
QMAKE_NM                = arm-openwrt-linux-nm -P
QMAKE_STRIP             = arm-openwrt-linux-strip
load(qt_config)
##

注意:ARM编译工具的绝对路径 QMAKE_CC,QMAKE_CXX,QMAKE_LINK,QMAKE_LINK_SHLIB 地址是SDK绝对路径(错误可能会提示maybe you forgot to setup the environment )

运行配置脚本

./configure -prefix /opt/armqt5.12.9 -opensource -xplatform linux-arm-gnueabi-g++ -no-opengl -nomake examples

输入yes确认(如前面有商业版/开源版选择就输入o确认)

等一会 无报错,有几个WARNING:不理会

开始编译QT

make

等很久,(确保不出问题我只用单线程编译,可以尝试多线程make -j4 后面数字4为编译线程数量)

安装QT交叉编译环境

make install

如无意外 在-prefix 指定的/opt/armqt5.12.9目录就是最终想要的库

添加QT的 Kits 构建套件

运行QT程序  点击 工具->选项

分别增加 C和C++编译器

选择SDK目录下的GCC 和G++ 工具

C编译器选择SDK工具的gcc 名称自定

C++编译器选择SDK工具的g++ 名称自定

点右下角的Apply 没有提示错误. 编译器添加正确

增加QT Versions  选择qmake Location 为之前源码编译安装的qmake

增加Kits 名称自定,上图红色框选前面步骤创键的选项 点Apply无错误提示后OK完成

测试构建工具

新键最简单的工程,Kits时要勾选上新增的构建工具.

构建ARM运行程序. 无错误说明设置成功

T113硬件调式

通过虚拟机共享文件夹将SDK目录下的out/t113-mq-r/tina_t113-mq_r_uart0.img.文件放到Window系统,运行PhoenixCard工具将镜像文件烧写到SD卡中,注意选择启动卡

开发板插上SD卡上电运行 uart0打印输出如上.

显示屏可以看到一个图像

电容屏硬件电路

修改源码设置树文件

gedit device/config/chips/t113/configs/mq_r/board.dts

打开SDK的设备树源文件,修改触摸屏的中断的复位引脚.

修改分区大小

gedit device/config/chips/t113/configs/mq_r/sys_partition.fex

增加boot和rootfs分区容量

make kernel_menuconfig

配置内核增加电容屏驱动 GT911

make menuconfig

增加tslib库支持

默认是squashfs 改为ext4

编译内核 所有选项回车默认值

make

编译设备树

mboot

打包

pack

新镜像下载到SD卡 上电测试

cat /proc/bus/input/devices  查看输入设备 电容触摸屏是event1

测试驱动程序

串口调式终端输入 /usr/bin/ts_test

测试显示屏与触摸屏

终端机配置QT程序运行环境

TF卡挂载到虚拟机上 查看TF 卡分区情况如下图

终端打开空闲分区,将空闲分区改为用户权限

复制QT库文件

QT的测试工程构建的ARM版 也复制进来

终端打开TF卡的根目录

管理员权限打开etc/profile文件

修改红框内容

.

/mnt/UDISK/armqt5.12.9  QT库路径复制到空闲分区

上面主要设置QT运行环境关的库 ,显示屏,触摸屏

复制SDK 里的libstdc++.so.6 库文件到终端机的lib文件夹内,要不会报如下错误

Error loading shared library libstdc++.so.6: No such file or directory (needed by ./testmain)

终端机上启动系统

运行测试程序.

新建线程启动程序 命令行后加&

ps  查看所有运行程序

kill PID 关闭指定PID的程序(PID通过ps查看)

以上是调试全过程的记录,如有错误或不明白的地方欢迎评论留言

全志T113 芒果派MQ-Dual(T113) QT+电容触摸相关推荐

  1. 全志芒果派麻雀开发板----新建一个分区并挂载(1)

    目录 吐槽--开发板全都是吃灰的 正文: (一)找资料的办法! (二)新建分区 (三)分区的挂载 1,建立文件夹(这一步我就想了很久,怎么建立完还能打包到烧录包里) 2,分区挂载到文件夹上: 3,新建 ...

  2. 全志D1s/F133学习笔记(1)——MangoPi-MQ(芒果派麻雀)上手试玩

    一.资料 D1s是全志针对智能解码市场推出的高性价比AIoT芯片.它使用64bit RISC-V架构的阿里平头哥C906处理器,内置了64M DDR2,支持Linux系统,同时集成了大量自研的音视频编 ...

  3. 全志D1s/F133学习笔记(2)——MangoPi-MQ(芒果派麻雀)Tina系统编译烧录

    文章目录 一.SDK和资料: 二.SDK结构: 三.环境配置 四.打补丁匹配麻雀开发板 补丁修改文件分析: 五.配置和编译 六.烧录 七.上电运行 八.补丁包修改 1.原因分析 2.修改方法 3.编译 ...

  4. 全志D1/D1s芯片:芒果派麻雀点RGB屏填坑

    前言 最近全志推出了D1处理器,搭载平头哥玄铁906 RISC-V的应用处理器.于是准备入手玩一下,买了芒果派做了基于D1s的麻雀板,D1s是D1内封64M DDR的版本,去掉了hdmi输出,号称点屏 ...

  5. linux笔记(9):MangoPi-MQ(芒果派麻雀D1s)Tina系统编译烧录

    文章目录 1.下载相关资料 1.1 WhyCan Forum(哇酷开发者社区)提供的sdk 1.1.1 SDK解压过程 1.2 WhyCan Forum(哇酷开发者社区)提供的补丁 1.2.1 补丁包 ...

  6. Linux-ARM架构,全志H616香橙派开发笔记

    一.前期准备工作 1.材料准备 ①SD卡及读卡器 ②CH340USB转232串口 ③全志H616香橙派和type-C转USB供电线 ④ PC一台 ⑤SD卡格式化软件SD Card Formatter. ...

  7. 全志A33之添加电容触摸GT911驱动

    全志A33之添加电容触摸GT911驱动 基于锐尔威视的A33开发板及提供的开发包,仅供参考. 开发板说是支持GT911,其实是不支持的,得修改驱动及配置,启动文件. 一.      修改配置文件 /h ...

  8. 全志V3S荔枝派zero10分钟制作TF启动卡,主线Linux,主线u-boot(超过10分钟博主直播吃奥利奥!!!)

    一,初学者(比如我)刚拿到zero时,一定是一脸懵逼的,无从下手的,通过几篇代佬们写的文章+官网资料,了解了几种启动方式 1.Camdriod 官方SDK 2.主线Uboot + Bsp 内核 3.主 ...

  9. 全志H616香橙派OrangePi Zero2开发板连接USB以太网卡测试

    1) 目前测试过能用的 USB 以太网卡如下所示,其中 RTL8153 USB 千兆网卡插入开 发板的 USB 2.0 Host 接口中测试可以正常使用,但是速率是达不到千兆的,这点请注意 2) 首先 ...

最新文章

  1. 程序员面试的一些心得
  2. 自定义控件:滑动开关
  3. 2年Java面试提问总结
  4. 文件服务器存储,文件服务器存储
  5. linux下搜狗输入法无法输入中文解决方法
  6. 关闭Wordpress修订功能,清除“Revision”的方法
  7. 【Flink】Flink消费Kafka数据时指定offset的五种方式
  8. C++学习笔记----2.4 C++对象的内存模型
  9. 利用构造函数实现累加
  10. ubuntu下安装绿联的AC650网卡驱动
  11. 餐饮行业收银系统源码,C# .NET + MSSQL WPF
  12. QQ群、讨论组上传文件,由于网络原因上传失败?
  13. 海外社交媒体最佳图片尺寸
  14. cot函数 java_java8、jdk8日期与字符串转化
  15. BT源代码学习心得(九):客户端源代码分析(图形界面浅析) -- 转贴自 wolfenstein (NeverSayNever)
  16. 图像类的分类模型假阳性(FP)高的解决思路
  17. WIin10——QTP10.0运行mgn-mqt82未能生成lservrc文件
  18. 如何调整照片大小kb?将照片缩小到指定的kb方法?
  19. python语言程序设计基础考试题库_中国大学MOOC(慕课)_Python语言程序设计基础_测试题及答案...
  20. matlab中标幺值,标幺值概述

热门文章

  1. 音乐python播放函数-python入门系列1——用Beep函数手动实现7个音符的播放
  2. Python - 知识整体框架 (思维导图)
  3. 都能看懂的LIS(最长上升子序列)问题
  4. Oracle Flashback(闪回) 详解.
  5. LoRa物联网在智慧农业的应用:智慧大棚解决方案
  6. CMake 编译jsoncpp
  7. 如何在windows上调试安卓机谷歌浏览器上的页面
  8. gradle设置build执行命令_Build.gradle 详细配置说明
  9. 高德地图 JSAPI 给指定部分标记颜色
  10. Spark学习之路 (二)Spark2.3 HA集群的分布式安装