1. Tina Linux 概述与环境搭建
做嵌入式开发这么多年,我接触过不少 Linux 系统。Tina Linux 给我的第一印象是——它真的很「全志」。说白了,这就是全志科技基于 OpenWrt 深度定制的一套嵌入式 Linux 系统。专门为他们的 SoC 芯片服务,比如 F1C100s、V3s、R16、T113 这些。
你可能会问,为什么不用标准的 Ubuntu 或者 Buildroot?嗯,这里有个关键点。Tina Linux 把 Wi-Fi 驱动、蓝牙协议栈、音视频编解码库、OTA 升级这些嵌入式常用组件都提前集成好了。我刚开始用的时候,最直观的感受就是:不用再像以前那样一个个去移植驱动了。
Tina Linux 核心定位:面向全志智能硬件平台的嵌入式 Linux 发行版,基于 OpenWrt 分支,支持 buildroot + openwrt 双套构建系统。
1.1 开发环境搭建
环境搭建这块,我踩过不少坑。先说说我的建议。
1.1.1 虚拟机配置
我个人习惯用 VMware Workstation,Ubuntu 18.04 或 20.04 都行。别用太新的版本,比如 Ubuntu 22.04 的 GCC 版本太高,编译 Tina 时会报错。
| 配置项 | 建议值 | 备注 |
|---|---|---|
| CPU 核心数 | 4 核以上 | 编译时全核跑满 |
| 内存 | 8 GB 以上 | 16 GB 更稳 |
| 硬盘 | 120 GB 以上 | SDK 解压后约 30 GB,编译产物另占 20+ GB |
| 网络 | 桥接模式 | 方便下载源码包 |
注意:硬盘空间一定要留够。我曾经在 80 GB 的虚拟机上编译到一半,磁盘满了,整个编译中断。重新来一遍,白白浪费了两个小时。
1.1.2 SDK 获取与编译
SDK 一般从全志官方或者方案商那里获取。拿到的是一个压缩包,比如 tina-v3s-xxx.tar.gz。
解压和编译的步骤,我整理了一下:
- 解压 SDK:
tar -xzf tina-v3s-xxx.tar.gz - 进入目录:
cd tina-v3s - 配置环境:
source build/envsetup.sh - 选择方案:
lunch,然后选择对应的板级配置 - 开始编译:
make -j4(根据你的 CPU 核心数调整)
我第一次编译的时候,直接用了 make -j8,结果虚拟机直接卡死。后来改成 -j4 就稳了。你想想看,编译过程中 CPU 占用率飙到 100%,内存也吃紧,还是保守一点好。
小技巧:编译时加上 V=s 参数(如 make -j4 V=s),可以看到详细的编译日志。遇到错误时,这个参数能帮你快速定位问题。
1.1.3 系统烧录与启动
编译完成后,在 out/ 目录下会生成烧录镜像。常见的有 .img 文件(整包烧录)和 .fex 文件(分区烧录)。
烧录工具方面,全志官方提供的是 PhoenixCard(Windows 下用)和 PhoenixSuit。我个人更习惯用 PhoenixCard,操作简单:
- 插入 TF 卡,打开 PhoenixCard
- 选择镜像文件,点击「烧录」
- 烧录完成后,把卡插到板子上,上电启动
启动时,串口输出会打印 Uboot 和内核的启动信息。如果看到 Starting kernel ... 之后卡住了,别慌。我遇到过好几次,大多是设备树配置不对,或者根文件系统挂载失败。
避坑指南:我曾经烧录时选错了卡,把电脑的硬盘给格式化了……嗯,从那以后我每次烧录前都会再三确认盘符。你也一定要看清楚,别选成 /dev/sda。
1.2 Tina Linux 整体架构
为了让你更直观地理解 Tina Linux 的组成,我画了一张架构图。
这张图其实反映了 Tina Linux 的设计思路。它不像通用 Linux 那样「大而全」,而是更注重「小而精」。每一层都做了裁剪和优化,目的就是让系统在资源有限的嵌入式设备上跑得稳、跑得快。
1.3 开发调试工具链
环境搭好了,接下来就是调试。Tina Linux 自带了一些调试工具,我常用的有:
- 串口终端:最基础的调试手段,看内核打印、应用程序日志
- adb:全志平台支持 adb 调试,方便传文件和执行命令
- strace:跟踪系统调用,定位应用程序卡死问题
- top / ps:查看进程状态和 CPU 占用
- dmesg:查看内核环形缓冲区,驱动调试必备
我的习惯:调试时我会同时开三个终端——一个串口看内核日志,一个 adb shell 执行命令,还有一个本地终端用来编译和修改代码。这样效率最高。
好了,环境搭建这部分就到这里。记住一句话:环境搭好了,后面的调试工作才能顺利展开。别嫌麻烦,一步到位最省时间。