跳到主要内容

SDK 开发环境配置

本文介绍如何在 Ubuntu 系统下安装 Tina Linux SDK 编译所需的依赖包。

完成环境配置后,您将具备:

  • 编译 Tina Linux 源码的基础环境
  • 打包固件所需的工具链支持
虚拟机搭建

如果您没有 Ubuntu 主机环境,可以使用虚拟机搭建 Ubuntu 开发环境。详见 虚拟机搭建指南

架构限制

仅支持 x86_64 (AMD64) 架构,不支持 ARM 架构。

原因:Tina SDK 中的预编译工具链仅提供 x86_64 版本。

快速概览

安装的依赖包主要用途:

类别包名用途
编译基础build-essentialGCC、Make 等基础编译工具
代码管理git, subversion源码下载和版本管理
构建系统quilt, flex, bison补丁管理和语法解析
镜像打包android-tools-mkbootimgAndroid boot.img 打包工具
32位支持gcc-multilib, libc6:i386编译 32 位兼容程序

编译系统支持

支持的 Ubuntu 版本:14、16、18、20、22、24、26

推荐使用 Ubuntu 22.04 或 24.04。

Ubuntu 26.04

sudo apt-get update && \
for pkg in \
build-essential \
python3 \
python3-dev \
subversion \
git \
libncurses5-dev \
zlib1g-dev \
gawk \
flex \
bison \
quilt \
libssl-dev \
xsltproc \
libxml-parser-perl \
mercurial \
bzr \
ecj \
cvs \
unzip \
lsof \
tree \
python-is-python3 \
kconfig-frontends \
libpython3-dev \
gcc-multilib \
; do sudo apt-get install -y "$pkg" || true; done && \
sudo dpkg --add-architecture i386 && sudo apt-get update && \
sudo apt-get install -y libc6:i386 libstdc++6:i386 lib32z1 || true
安装失败处理

脚本使用 || true 处理失败,单个包不存在时自动跳过继续安装下一个。

如果某个必需包安装失败,可以手动执行:

sudo apt-get install -y <包名>

Ubuntu 24.04

sudo apt-get update && \
for pkg in \
build-essential \
python3 \
python3-dev \
subversion \
git \
libncurses5-dev \
zlib1g-dev \
gawk \
flex \
bison \
quilt \
libssl-dev \
xsltproc \
libxml-parser-perl \
mercurial \
bzr \
ecj \
cvs \
unzip \
lsof \
tree \
python-is-python3 \
kconfig-frontends \
libpython3-dev \
gcc-multilib \
; do sudo apt-get install -y "$pkg" || true; done && \
sudo dpkg --add-architecture i386 && sudo apt-get update && \
sudo apt-get install -y libc6:i386 libstdc++6:i386 lib32z1 || true
安装失败处理

脚本使用 || true 处理失败,单个包不存在时自动跳过继续安装下一个。

Ubuntu 22.04

sudo apt-get update && \
for pkg in \
build-essential \
python3 \
python3-dev \
subversion \
git \
libncurses5-dev \
zlib1g-dev \
gawk \
flex \
bison \
quilt \
libssl-dev \
xsltproc \
libxml-parser-perl \
mercurial \
bzr \
ecj \
cvs \
unzip \
lsof \
tree \
python-is-python3 \
kconfig-frontends \
libpython3-dev \
gcc-multilib \
; do sudo apt-get install -y "$pkg" || true; done && \
sudo dpkg --add-architecture i386 && sudo apt-get update && \
sudo apt-get install -y libc6:i386 libstdc++6:i386 lib32z1 || true

可选包(镜像打包工具,缺失不影响编译):

for pkg in \
android-tools-mkbootimg \
python2 \
; do sudo apt-get install -y "$pkg" || true; done

更新软件源

增加架构支持

安装32位支持包

安装失败处理

脚本使用 for 循环逐包安装,|| true 确保单个包失败时不中断整个安装过程。

可选包(如 android-tools-mkbootimgpython2)缺失不影响核心编译功能。

Ubuntu 20.04

