盈鹏飞嵌入式带你玩转T113系列tina5 SDK(2)-TinaSDK的目录结构介绍

SBC-T113产品特性:

  • 采用Allwinner公司Cortex-A7双核T113-i处理器,运行最高速度为1.2GHZ;
  • 内置64-bit XuanTie C906 RISC-V协处理器;
  • 支持JPEG/MJPEG视频编码,最大分辨率1080p@60fps;支持多格式1080P@60fps视频解码 (H.265,H.264, MPEG-1/2/4);
  • 支持RGB666/LVDS/MIPI-DSI,分辨率最高1920x1080;
  • 支持512-1G Bytes DDR3 SDRAM;
  • 支持SPI NAND存储和启动(默认:256MB;最大1GB)或者EMMC启动(默认:4GB,最大32GB);
  • 支持四路USB2.0 HOST;
  • 支持六路RS232通信;
  • 支持双路CAN BUS通信(隔离);
  • 支持双路以太网,一路10/100M;一路10/100/1000M;
  • 稳定的操作系统的支持,可预装Ubuntu20.04/LINUX 5.4 Preempt/Tina5.0;
  • 标准3.5寸主板, 尺寸为:146*102MM;

SBC-T113功能评估图:

image

1. TinaSDK的目录结构介绍

Tina Linux v5.0目录结构主要有构建工具、构建系统、配置工具、工具链、芯片配置目录、内核及boot目录等组成。Tina Linux v5.0内置快速跳转指令,可以快速进入相关文件夹进行编辑修改。

下面按照目录顺序与快速跳转指令做简单介绍。

点击查看代码
/* by 01022.hk - online tools website : 01022.hk/zh/formatxml.html */
TinaLinux/
  ├── brandy                               # 存放boot0,uboot等代码。
  ├── build                                # 存放Tina Linux的系统构建脚本
  ├── buildroot                            # 存放buildroot相关的配置文件以及原生builroot代码
  ├── build.sh -> build/top_build.sh       # 超链接至build/top_build.sh
  ├── device                               # 存放芯片方案的配置文件
  ├── kernel                               # 存放不同版本的内核代码
  ├── openwrt                              # 存放openWrt原生代码,及软件包、芯片方案目录
  ├── out                                  # 存放编译相关的临时文件和最终镜像文件
  ├── platform                             # 存放着一些软件包源码
  ├── prebuilt                             # 存放一些预编译好的工具
  └── tools                                # 存放一些host端工具,下载打包工具

  • brandy目录下主要存放boot0,uboot等代码。
点击查看代码
/* by 01022.hk - online tools website : 01022.hk/zh/formatxml.html */
brandy
  └── brandy-2.0
      ├── build.sh -> tools/build.sh       # 超链接
      ├── spl-pub                          # boot0仓库
      ├── tools                            # 一些工具
      └── u-boot-2018                      # u-boot 源码
快捷跳转命令:cboot cboot0

  • build目录-

build目录存放Tina Linux的系统构建脚本,主要功能有:
a) 提供编译需要的环境变量、函数、规则。

b) 提供各目标模块的编译方法、规则。

c) 对接 openWrt, buildroot 等不同构建系统。

d) 打包生成系统固件的脚本

快捷跳转命令:cbuild

  • Buildroot目录

buildroot 相关的配置文件以及原生 builroot 代码

  • device目录

device目录用于存放芯片方案的配置文件,包括内核配置,env配置,分区表配置,sys_config.fex, board.dts等。

点击查看代码
device
  ├── config
  │   ├── chips
  │   ├── common
  │   └── rootfs_tar
  └── product -> ./config/chips/t113_s4
快捷跳转命令:cchips, cconfigs

  • kernel目录主要存放不同版本的内核代码。
点击查看代码
kernel
└── linux-5.4

  • openwrt

openwrt目录存放着openWrt原生代码,及软件包、芯片方案目录。

