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开始看,其他的没用)
关于PhoenixCard有几个要点:
1、记得选启动卡选项,而不是量产卡。
2、用PhoenixCard生产的卡,如果后面不给TIna用了,还是用这个工具去恢复TF卡,否则电脑不认。启动
Tina的启动过程比较复杂,有兴趣的可以看下面这个视频:
懒得看视频,听我说也行。其实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操作吧,我自己也在熟悉,祝大家玩的愉快!
-
@karlno ubuntu20.4 没问题
-
启动起来后你会发现 ssh,ntpd等等都不能用,我改成procd init后这些就都ok了,还有多线程编译不过时换-j1试试,也许就过了,还有某个包在全局编译时编不过时可以尝试进入到包目录mm编译试试
-
@xiaobo 应该怎么做呢,不妨大致说一下流程,谢谢
-
我是在wsl2 ubuntu-20.04环境下编译的,SDK按照要求下载下来之后直接编译一般是不会出什么问题的,但烧录运行后时间同步,ssh等是没有的,当尝试make menuconfig中选中openssl,ssh,ntpd等编译时,会报关于openssl ”RSA {aka struct rsa_st}“相关的错误,这个需要对ubuntu20.04默认的openssl 1.1.1f降级,openssl的问题解决后,还需要将内核初始化改成 procd init方式(默认的busybox init方式貌似是不行,没细研究)。
- 首先查看当前系统openssl 版本并降级到1.1.0(编译完后可以升级回去)
- menuconfig 中选中openssl部分算法(可参考其它文档使能硬件加速引擎)
- 选中 ssh 支持
- system init 选 procd init,并在base system->busybox->init utilities中取消 init 选项
make -j8 -s 编译正常的话应该是没什么问题的,如果有问题,1:之前编译失败过,手动删除out/t113-mq_r/compile_dir/target/xxxx(例如openssh),2:尝试添加一个功能就编译一下,不要一次选太多,找具体是哪个出问题比较费劲。
运行看看常用的一些服务都被初始化启动了,连接wifi后date看看时间也更新了,只是还需要设置一下时区,现在ssh还连不上,需要vi /etc/ssh/sshd_config 将PermitRootLogin 后面改成yes允许以root身份登录
- 首先查看当前系统openssl 版本并降级到1.1.0(编译完后可以升级回去)
-
补充一点,env.cfg里init参数可能需要改一下,改成sbin/init
-
@xiaobo 受益匪浅,感谢,感谢!
-
@karlno 在 T113-S3入门资料汇总(避坑指南)一 中说:
还是做一些开源的物联网应用,远程浇个花,统计下
补充一下,自己更换spinand进行启动的时候,可以参考路径
~/Tina-Linux/lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c
下面的物料id表自行焊接spinand上去
我是用的是Winband的W25N01GVZEIG
对应以下id:
同时需要修改两个部分内容
1、env.cfgdiff --git a/device/config/chips/t113/configs/mq_r/env.cfg b/device/config/chips/t113/configs/mq_r/env.cfg index a554ac2..3e18190 100755 --- a/device/config/chips/t113/configs/mq_r/env.cfg +++ b/device/config/chips/t113/configs/mq_r/env.cfg @@ -38,4 +38,4 @@ bootdelay=1 #default bootcmd, will change at runtime according to key press #default nand boot #bootcmd=run setargs_nand boot_dsp0 boot_normal -bootcmd=run setargs_mmc boot_normal +bootcmd=run setargs_nand_ubi boot_normal
2、sys_config.fex
diff --git a/device/config/chips/t113/configs/mq_r/sys_config.fex b/device/config/chips/t113/configs/mq_r/sys_config.fex index 4bc568c..aad0548 100755 --- a/device/config/chips/t113/configs/mq_r/sys_config.fex +++ b/device/config/chips/t113/configs/mq_r/sys_config.fex @@ -33,7 +33,7 @@ debug_mode = 1 ;storage_type = boot medium, 0-nand, 1-sd, 2-emmc, 3-nor, 4-emmc3, 5-spinand -1(defualt)auto scan ;---------------------------------------------------------------------------------- [target] -storage_type = 1 +storage_type = 5 burn_key = 0 ;---------------------------------------------------------------------------------- ;spinor configuration
之后直接使用PhoenixSuit进行烧录既可
附上固件:
tina_t113-mq_r_uart0.img该固件使用的uart引脚号为:
对应板子上的:
-
@xiaobo 我ubuntu里的openssl也从1.1.1降到1.1.0了,也把整个out文件夹删除了,重新编译的,但还是报错,不知道为啥
另外,我看了下编译输出的文件夹:out/t113-mq-r/compile_dir/target/openssl-1.1.0i
ubuntu的版本时1.1.0g,会不会是这个差异的问题? -
@chzfmx 编译环境我建议换18.04 我之前也是20.04有问题,直接换18.04 先降级再去弄SDK
-
@qq978815410 但是我ubuntu就是18.04
-
@chzfmx 再装一个降级看看
-
@xiaobo 大佬,有空能否出个T113 tina系统Wayland配置的帖子吗?我想在这套软硬件系统上运行rust的slint应用,但Wayland一直配置不通过,麻烦了,感谢!!!
-
@chzfmx 兄弟,问题解决了吗,我有一样的问题
-
话说这个sdk,直接编译,声卡正常不。放了一段时间,用起来,发现播放视频没有声音,忘记原来是否ok?
-
有大佬在mangopi t113-s3上运行成功吗,之前用mangopi提供的SDK可以生成image,也可以烧录成功并运行,但是,今年再次生成的image就运行不了,console未没有任何提示,板卡上的一个状态LED灯也不亮(uboot运行后,该LED灯会亮),搞不清楚是什么原因,头疼……
-
@karlno 大佬可以出个连载教程,很多人入坑了
-
全志的SDK, linux版本太低, 新版本PC系统, 编译时总会出现一些莫名其妙的问题(主是还是主机的GCC版本高了).
-
-
学习中,谢谢版主
-
最近开始学习 感谢分享
-
有谁知道 debain 编译的方法么? 只要替换debain的rootfs就行了嘛?
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号