sudo apt-get update && \
for pkg in \
build-essential \
python3 \
python3-dev \
subversion \
git \
libncurses5-dev \
zlib1g-dev \
gawk \
flex \
bison \
quilt \
libssl-dev \
xsltproc \
libxml-parser-perl \
mercurial \
bzr \
ecj \
cvs \
unzip \
lsof \
tree \
python-is-python3 \
kconfig-frontends \
libpython3-dev \
gcc-multilib \
; do sudo apt-get install -y "$pkg" || true; done && \
sudo dpkg --add-architecture i386 && sudo apt-get update && \
sudo apt-get install -y libc6:i386 libstdc++6:i386 lib32z1 || true

可选包(镜像打包工具,缺失不影响编译):

for pkg in \
android-tools-mkbootimg \
python2 \
; do sudo apt-get install -y "$pkg" || true; done
安装失败处理

脚本使用 || true 处理失败,单个包不存在时自动跳过继续安装下一个。

Ubuntu 18.04

必需包(编译核心依赖,必须安装):

sudo apt-get update && \
for pkg in \
build-essential \
subversion \
git \
libncurses5-dev \
zlib1g-dev \
gawk \
flex \
bison \
quilt \
libssl-dev \
xsltproc \
libxml-parser-perl \
mercurial \
bzr \
ecj \
cvs \
unzip \
lsof \
libpython3-dev \
gcc-multilib \
; do sudo apt-get install -y "$pkg" || true; done && \
sudo dpkg --add-architecture i386 && sudo apt-get update && \
sudo apt-get install -y libc6:i386 libstdc++6:i386 lib32z1 || true

可选包(镜像打包工具,缺失不影响编译):

sudo apt-get install -y android-tools-mkbootimg || true
安装失败处理

脚本使用 || true 处理失败,单个包不存在时自动跳过继续安装下一个。


WSL2 特殊配置

如果您使用 WSL2(Windows Subsystem for Linux),在完成上述 Ubuntu 配置后,还需进行以下额外配置。

清理环境变量

WSL2 会继承 Windows 的 PATH 环境变量,可能包含空格导致编译失败。

每次编译前执行:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib

启用 vsyscall 支持

WSL2 默认内核可能缺少 vsyscall 支持,导致部分编译工具链无法运行。

  1. 打开 Windows 用户目录 %userprofile%

打开用户目录

  1. 新建文件 .wslconfig

新建配置文件

  1. 添加以下内容:
[wsl2]
kernelCommandLine = vsyscall=emulate

配置文件参考:WSL 配置文档

  1. 重启 WSL2:在 PowerShell 执行 wsl --shutdown,然后重新打开 WSL
WSL2 6.6.87.1 内核问题

WSL2 内核版本 6.6.87.1 存在 BUG,无法启用 vsyscall=emulate

内核版本问题

解决方案:


验证环境配置

安装完成后,验证环境是否正确配置:

# 检查 GCC 版本
gcc --version

# 检查 Make 版本
make --version

# 检查 32 位支持
gcc -m32 --version

如果以上命令都能正常输出版本信息,说明环境配置成功。


Windows USB 驱动安装

USB 驱动用于将编译好的固件烧写到开发板。如果您使用虚拟机,驱动应安装在 宿主机 Windows 上。

下载驱动

下载地址:全志 USB 驱动

安装步骤

  1. 解压下载的 UsbDriver 到任意文件夹

解压驱动文件

  1. 右键 此电脑管理

打开设备管理器

  1. 将开发板连接电脑并进入下载模式(按住 FEL 键上电)

  2. 在设备管理器找到 USB Device(VID_1f3a_PID_efe8)

识别USB设备

  1. 右键该设备 → 更新驱动程序

更新驱动

  1. 选择 浏览我的计算机查找驱动

浏览查找

  1. 选择 让我从可用驱动列表选取

从列表选取

  1. 点击 从磁盘安装

从磁盘安装

  1. 点击 浏览,选择解压目录中的 usbdrv.inf

选择驱动文件

确认文件

  1. 点击 确定下一步

确定安装

下一步

  1. 安装完成,关闭窗口

安装完成

常见问题:出现两个 USB Devices

两个USB设备

解决方法:

  1. 右键卸载多余的 USB Device
  2. 勾选 卸载驱动程序

卸载设备

  1. 重新安装驱动