点击查看代码
openwrt
  ├── build         # openWrt构建系统相关hook脚本
  ├── dl            # 软件压缩包
  ├── openwrt       # openWrt原生代码目录
  ├── package       # 额外添加的软件包,包括AW软件包、第三方软件包,feeds引入的软件包
  └── target        # 各个芯片方案目录,用于保存差异化配置信息

  • out目录

out目录用于保存编译相关的临时文件和最终镜像文件 ,编译后自动生成此目录,例如编译方案t113_s4-sbc-t113s。

点击查看代码
out
  ├── t113_s4
  │   ├──sbc-t113s
  │   │   ├── buildroot
  │   │   ├── openwrt
  │   │   └── pack_out
  │   └── kernel
  └── toolchain
      └── gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi

根据配置选择,最终的编译产物会在openwrt或者buildroot目录下,而打包生成固件的准备文件都存放在pack_out下,kernel是内核编译产物(仅限linux-5.4及以上版本), toolchain目录是存放着解压后的工具链,用于编译内核。

快捷跳转命令:cout

  • out/openwrt目录
点击查看代码
out/openwrt
  ├── boot.img
  ├── rootfs.img
  ├── build_dir
  ├── staging_dir
  ├── tmp
  ├── extra
  ├── t113_s4_linux_ sbc-t113s_uart0.img
  ├── uImage
  ├── vmlinux
  └── zImage

  • boot.img为最终烧写到系统boot分区的数据,可能为boot.img格式也可能为uImage格式。

  • rootfs.img为最终烧写到系统rootfs分区的数据,该分区默认为squashfs格式。

  • build_dir为sdk编译host,target和toolchain的临时文件目录,存有各个软件包的源码。

  • staging_dir为sdk编译过程中保存各个目录结果的目录。

  • extra目录下会保存的是最终生成的ipk软件包。

  • tmp目录下会保存着本方案软件包相关的信息

  • t113_s4_linux_sbc-t113s.img为最终固件包(系统镜像),串口信息通过串口输出

  • 若使用pack -d,则生成的固件包为xxx_card0.img,串口信息转递到tf卡座输出。

  • 快捷跳转命令:ctarget, crootfs

  • platform目录

platform目录存放着一些软件包源码,这些软件包的编译方式是通用的,分别可以用在openWrt或者buildroot等不同构建系统中。这个目录的存在是为了不同构建系统共用软件包提供可能性。

目前platform目录结构如下,主要根据是否为全志自研改动,以及类别区分:

点击查看代码
platform
  ├── allwinner
  │   ├── power
  │   ├── system
  │   ├── usb
  │   ├── utils
  │   └── wireless
  └── thirdparty
      └── gui

  • prebuilt目录

prebuilt目录存放着一些预编译好的工具

点击查看代码
├── hostbuilt
│   ├── make4.1
│   └── python3.8
├── kernelbuilt
│   ├── aarch64
│   ├── arm
│   └── riscv
└── rootfsbuilt
    ├── aarch64
    ├── arm
    └── riscv

  • hostbuilt目录下存放着make以及python3.8工具,为了解决个别Host端工具版本过低导致编译失败的问题
  • kernelbuilt目录存放着编译内核的工具链压缩包,它会被解压到 out/toolchain 目录下
  • rootfsbuilt目录存放着编译rootfs的工具链
tools目录

tools目录用于存放一些host端工具, 例如打包工具。

快捷跳转目录指令列表
点击查看代码
croot                          - Changes directory to the top of the tree
    cbsp                           - Changes directory to the bsp
    cbsptest                       - Changes directory to the bsptest
    ckernel                        - Changes directory to the kernel
    cbrandy                        - Changes directory to the brandy
    cboot                          - Changes directory to the uboot
    cbr                            - Changes directory to the buildroot
    cchips                         - Changes directory to the board
    cconfigs                       - Changes directory to the board's config
    cbin                           - Changes directory to the board's bin
    cdts                           - Changes directory to the kernel's dts
    ckernelout                     - Changes directory to the kernel output
    cout                           - Changes directory to the product's output
    copenssl                       - Changes directory to the product's openssl-1.0.0

