所有的内容请看文档:《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覆盖数据
Logo

更多推荐