Tina Linux(1)---系统篇

2024-06-10 07:43:34 浏览数 (1)

零、序言

1、写这个文章的目的

写这篇文章主要目的是想做笔记。是的,纯粹是为了记录,不是干货满满的技术文章。

本人是嵌入式linux小白,之前尝试过多个平台的嵌入式linux学习,但是反反复复没有下去,导致后面再学的时候全部都要重头再来。这次痛定思痛,决定把笔记记录下来。但是为什么不用更好的专用的笔记软件的,比如OneNote之类的。实际上有考虑过,也查过很多的笔记软件资料,多多少少都存在一些问题,比如导出不方便,多平台兼容性问题之类的。所以,不如在网站上写成文章,这样不管换到什么地方都方便我阅读了。

2、关于Tina

官方介绍:Tina Linux 系统介绍 Tina Linux 基于 openwrt-14.07 版本的,可以参考下 MT7628学习笔记(3)——openwrt源码目录分析(OpenWrt CC1505 版本移植)

代码语言:javascript复制
Tina-SDK/
├── build	# 构建系统文件
├── config	# 配置菜单的界面以及一些固定的配置项,该配置菜单基于内核的 mconf 规格编写
├── Config.in	# 菜单项配置文件。和 make menuconfig 相关联的文件
├── device	# 用于存放方案的配置文件,包括内核配置、env 配置、分区表配置、sys_config.fex(全志定制板级配置文件)、board.dts(linux标准设备树文件) 等
├── dl		# 软件包文件
├── lichee	# 存放 bootloader、linux内核、DSP等代码
├── Makefile	# 在顶层目录执行 make 命令的入口文件
├── out		# 编译相关的临时文件和最终镜像文件 ,编译后自动生成此目录
├── package	# 存放Tina系统支持的软件包源码和编译规则
├── prebuilt	# 存放预编译交叉编译器
├── rules.mk	# 定义了 Makefile 中使用的一些通用变量和函数
├── scripts	# 存放host端(PC端,下同)或target端(小机端,即目标机器,下同)使用的一些脚本
├── target	# 存放目标板相关的配置以及sdk和toolchain生成的规格
├── tmp		# 临时文件夹。编译过程中的临时文件保存。
├── toolchain	# 交叉工具链构建配置、规则
└── tools	# 存放 host 端工具的编译规则

一、SDK准备--下载

$ git clone https://github.com/mangopi-sbc/Tina-Linux.git

$ cd Tina-Linux/

$ git submodule update --init --recursive

二、下载SDK子模块

// download the static file

$ wget http://dl.mangopi.org/tina/prebuilt.tar.gz .

$ tar xzvf prebuilt.tar.gz

$ wget http://dl.mangopi.org/tina/dl.tar .

$ tar xvf dl.tar

$ wget http://dl.mangopi.org/tina/toolchain/riscv64-linux-x86_64-20200528.tar.xz -P ./lichee/brandy-2.0/tools/toolchain/

$ wget http://dl.mangopi.org/tina/toolchain/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz -P ./lichee/brandy-2.0/tools/toolchain/

三、环境配置

环境配置:
代码语言:javascript复制
# 更新
$ sudo apt-get update

# 安装依赖包
$ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc  6 libstdc  6 -y

# Ubuntu 16.04以上版本执行
sudo apt-get install libc6:i386 libstdc  6:i386 lib32ncurses5 lib32z1

四、准备编译

使用root用户编译时会报错,是因为SDK配置问题,如下导出环境变量后

export FORCE_UNSAFE_CONFIGURE=1

source build/envsetup.sh

lunch

7

make

五、烧录

若使用卡启动,则使用PhoenixCard工具将固件烧到SD卡,若使用NAND、EMMC启动,则使用PhoenixSuit将固件烧到板载存储。

六、基本名词的一些解释

暂无

参考文档

1、【全志T113-S3_100ask】编译Tina系统初体验

https://bbs.aw-ol.com/topic/2117/全志t113-s3_100ask-编译tina系统初体验?_=1707126150787&lang=zh-CN

0 人点赞