<think>我们正在处理一个关于在Ubuntu 18.04上部署Tina5.0 SDK(具体版本为T113_Tina5.0-V1.2.tar.gz)并完成编译的问题。根据用户需求,我们需要从获取SDK开始,直到编译完成。 根据之前的回答,我们知道Tina SDK是全志科技为其T系列芯片(如T113)提供的嵌入式Linux开发环境。用户提供的文件名是T113_Tina5.0-V1.2.tar.gz,这意味着我们需要从该压缩包开始,而不是从git仓库克隆。 步骤概述: 1. 准备系统环境(安装依赖包) 2. 获取并解压SDK(T113_Tina5.0-V1.2.tar.gz) 3. 配置环境变量和编译环境 4. 编译 5. 打包镜像 注意:由于Tina SDK的编译需要特定的工具链,通常SDK包中会包含工具链,或者需要单独下载。我们需要按照SDK内部的文档说明进行操作。 根据引用[4]中列出的依赖包,我们可以安装编译所需的依赖。同时,我们也要注意,Tina SDK的编译可能需要一些特定的软件版本,比如Python版本(可能需要2.7或3.x,但根据之前的经验,Tina5.0可能同时支持,但最好使用Python2.7,因为一些旧脚本可能不兼容Python3)。但是,Ubuntu18.04默认同时安装了Python2.7和Python3,我们可以通过创建软链接来确保`python`命令指向Python2.7(因为一些旧脚本可能使用`/usr/bin/python`)。 另外,根据引用[1],我们可能需要较高版本的cmake,但Tina SDK通常自工具链,可能不需要我们单独升级cmake。不过,为了确保,我们可以查看SDK中的文档。 具体步骤: ### 1. 系统环境准备 安装必要的依赖包(参考引用[4]中的依赖包列表,并补充一些): ```bash sudo apt update sudo apt upgrade -y sudo apt install -y build-essential git-core libncurses5-dev \ zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl \ unzip python2.7 python3 python3-distutils wget curl bc \ lib32z1 lib32stdc++6 u-boot-tools \ gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev \ lib32stdc++6 lib32z1-dev zlib1g:i386 ``` 注意:由于Tina SDK可能需要使用32位工具链,因此安装了32位库。 ### 2. 设置Python2.7为默认python(可选,但建议) ```bash sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 # 然后选择python2.7 sudo update-alternatives --config python # 选择python2.7对应的编号 ``` ### 3. 获取并解压Tina5.0 SDK 假设用户已经将`T113_Tina5.0-V1.2.tar.gz`放在当前目录(如没有,需要用户自行下载并上传到Ubuntu系统中) ```bash # 创建工作目录并进入 mkdir ~/tina5.0 cd ~/tina5.0 # 解压SDK(假设压缩包在~/tina5.0目录下) tar -xvf T113_Tina5.0-V1.2.tar.gz ``` 解压后,通常会得到一个目录,比如`t113-tina5.0`,进入该目录。 ### 4. 配置编译环境 根据Tina SDK的文档,通常需要运行一个脚本来设置环境变量。 ```bash cd t113-tina5.0 # 进入解压后的目录 source build/envsetup.sh ``` 然后选择目标板配置: ```bash lunch ``` 在出现的菜单中选择对应的板子,例如`t113_evb-tina`(根据实际板子选择,用户需要知道自己的开发板型号) ### 5. 编译 ```bash make -j$(nproc) # 使用所有核心编译 ``` 编译过程可能会比较长,如果遇到错误,需要根据错误信息安装缺失的包或进行其他调整。 ### 6. 打包镜像 编译完成后,使用`pack`命令打包生成烧录镜像: ```bash pack ``` 生成的镜像文件通常位于`out/t113_evb/tina_t113-evb_uart0.img`(具体路径根据选择的板子配置会有所不同)。 ### 7. 烧录到开发板 使用全志的烧录工具`sunxi-tools`进行烧录(需要将开发板设置为FEL模式): ```bash sudo apt install -y sunxi-tools sudo sunxi-fel spiflash-write 0 out/t113_evb/tina_t113-evb_uart0.img ``` ### 注意事项: 1. 如果编译过程中出现权限问题,可能需要使用`chmod`修改某些脚本的可执行权限。 2. 如果遇到工具链问题,检查SDK中是否自了工具链,或者需要额外下载。通常SDK中会包含工具链,环境设置脚本会设置路径。 3. 如果遇到Python错误,可能需要调整Python版本,确保使用Python2.7。 ### 常见问题: - **错误:缺少库文件**:根据编译错误提示安装对应的32位或64位库。 - **错误:某些命令找不到**:检查环境变量是否设置正确,特别是工具链的路径。可以通过`echo $PATH`查看。 - **错误:uboot编译失败**:检查是否安装了正确的交叉编译工具链,以及uboot的配置是否正确。 ### 生成相关问题: 根据用户的需求,我们生成了以下相关问题: §§相关问题§§ 1. 如何为T113开发板配置串口调试? 2. Tina5.0 SDK中如何修改内核配置? 3. 如何将自定义文件系统添加到Tina镜像中? 4. 如何调试Tina5.0系统中的应用程序? 5. 如何优化Tina5.0系统的启动时间?</think>以下是在 Ubuntu 18.04 系统上部署全志 T113_Tina5.0-V1.2 SDK 并完成编译的详细步骤: --- ### 1. 系统环境准备 ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential git-core libncurses5-dev \ zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl \ unzip python2.7 python3 python3-distutils wget curl bc \ lib32z1 lib32stdc++6 u-boot-tools \ gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev \ lib32stdc++6 lib32z1-dev zlib1g:i386 ``` > 注:必须安装 Python 2.7 和 32 位兼容库[^4] --- ### 2. 获取并解压 SDK ```bash # 创建工作目录 mkdir ~/tina5.0 && cd ~/tina5.0 # 解压 SDK (替换为实际路径) tar -xzvf /path/to/T113_Tina5.0-V1.2.tar.gz # 进入 SDK目录 cd t113-tina5.0 ``` --- ### 3. 配置编译环境 ```bash # 初始化环境变量 source build/envsetup.sh # 选择目标配置 lunch ``` > 出现选项时选择:`t113_evb-tina` > 成功提示:`Setup env done!` --- ### 4. 编译系统镜像 ```bash # 首次全量编译 (约1-3小时) make -j$(nproc) V=s # 编译完成后打包镜像 pack ``` > 关键输出文件: > - 内核镜像:`out/t113_evb/boot.img` > - 根文件系统:`out/t113_evb/rootfs.img` > - 完整固件:`out/t113_evb/tina_t113-evb_uart0.img` --- ### 5. 烧录到开发板 ```bash # 安装烧录工具 sudo apt install -y sunxi-tools # 进入 FEL 模式 (开发板按 FEL 键上电) sudo sunxi-fel spiflash-write 0 out/t113_evb/tina_t113-evb_uart0.img ``` --- ### 6. 验证安装 ```bash # 安装串口工具 sudo apt install -y minicom # 连接开发板串口 sudo minicom -D /dev/ttyUSB0 -b 115200 ``` > 成功启动后显示:`Tina Linux (t113) # ` --- ### 常见问题解决 1. **Python 版本冲突** ```bash sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --config python # 选择 Python 2.7 ``` 2. **依赖缺失错误** ```bash # 示例:安装 libgmp-dev sudo apt install -y libgmp-dev libmpc-dev ``` 3. **USB 权限问题** ```bash sudo usermod -aG dialout $USER sudo reboot ``` 4. **编译内存不足** 增加 swap 空间: ```bash sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` > 建议首次编译使用 `make -j1 V=s` 便于排错 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值