Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    T113-S3入门资料汇总(避坑指南)一

    其它全志芯片讨论区
    20
    26
    40188
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • karlno
      12DSJ LV 3 last edited by q1215200171

      也是闲着无事买了个芒果派的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操作吧,我自己也在熟悉,祝大家玩的愉快!

      J M T 3 Replies Last reply Reply Quote Share 33
      • J
        jeffdev LV 7 @karlno last edited by

        @karlno ubuntu20.4 没问题

        1 Reply Last reply Reply Quote Share 3
        • X
          xiaobo LV 3 last edited by

          启动起来后你会发现 ssh,ntpd等等都不能用,我改成procd init后这些就都ok了,还有多线程编译不过时换-j1试试,也许就过了,还有某个包在全局编译时编不过时可以尝试进入到包目录mm编译试试

          karlno 1 Reply Last reply Reply Quote Share 3
          • karlno
            12DSJ LV 3 @xiaobo last edited by

            @xiaobo 应该怎么做呢,不妨大致说一下流程,谢谢

            1 Reply Last reply Reply Quote Share 2
            • X
              xiaobo LV 3 last edited by

              我是在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(编译完后可以升级回去)
                4b3f65c3-23e8-46c2-b900-87f5f84d3673-image.png
              • menuconfig 中选中openssl部分算法(可参考其它文档使能硬件加速引擎)
                bab1e4c5-830e-44a8-90c9-ccfc9b3822b1-image.png
              • 选中 ssh 支持
                ebc75047-51b2-4478-b66b-0be72ae015f1-image.png
              • system init 选 procd init,并在base system->busybox->init utilities中取消 init 选项
                29117bb7-127a-46bb-a908-5834d62de745-image.png
                5402aad7-d2af-42a7-b008-100a849b5440-image.png

              make -j8 -s 编译正常的话应该是没什么问题的,如果有问题,1:之前编译失败过,手动删除out/t113-mq_r/compile_dir/target/xxxx(例如openssh),2:尝试添加一个功能就编译一下,不要一次选太多,找具体是哪个出问题比较费劲。
              dba854af-1478-4845-85b9-64ce43cc3dc1-image.png
              运行看看常用的一些服务都被初始化启动了,连接wifi后date看看时间也更新了,只是还需要设置一下时区,现在ssh还连不上,需要vi /etc/ssh/sshd_config 将PermitRootLogin 后面改成yes允许以root身份登录
              a44d5d90-e177-40a6-ab51-a1eadec825d3-image.png

              C K 2 Replies Last reply Reply Quote Share 6
              • X
                xiaobo LV 3 last edited by

                补充一点,env.cfg里init参数可能需要改一下,改成sbin/init
                0119ab8d-0693-4b6c-9860-e765ddaea0e7-image.png

                karlno 1 Reply Last reply Reply Quote Share 7
                • karlno
                  12DSJ LV 3 @xiaobo last edited by

                  @xiaobo 受益匪浅,感谢,感谢!

                  1 Reply Last reply Reply Quote Share 1
                  • DAIZEBIN
                    DAIZEBIN LV 7 last edited by DAIZEBIN

                    @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:
                    049ba7ec-571c-4af3-aa64-e819afbb6c80-image.png
                    同时需要修改两个部分内容
                    1、env.cfg

                    diff --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进行烧录既可
                    d83d4496-ae42-4098-aff0-20c20398baf5-image.png

                    附上固件:
                    tina_t113-mq_r_uart0.img

                    该固件使用的uart引脚号为:
                    2fdd4c80-0e50-4efc-a4e6-a0d35c6ab83c-image.png

                    对应板子上的:
                    b6b9c485-af70-4826-a40c-2a92e3becd08-image.png

                    1 Reply Last reply Reply Quote Share 4
                    • C
                      chzfmx LV 4 @xiaobo last edited by

                      @xiaobo 我ubuntu里的openssl也从1.1.1降到1.1.0了,也把整个out文件夹删除了,重新编译的,但还是报错,不知道为啥
                      cbf47877-1f1d-44ff-8cdd-c5eeb591bc60-image.png

                      ffb11330-0af4-473b-8402-e7da2a77e4e2-image.png

                      另外,我看了下编译输出的文件夹:out/t113-mq-r/compile_dir/target/openssl-1.1.0i
                      54da3b19-2947-4dbc-8ef9-9d58fdd3c42d-image.png
                      ubuntu的版本时1.1.0g,会不会是这个差异的问题?

                      Q 1 Reply Last reply Reply Quote Share 1
                      • Q
                        qq978815410 LV 3 @chzfmx last edited by

                        @chzfmx 编译环境我建议换18.04 我之前也是20.04有问题,直接换18.04 先降级再去弄SDK

                        C 1 Reply Last reply Reply Quote Share 0
                        • C
                          chzfmx LV 4 @qq978815410 last edited by

                          @qq978815410 但是我ubuntu就是18.04
                          0532b1cd-abdb-4fb0-be59-064eb33c5c00-image.png

                          Q C 2 Replies Last reply Reply Quote Share 0
                          • Q
                            qq978815410 LV 3 @chzfmx last edited by

                            @chzfmx 再装一个降级看看

                            1 Reply Last reply Reply Quote Share 0
                            • K
                              kevin_allwinner LV 5 @xiaobo last edited by

                              @xiaobo 大佬,有空能否出个T113 tina系统Wayland配置的帖子吗?我想在这套软硬件系统上运行rust的slint应用,但Wayland一直配置不通过,麻烦了,感谢!!!

                              1 Reply Last reply Reply Quote Share 1
                              • C
                                center1056 LV 2 @chzfmx last edited by

                                @chzfmx 兄弟,问题解决了吗,我有一样的问题

                                1 Reply Last reply Reply Quote Share 1
                                • S
                                  soso90 LV 7 last edited by

                                  话说这个sdk,直接编译,声卡正常不。放了一段时间,用起来,发现播放视频没有声音,忘记原来是否ok?

                                  1 Reply Last reply Reply Quote Share 0
                                  • radxiaohe
                                    radxiaohe LV 4 last edited by

                                    有大佬在mangopi t113-s3上运行成功吗,之前用mangopi提供的SDK可以生成image,也可以烧录成功并运行,但是,今年再次生成的image就运行不了,console未没有任何提示,板卡上的一个状态LED灯也不亮(uboot运行后,该LED灯会亮),搞不清楚是什么原因,头疼……

                                    1 Reply Last reply Reply Quote Share 1
                                    • M
                                      ALE LV 5 @karlno last edited by

                                      @karlno 大佬可以出个连载教程,很多人入坑了

                                      1 Reply Last reply Reply Quote Share 1
                                      • W
                                        wuzhujian LV 6 last edited by

                                        全志的SDK, linux版本太低, 新版本PC系统, 编译时总会出现一些莫名其妙的问题(主是还是主机的GCC版本高了).

                                        1 Reply Last reply Reply Quote Share 1
                                        • Referenced by  F fuzhikun 
                                        • W
                                          wu_lian_nan LV 4 last edited by

                                          学习中,谢谢版主

                                          1 Reply Last reply Reply Quote Share 0
                                          • Q
                                            qzjh123 LV 2 last edited by

                                            最近开始学习 感谢分享

                                            1 Reply Last reply Reply Quote Share 0
                                            • R
                                              richard.su LV 3 last edited by

                                              有谁知道 debain 编译的方法么? 只要替换debain的rootfs就行了嘛?

                                              1 Reply Last reply Reply Quote Share 0
                                              • C
                                                cc00112 LV 2 last edited by

                                                开始学习 感谢分享

                                                1 Reply Last reply Reply Quote Share 0
                                                • Z
                                                  zs_alec LV 2 last edited by

                                                  T113s3的PE3做NCSI0_XCLK时,输出的频率是多少?

                                                  1 Reply Last reply Reply Quote Share 0
                                                  • T
                                                    Tank.XR LV 2 @karlno last edited by

                                                    @karlno 非常感谢分享,刚开始学习,十分有用

                                                    1 Reply Last reply Reply Quote Share 0
                                                    • I
                                                      indream LV 3 last edited by

                                                      非常感谢分享,刚开始学习

                                                      1 Reply Last reply Reply Quote Share 0
                                                      • J
                                                        JohnKing LV 2 last edited by

                                                        感谢分享,非常有用

                                                        1 Reply Last reply Reply Quote Share 0
                                                        • 1 / 1
                                                        • First post
                                                          Last post

                                                        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                                                        行为准则 | 用户协议 | 隐私权政策