全志T113-S3入门资料汇总(避坑指南)一
也是闲着无事买了个芒果派的T113的小板子,因为自己以前搞过Linux,工作也跟Linux相关,本以为可以很快搞好开发环境,结果还是折腾了两个周末,所以就把资料整理下,关键的地方列出来,希望大家少走弯路。
编译环境
编译环境的话,基本就是参照芒果派的github:
https://github.com/mangopi-sbc/Tina-Linux
但是这个地方我卡了很久,我反复用Ubuntu虚拟机,docker,各种环境都无法成功,终其原因,还是github太卡了,导致无法下载完整的工程,后面编译就各种报错。
如果大家不愿意用网盘文件(其实初学推荐网盘),非要跟我一样折腾,建议如下:
1、一定要用ubuntu 18.04的版本,不要用其他版本
2、尽量用虚拟机而不是docker,但是据说docker是可以成功的
3、四个需要wget的文件很大,可以单独下载好,放到Tina-Linux目录外备用,这样如果git clone失败,还可以再拷贝进来,节省每次下载的时间。
4、git clone的过程中,如果出现长时间的卡或者失败,建议删了重新git,特别是那个子模块的更新git submodule update --init --recursive,一旦有卡顿,就全部删了重新来,否则就算过去了,后面make还是会报错。删的时候前面四个wget的文件拷出去,后面这块就节省下载时间。
所以这里面最大的坑就是,git clone和git submodule两个命令,一定是看到非常流畅的执行完,而不是停顿或者卡。否则文件不全,后面make大概率出错。
然后环境搭建,有几个帖子,大家可以参考:
《Mangopi MQ-R:T113-s3编译Tina Linux系统》
https://blog.csdn.net/qq_28877125/article/details/126684892
《MangoPi-MQ 麻雀D1s上手教程》Tina系统编译烧录及基础分析
https://whycan.com/p_72297.html
《【嵌入式AI】全志 R329 Tina 系统镜像编译》
https://zhuanlan.zhihu.com/p/392832413
《全志在线文档》
https://www.aw-ol.com/docs
在阅读资料的时候,就看到这个在线文档就很生气,为啥R329,D1啥的都有教程,T113就没有呢,不是亲儿子吗,哈哈哈,不过有许多步骤是通用的,大家参考就好。
编译选项
对于从来没有开发过linux的同学来说,git,make这些命令就够吃一壶了,何况是make menuconfig这么复杂的东西。所以我们只需要知道敲入make menuconfig命令后,出现的界面只是为了改变我们内核的配置项就可以了。对于初次入手,我们不需要动这个地方,直接make就行,先跑起来再说。
编译的时候,直接敲入:
make FORCE_UNSAFE_CONFIGURE=1
什么多进程编译咱先不管,能编出来再说,如果不加上面那个FORCE_UNSAFE_CONFIGURE=1,会报错,加了就没事了
烧录
烧录真的是个大坑,首先,建议大家先拿芒果派现成的固件走一下烧录和开机流程,避免因为自己编译的固件有问题导致后面失败,而且还不知道为什么。
现成的固件
MQ-R-T113(RTL8189): https://mangopi.org.cn/_media/undefined/mq-r-t113-rtl8189fs-5113-dns-uart0.zip
MQ-R-T113(RTL8723): https://mangopi.org.cn/_media/undefined/mq-r-t113-rtl8723ds-5135-dns-uart0.zip
烧录的话,我们可以看到官网视频介绍了好几种工具,什么PhoeniSuit、PhoenixCard、PhoenixUSBPro,还有什么烧号工具DragonSN。搞得我一头雾水。后面我才整明白,芒果派这个T113的板子上没有焊接SPI NAND FLASH,所以这些量产工具根本用不到。我烧录系统,只需要PhoenixCard一个工具就行了,其他的都用不上,大家不要走弯路。
PhoenixCard下载地址:https://www.aw-ol.com/downloads?cat=5
PhoenixCard这个工具很简单,就是根据我们打包好的镜像配置,给TF卡分若干个区,然后把对应的boot,rootfs写进对应的区里。弄完之后,从pc读卡器上拔掉TF卡,插到T113的卡槽里,就可以启动Tina了。
PhoneixCard视频教程:(直接跳到11:25开始看,其他的没用)
https://open.allwinnertech.com/#/video/open?menuID=17&videoId=380
关于PhoenixCard有几个要点:
1、记得选启动卡选项,而不是量产卡。
2、用PhoenixCard生产的卡,如果后面不给TIna用了,还是用这个工具去恢复TF卡,否则电脑不认。
启动
Tina的启动过程比较复杂,有兴趣的可以看下面这个视频:
https://open.allwinnertech.com/#/video/open?menuID=17&videoId=297
懒得看视频,听我说也行。其实linux系统启动都一样,先启动uboot,大家可以理解为uboot就是一个启动器,负责将屋子收拾干净,等后面linux系统进来入驻。
我们需要用串口连接板子上的E2,E3,GND,可以用usb-ttl工具去连,于是电脑上就可以通过usb-ttl看到T113串口输出的信息了。为什么是E2、E3两个脚充当RX、TX,大家看一眼电路图就知道了,这两个脚就是默认的T113的串口0,系统打印就是从这里收发的。
当系统启动的时候,我们不停的在串口终端上敲键盘的2键,就可以让其停在uboot步骤下,并且可以下发uboot的指令去拉起内核啥的,这个有兴趣大家自己研究,uboot教程网上一大堆。
在Tina的uboot里,有个efex命令,就是可以让系统进入量产状态,这样就可以使用PhoeniSuit工具量产固件,但是这个量产状态,是为spi nand flash准备的,芒果派的板子上根本没有spi nand flash,所以这个量产状态对我们而言压根没用。我们是用SD卡启动的。就这个点,我开始一直没明白,各种量产失败,直到后面才恍然大悟,特别坑。
当然芒果派上面有spi nand flash的焊盘,大家可以自己买一个焊上去,型号我还没空查,有试过的可以给我留言,我补充上去。
Tina的启动流程里,在uboot之前还有个boot0,这个boot0就是为了拉起uboot的。大家可以理解两个峡谷之间搭悬索桥,就是先拉一个风筝线,然后再用风筝线拉粗一点的绳子,再用粗的绳子拉钢索。boot0拉uboot,uboot拉tina,其实是一个道理。之所以搞这么多层,主要还是怕某个过程烧写错了,板子变砖。因为boot0的存在,且是固化到CPU里的,所以T113永远不会变砖,大概是这个意思。但是因为我们是SD卡启动的,所以上面这些可以不管,我们玩我们的就好。
连接wifi
只要系统能正常启动,连接wifi还是比较简单,就几条命令而已,可以参照R329的官方资料:
https://r329.docs.aw-ol.com/devboardstudy/r329evb5studywifi/
搜索wifi:wifi_scan_results_test
连接wifi:wifi_connect_ap_test wifi名 密码(参数有空格的哈)
连上之后,可以用ifconfig命令查看自己的ip地址,也可以通过ping命令测试连通性。
PC驱动
板子启动后,我感觉有两种驱动,如果是量产状态,有个量产对应的设备驱动,这个我们可以不管。但是如果进了Tina系统,会有一个ADB驱动,需要大家安装,这样后面用ADB工具可以推送我们编译好的helloword到板子。
驱动下载地址:https://www.aw-ol.com/downloads?cat=5
下那个PhoeniSuit工具,里面有个Drivers目录,就有ADB驱动,插上板子到PC,设备管理器弹出感叹号,然后自己装就行了。
”ADB(tab自动补全版)“也下载下来,后面用它跟板子做文件交互。
总结
今天就写这么多吧,也是这两个礼拜折腾T113的总结,希望大家少走点弯路。其实我玩的板子很多,包括目前的工作,也是在高通和Realtek的平台上跑Linux,包括stm32,FreeRTOS还有lwip,玩了都十来年了。那为什么我选T113呢,我觉得有这么几个原因:
1、我需要一个板子,有时候帮我验证下linux小应用,树莓派我嫌太大了
2、T113不是BGA封装,如果想自己搞点开源项目,对PCB的压力比较小
3、说实话什么AI啊,机器学习啊,离我比较远,这些玩意都是大厂才玩得起的,我们个人学习,除非是这个行业,否则没必要跟着凑热闹,搞个学习模型都累死,搞完了也不知能干啥,板子放着落灰。我的学习重心主要还是做一些开源的物联网应用,远程浇个花,统计下上报的环境数据,搭建一些远程服务器啥的,都是比较实用的东西,感觉离实用性更近一点。
后面有空再补充交叉编译和分区,io操作吧,我自己也在熟悉,祝大家玩的愉快!
原贴链接:https://bbs.aw-ol.com/topic/2495/
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
全志及开发者最新动态可以关注全志在线微信公众号
相关文章:

全志T113-S3入门资料汇总(避坑指南)一
也是闲着无事买了个芒果派的T113的小板子,因为自己以前搞过Linux,工作也跟Linux相关,本以为可以很快搞好开发环境,结果还是折腾了两个周末,所以就把资料整理下,关键的地方列出来,希望大家少走弯…...

3dMax全球学习资源、资源文件和教程 !
此样例教育教程和学习资源旨在提供使用Autodesk 3ds Max时的计划知识和培训、正确的工作流、流程管理和最佳实践。 您在Autodesk三维设计领域的职业生涯 有关使用3ds Max和Maya在计算机图形领域开始职业生涯的提示(包括新的3ds Max和Maya介绍教程,以复…...
API接口是什么?有哪些免费的API接口?
API(接口)是什么? 举个常见的例子,在京东上下单付款之后,商家选用顺丰发货,然后你就可以在京东上实时查看当前的物流信息。京东和顺丰作为两家独立的公司,为什么会在京东上实时看到顺丰的快递信…...

USB Server应用于汇丰晋信基金
为了满足UKey远程连接调用、安全集群管理需求,汇丰晋信基金选择了朝天椒USB Server作为其解决方案。朝天椒USB Server以其卓越的性能和可靠性,为汇丰晋信基金提供了稳定的Ukey连接管理服务。这一选择不仅提高了汇丰晋信基金的工作效率,还保障…...

[BSidesCF 2019]Kookie 1 , cookie伪造
给了一个用户和密码 用户名:cookie 密码:monster 登录后查看cookie 发现就是用户名维持登录 那么修改用户名为 admin 得到flag...

如何查看MySQL的安装位置
MySQL的安装位置 1、查看安装目录 参数 路径 解释 备注 --basedir /usr/bin 相关命令目录 mysqladmin mysqldump等命令 --datadir /var/lib/mysql/ mysql 数据库文件的存放路径 --plugin-dir /usr/lib64/mysql/plugin mysql插件存放路径 --log-error …...
ui设计岗位招聘要求有哪些? 优漫动游
UI设计师的工作是接到使用者轮廓、线框草稿后,创造出好看、好用的画面,视情况会搭配VisualDesigner(视觉设计师),不过偶尔还是需要自己做图,包含插图、icon绘制等;透过设计过的画面,…...
Swift报错:“‘nil‘ is incompatible with return type ‘User‘”
func getUserById(userId: Int) -> User {if (userId ! nil) {...}return nil } 上述代码报了一个错误:“nil is incompatible with return type User”,表示“nil”与返回类型“User”不兼容。 解决方案: 将返回值类型改为Optional类型…...

LabVIEW利用局部放电分析高压电气设备状态诊断
LabVIEW利用局部放电分析高压电气设备状态诊断 目前,高压电气设备状态的监控系统解决了早期故障检测的问题。局部放电起源于电力电气装置的绝缘。局部放电会导致绝缘层逐渐磨损和加速老化,因此可能导致绝缘完全击穿。因此,局部放电检测及其特…...
TCP/IP UDP广播无法发送或接收
TCP/IP UDP广播无法发送或者接收数据 在看《TCP/IP 网络编程》这本书的时候,看到广播那一节,跟着书上写代码,怎么写都不行,广播就是没法发送/接收,发送端一直在发送数据,接收端就是没有反应。 对了好几遍…...

清理Maven仓库中下载失败的文件
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

服贸会2023 | 希尔贝壳入选“智赋百业”人工智能融合发展与安全应用典型案例
9月6日,服贸会(中国国际服务贸易交易会)“2023人工智能融合发展与安全应用”论坛在国家会议中心举行,论坛由国家工业信息安全发展研究中心、世界贸易网点联盟主办,旨在促进人工智能领域贸易合作,充分发挥人…...
axios请求多个服务器
在此之前, 请求的服务器需要后端设置可跨域 此文章中主要有两种方案: const apis {api1: http://aaa.com/,api2: http://bbb.com/ }(1) 把baseURL置空不设置, 定义一个新的axios const service axios.create({timeout: 300000, // 5分钟 })把完整的url链接放入到请求中 ex…...

vs2022不能加载winform界面
今天遇到vs2022加载winform界面错误, The service ‘Microsoft.VisualStudio.Shell.Design.Serialization.DesignerDocDataService’ must be installed for this feature to work。 当前vs版本: Microsoft Visual Studio Enterprise 2022 (64 位) - Cur…...

CMakeList.txt
CMakeList.txt的写法 前言一个最近写好的CMakeList.txt对上边CMakeList.txt的说明修改 前言 复习一下CMakeList.txt的写法,以下面的一个CMakeList.txt为例 一个最近写好的CMakeList.txt cmake_minimum_required(VERSION 3.17)project(QtVTKProject)# INCLUSION OF Qt # set(…...

华为云使用脚本初始化Linux数据盘
初始化新挂载的磁盘 登录云服务器,执行以下命令获取自动初始化磁盘脚本。 wget https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/datadisk/LinuxVMDataDiskAutoInitialize.sh 说明: 若回显异常,请检查云服务器是否绑定弹性公…...

leetcode 129. 求根节点到叶节点数字之和
2023.9.8 好久没写回溯题了,有点陌生ToT。 本题思路就是通过回溯保存所有根节点到叶子节点的路径,然后将这些路径转化为数字并全部相加。 直接看代码: /*** Definition for a binary tree node.* struct TreeNode {* int val;* Tre…...

嵌入式开发-11 Linux下GDB调试工具
目录 1 GDB简介 2 GDB基本命令 3 GDB调试程序 1 GDB简介 GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具。 一般来说,GDB主要帮助你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序&#…...
Java测试(11) --- selenium
测试用例方法以teat_开头 运行脚本的时候默认自动会运行test_开头的方法普通方法不以test_开头 普通方法被test_开头的方法调用的时候才会运行测试套件,把不同文件里的不同类里面的不同的测试方法组织起来放在一起运行(1)addTest 把不同…...
vue3 defineExpose 显示的指定组件需要暴露的属性
简介: 是 vue3 新增的一个 api ,用在 <script setup>中使用,用于显示的把组件的属性和方法暴露出来。可用于父子组件通信,子组件使用 defineExpose 将自身的方法或者属性暴露出去,父组件中通过 ref 获取子组件 D…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...