Mangopi MQ-R:T113-s3编译Tina Linux系统(二)SDK目录
Longan只有bootloader,kernel,自己适配rootfs比如debian,Ubuntu什么的,tina是完整的带有rootfs,而且是精简版本的rootfs。常用命令命令命令有效目录作用maketina根目录编译整个sdkmake menuconfigtina根目录启动软件包配置界面make kernel_menuconfigtina根目录启动内核配置界面文件目录build 目录b
文章目录
所有的内容请看文档:《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)
----------------------------------------------
常用命令
命令 | 命令有效目录 | 作用 |
---|---|---|
make | tina根目录 | 编译整个sdk |
make menuconfig | tina根目录 | 启动软件包配置界面 |
make kernel_menuconfig | tina根目录 | 启动内核配置界面 |
文件目录
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 文件。主要的功能是:
- 检测当前的编译环境是否满足 Tina Linux 的构建需求
- 生成 host 包编译规则
- 生成工具链的编译规则
- 生成 target 包的编译规则
- 生成 linux kernel 的编译规则
- 生成系统固件的生成规则
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/SDCARD | TF卡挂载点 |
/dev/by-name/boot | /overlay | 存储overlayfs覆盖数据 |
更多推荐
所有评论(0)