跳转至

编译 Tina Linux

在搭建好编译环境并下载好源码后,即可对源码进行编译,编译打包好后,即可将打包好的固件烧写到设备中去。本文主要介绍编译和烧写的方法。

*编译环境搭建的方法见:Tina 编译环境配置

*源码下载的方法见:Tina SDK源码获取

*Tina Linux 更多内容详见详见:Tina Linux 系统介绍

Tina Linux 编译

Tina Linux 的编译大致分为以下流程:

(1) source build/envsetup.sh  # 获取 Tina 环境变量
(2) lunch                     # 载入方案列表,选择方案
(3) mp                        # 编译打包

(1)获取 Tina 环境变量

source build/envsetup.sh

(2)载入方案列表,选择方案

之后使用 lunch 命令载入方案列表,可以看到 方案 5 对应的是 d1s_nezha 板子,也正是 D1s Nezha 开发板。输入 5 回车即可。如果是其他板子,也可以输入对应板子的序号选择方案。

lunch

之后 SDK 会自动根据你所选择的方案解压编译工具链,创建环境,耐心等待下即可。

(3)编译打包

Tina Linux 里可以使用 make 命令进行编译,pack 命令打包。

make

当然,也可以在 make 命令后面增加参数,支持多线程编译,例如:

make -j128       # 以 128 线程编译 SDK

不过有些时候因为软件包的依赖关系,多线程编译可能会导致编译失败。如果出现编译失败可以使用 make -j1 指定单线程编译解决依赖问题。有些时候软件包也可能不完全适配芯片与开发板,这时候也会报错,同样也需要 make -j1 查看实际的错误。

编译完成之后,使用 pack 命令打包。

pack

最后,如果编译完成,则会输出以下内容,代表编译打包完成,可以在/out/d1s-nezha/tina_d1s-nezha_uart0.img 目录下找到打包完成的固件。

进阶编译操作

Tina Linux 提供了大量方便使用的快捷跳转命令。方便开发使用。

快捷命令

命令 命令有效目录 作用
make tina根目录 编译整个sdk
make menuconfig tina根目录 启动软件包配置界面
make kernel_menuconfig tina根目录 启动内核配置界面
croot tina下任意目录 快速切换到tina根目录
cconfigs tina下任意目录 快速切换到方案的bsp配置目录
cplat tina下任意目录 快速切换到方案配置目录
ctarget tina下任意目录 快速切换到openWrt软件包编译产物目录
crootfs tina下任意目录 快速切换到openWrt rootfs目录
copsrc tina下任意目录 快速切换到openWrt目录
cout tina下任意目录 快速切换到方案的输出目录
cboot tina下任意目录 快速切换到bootloader目录
cgrep tina下任意目录 在c/c++/h文件中查找字符串
mm [-B] 软件包目录 编译软件包,-B指编译前先clean
pack tina根目录 打包固件
m tina下任意目录 make的快捷命令,编译整个sdk
p tina下任意目录 pack的快捷命令,打包固件

编译异常问题解决

由于不同电脑的系统环境不一样,经常会出现不同的编译异常,并且每个异常都各不相同,属于疑难杂症,这也是新手学习嵌入式开发的一大难点。

为此全志在线开发者社区专门开辟了编译和烧写问题专区,如果出现了错误可以到 全志开发者论坛 - 编译和烧写问题专区 与社区的开发者们沟通讨论。社区有工程师巡场解决问题,也有很多热心的小伙伴积极献言献策。

提问注意事项:

(1)贴出你的log;

(2)说明你的编译环境和做的操作、修改等;

(4)有礼貌。