• Mangopi MQ-R:T113-s3编译Tina Linux系统(二)SDK目录



    所有的内容请看文档:《Tinalinux SDK开发指南》

    Longan只有bootloader,kernel,自己适配rootfs比如debian,Ubuntu什么的,tina是完整的带有rootfs,而且是精简版本的rootfs。

    注意:这个官方SDK系统编译出来的根文件系统是只读的,建议更改为ext4读写系统。

    ------run profile file-----
     _____  _              __     _
    |_   _||_| ___  _ _   |  |   |_| ___  _ _  _ _
      | |   _ |   ||   |  |  |__ | ||   || | ||_'_|
      | |  | || | || _ |  |_____||_||_|_||___||_,_|
      |_|  |_||_|_||_|_|  Tina is Based on OpenWrt!
     ----------------------------------------------
     Tina Linux (Neptune, 5C1C9C53)
     ----------------------------------------------
    
    

    常用命令

    命令命令有效目录作用
    maketina根目录编译整个sdk
    make menuconfigtina根目录启动软件包配置界面
    make kernel_menuconfigtina根目录启动内核配置界面

    文件目录

    liefyuan@ubuntu:~/Liefyuan/Tina-Linux/Tina-Linux$ tree -L 1
    .
    ├── build
    ├── config
    ├── Config.in
    ├── device
    ├── dl
    ├── lichee
    ├── logs
    ├── Makefile
    ├── out
    ├── package
    ├── prebuilt
    ├── README.md
    ├── rules.mk
    ├── scripts
    ├── target
    ├── tmp
    ├── toolchain
    └── tools
    

    build 目录

    build 目录存放 Tina Linux 的构建系统文件,此目录结构下主要是一系列基于 Makefile 规格编写的 mk 文件。主要的功能是:

    1. 检测当前的编译环境是否满足 Tina Linux 的构建需求
    2. 生成 host 包编译规则
    3. 生成工具链的编译规则
    4. 生成 target 包的编译规则
    5. 生成 linux kernel 的编译规则
    6. 生成系统固件的生成规则

    config 目录

    主要存放 Tina Linux 中配置菜单的界面以及一些固定的配置项,该配置菜单基于内核的 mconf 规格书写。

    lichee目录

    lichee 目录主要存放 uboot 和内核代码。

    package目录

    package 目录存放 target 机器上的软件包源码和编译规则,目录按照目标软件包的功能进行分类。

    prebuild 目录

    prebuild 目录存放预编译交叉编译器,目录结构如下。

    scripts 目录

    scripts 目录用于存放 pc 端或小机端使用的一些脚本。

    target 目录

    target 目录用于存放目标板相关的配置以及 sdk 和 toolchain 生成的规格。

    toolchain 目录

    toolchain 目录包含交叉工具链构建配置、规则

    tools 目录

    tools 目录用于存放 host 端工具的编译规则。

    out 目录

    下面有两个目录:host目录和开发板/方案目录

    其中 host 目录用于存放 host 端的工具以及一些开发相关的文件。

    我使用的是mangopi的T113 MQ-R开发板所以是 t113-mq_r目录

    • boot.img 为最终烧写到系统 boot 分区的数据,该分区默认为 vfat 格式。
    • rootfs.img 为最终烧写到系统 rootfs 分区的数据,该分区默认为 squashfs 格式(只读的文件系统)。
    • t113-mq_r-uImage 为内核最终的镜像,会打包到 boot.img 中。
    • compile_dir 为 sdk 编译 host,target 和 toolchain 的临时文件目录,存有各个软件包的源码。
    • staging_dir 为 sdk 编译过程中保存各个目录结果的目录。
    • packages 目录保存的是最终生成的 ipk 软件包。
    • tina_t113-mq_r_uart0.img 为最终固件包 (系统镜像),串口信息通过串口 0 输出。

    其他的文件介绍:

    • boot0_nand_sun8iw20p1.bin用于在NAND Flash存储介质上启动系统的Boot0
    • boot0_sdcard_sun8iw20p1.bin用于在SD card存储介质上启动系统的Boot0
    • boot0_spinor_sun8iw20p1.bin用于在SPI NOR Flash存储介质上启动系统的Boot0
    • fes1_sun8iw20p1.bin是烧录模式下使用的boot0
    • sboot_sun8iw20p1.bin是安全状态下运行的boot0

    更改根文件系统

    更改一下分区

    分区文件在:device/config/chips/t113/configs/mq_r/sys_partition.fex

    [partition]
        name         = rootfs
        size         = 61440
        downloadfile = "rootfs.fex"
        user_type    = 0x8000
    

    原文件:

    ;---------------------------------------------------------------------------------------------------
    ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串
    ;---------------------------------------------------------------------------------------------------
    
    
    ;---------------------------------------------------------------------------------------------------
    ;                                   固件下载参数配置
    ;---------------------------------------------------------------------------------------------------
    ;***************************************************************************************************
    ;    mbr的大小, 以Kbyte为单位
    ;***************************************************************************************************
    [mbr]
    size = 16384
    
    ;***************************************************************************************************
    ;                                              分区配置
    ;
    ;
    ;  partition 定义范例:
    ;    [partition]                ;  //表示是一个分区
    ;    name        = USERFS2      ; //分区名称
    ;    size        = 16384        ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T
    ;    downloadfile = "123.fex"   ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径
    ;    keydata     = 1            ; //私有数据分区,重新量产数据将不丢失
    ;    encrypt     = 1            ; //采用加密方式烧录,将提供数据加密,但损失烧录速度
    ;    user_type   = ?            ; //私有用法
    ;    verify      = 1            ; //要求量产完成后校验是否正确
    ;
    ; 注:1、name唯一, 不允许同名
    ;     2、name最大12个字符
    ;     3、size = 0, 将创建一个无大小的空分区
    ;     4、align to logical block size(504 sectors), leb size = 2*(1 nand phy block size - 1 phy page size)
    ;***************************************************************************************************
    [partition_start]
    
    [partition]
        name         = boot-resource
        size         = 504
        downloadfile = "boot-resource.fex"
        user_type    = 0x8000
    
    
    [partition]
        name         = env
        size         = 504
        downloadfile = "env.fex"
        user_type    = 0x8000
    
    [partition]
        name         = env-redund
        size         = 504
        downloadfile = "env.fex"
        user_type    = 0x8000
    
    [partition]
        name         = boot
        size         = 8064
        downloadfile = "boot.fex"
        user_type    = 0x8000
    
    [partition]
        name         = rootfs
        size         = 61440
        downloadfile = "rootfs.fex"
        user_type    = 0x8000
    
    ;[partition]
    ;    name         = dsp0
    ;    size         = 2048
    ;    downloadfile = "dsp0.fex"
    ;    user_type    = 0x8000
    
    ;[partition]
    ;    name         = recovery
    ;    size         = 16128
    ;    ;downloadfile = "recovery.fex"
    ;    user_type    = 0x8000
    
    [partition]
        name         = private
        size         = 10240
        user_type    = 0x8000
    
    [partition]
        name         = rootfs_data
        size         = 50400
        user_type    = 0x8000
    
    [partition]
        name         = UDISK
        user_type    = 0x8100
    
    
    

    分区

    SD卡上的分区,说实话有点多!
    在这里插入图片描述

    升级分区

    分区功能
    boot分区存内核镜像
    rootfs分区基础系统镜像分区,包含 (/lib,/bin,/etc 等)
    recovery分区存放恢复系统镜像 [仅大容量方案有]

    不升级分区

    分区功能
    private分区存储SN号分区
    misc分区系统状态、刷机状态分区
    UDISK分区用户数据分区
    overlayfs分区存储overlayfs覆盖数据

    默认挂载点(顿悟!在开发板文件系统里面挂载,牛逼!)

    开发板上查看了一下:真牛皮!

    root@TinaLinux:/dev/by-name# ls
    UDISK          boot-resource  env-redund     rootfs
    boot           env            private        rootfs_data
    root@TinaLinux:/mnt# ls
    SDCARD   UDISK    app      exUDISK
    
    分区挂载点备注
    /dev/by-name/boot/boot
    /dev/by-name/boot-res/boot-res
    /dev/by-name/UDISK/mnt/UDISK用户数据分区
    /dev/by-name/boot/mnt/SDCARDTF卡挂载点
    /dev/by-name/boot/overlay存储overlayfs覆盖数据
  • 相关阅读:
    大数据生态圈及分布式文件系统HDFS实践part2
    被火车撞了都不能忘记的几道题(你会了吗?)
    信息化发展68
    世界杯小组赛频繁爆冷?这或许是强队的谋略 一分钟带你了解2022卡塔尔世界杯赛制
    <Linux> shell运行原理及Linux权限的理解
    document.getElementById()获取一直为null
    yaml初识
    【老生谈算法】matlab遗传算法工具箱源码——遗传算法
    python复习(2022年8月)
    纯纯小白~学习python记录~用Django创建第一个项目
  • 原文地址:https://blog.csdn.net/qq_28877125/article/details/126715689