零、序言
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