三、开发板操作系统 TacoOS
3.1 简介
TacoOS 是一款免费的操作系统,基于 Ubuntu 24.04,且针对 AIBOX 的硬件进行了适配及优化。TacoOS 系统拥有 66,663 余款 Ubuntu 软件包。对于大多数 AIBOX 使用需求而言,我们建议使用 TacoOS 系统。
因为 TacoOS 系统源自 Ubuntu,因此 TacoOS 系统基于 Ubuntu 发布周期内的阶段发行版本,大约每 2 年发布一次。最新版的 TacoOS 系统基于 Ubuntu Noble。
TacoOS 的软件架构如下图所示:
主要软件的介绍如下表所示:
| 软件名称 | 软件描述 |
|---|---|
| ModelZoo | 其中包括了在线展示的 Readme、样例配置和程序、性能深度分析数据等。 |
| taRuntime | taRuntime 是 TACO SDK 的一个重要组成模块,它在板端提供了一组 C 语言编程接口(API),用于支持板端应用程序基于 EA6530 NPU 硬件完成网络模型推理任务。 |
| taCV | taCV 是 TACO SDK 中的一个软件模块,它以 EA6530 芯片提供的硬件加速能力为基础,提供了一套性能优化的图像处理算子,可以支撑多种视觉算法任务,包括传统视觉算法、JPEG 编解码、神经网络算法等。 |
| taFFmpeg | taFFmpeg 框架提供了获取视频流和流转发的协议,除了原有的基于 CPU 算力实现的视频/图像编解码功能之外,还提供了基于芯片硬件能力实现的视频/图像编解码接口。 |
| taOpenCV | taOpenCV 框架除了原有的基于 CPU 算力提供的图像编解码和图像处理功能之外,还通过 FFmpeg 提供了基于芯片硬件能力实现的视频编解码功能,以及通过 TacoCV 提供了 JPEG 硬件编解码功能和部分视频处理功能。 |
| taOpenBLAS | taOpenBLAS 库基于 CPU 向量指令集提供了软硬件加速的线性代数基础运算功能,其中包括神经网络领域常用的矩阵和向量乘法等功能。 |
3.2 软件更新
请始终确保在 TacoOS 系统上运行的软件版本是最新的。这可以使设备免受漏洞影响,确保能及时收到最新补丁。
3.2.1 使用 APT 管理软件包
在 TacoOS 系统中,推荐使用 APT(Advanced Package Tool,高级软件包工具)来安装、更新和卸载软件。用户可以用命令行 apt 调用 APT。在运行命令之前请先通过串口或者 SSH 连接至开发板。
安装更新
APT 会把软件源列表存放在文件 /etc/apt/sources.list 中。在安装软件之前,请运行以下命令来刷新(update)位于 /etc/apt/sources.list 的本地软件源:
# sudo apt update
运行以下命令,可把所有已安装的软件包更新(upgrade)至最新版本:
# sudo apt full-upgrade
📝 注意:
- 与 Ubuntu 不同,TacoOS 系统始终处于开发状态。因此,软件包的依赖关系有时会发生变更,更新软件包应始终使用
full-upgrade,而不要用普通的upgrade。
请定期运行这些命令,确保软件保持最新状态。
搜索软件
要搜索软件包,请用 apt-cache search 搜索(search)关键字:
# apt-cache search <关键字>
例如,以下是关键字 taco 的搜索结果:
# apt-cache search taco
dist - Tools for developing, maintaining and distributing software
folks-common - library to aggregates people into metacontacts (common files)
folks-tools - Telepathy backend for libfolks - database and import tools
gajim - GTK+-based Jabber client
gambas3-gb-db-form - Gambas database bound controls
gir1.2-folks-0.7 - library to aggregates people into metacontacts - GObject-Introspection
golang-github-jtacoma-uritemplates-dev - URI Templates (RFC 6570) implemented in Go
golang-github-miolini-datacounter-dev - Golang counters for readers/writers (library)
golang-github-ttacon-chalk-dev - Go library for prettifying terminal/console output
libdist-zilla-util-configdumper-perl - simplify extraction of plugin settings for Dist::Zilla plugin authors
libfolks-dev - library to aggregates people into metacontact - development files
libfolks-doc - library to aggregates people into metacontact - documentation
libfolks-dummy-dev - Dummy backend for libfolks - development files
libfolks-dummy-doc - Dummy backend for libfolks - documentation
libfolks-dummy26 - Dummy backend for libfolks
libfolks-eds-dev - Evolution-data-server backend for libfolks - development files
libfolks-eds-doc - Evolution-data-server backend for libfolks - documentation
libfolks-eds26 - Evolution-data-server backend for libfolks
libfolks-telepathy-dev - Telepathy backend for libfolks - development files
libfolks-telepathy-doc - Telepathy backend for libfolks - documentation
libfolks-telepathy26 - Telepathy backend for libfolks
libfolks26 - library to aggregates people into metacontacts
python3-metaconfig - Python ConfigParser bootstrapping library (Python3)
unibetacode - convert classical Greek and Coptic between Beta Code and Unicode
yt-dlp - downloader of videos from YouTube and other sites
libtacv - Multimedia Library Package
libtaffmpeg-dev - Multimedia Library Package
libtapipeworks - TACO Pipeworks Library
libtasys - TACO System Library
搜索结果返回了多个软件包,它们的名称或简介中均包含关键词 taco。
使用以下命令可查看其详细信息:
# apt-cache show <软件包名>
例如,假设要查询 libtacv 这个软件包,结果如下:
# apt-cache show libtacv
Package: libtacv
Version: 1.0.0
Architecture: riscv64
Installed-Size: 2048
Depends: libtasys (>= 1.0.0),
libdec24 (>= 1.0.0),
unify-9200o (>= 1.0.0)
Priority: optional
Section: devel
Filename: pool/main/libt/libtacv/libtacv_1.0.0_riscv64.deb
Size: 314824
SHA256: 7ea9690707e878c1da738e7da54aa79d486d2fba245714d586870a79988d25be
SHA1: 8c5d1d760452ae95bd9659df8b6cc21e0b42fa14
MD5sum: c5491117654c4fb6048e68620e2c1fa8
Description: Multimedia Library Package
Multimedia library and headers for TACO platform.
Description-md5:
可使用此命令验证维护者、版本和大小是否满足您对软件包的要求。
安装软件包
要在开发板上安装软件包,请把软件包名传给以下命令:
# sudo apt install <软件包名>
apt 会显示软件包将占用的磁盘容量。输入 Y 并按回车键来确认安装。您可以在上述命令中添加参数 -y,跳过这个确认步骤。
卸载软件包
要在开发板上卸载软件包,请将软件包名传给以下命令:
# sudo apt remove <软件包名>
📝 注意:
- 要彻底抹除软件包的全部痕迹(包括配置文件),请把
remove改成purge。
apt 将显示在卸载软件包后,可释放的磁盘容量。输入 Y,再按回车键确认卸载。您可以在上述命令中添加参数 -y,跳过这个确认步骤。
管理 apt 磁盘使用情况
在执行之前,sudo apt full-upgrade 将显示完成更新所需的下载及存储会占用的磁盘容量。要查看剩余磁盘空间是否充足,请运行以下命令:
# df -h
apt 会把已下载的软件包(.deb 文件)存储到 /var/cache/apt/archives。在安装过程中,apt 会下载这些软件包,然后把文件从软件包复制到对应的安装位置。视您安装的软件而定,软件包自身可能会占用大量空间。要删除所有遗留的软件包本体,请运行以下命令:
# sudo apt clean
3.2.2 将操作系统更新至最新大版本
可通过 OTA 的方式下载最新系统镜像,并将其更新至 SD 卡。
此过程会清除 SD 卡上的所有原数据,因此 在更新系统前,建议先备份重要数据。
OTA 更新方式请参考 「AIBOX 使用技术手册」文档的「系统升级」章节 的相关内容。
3.3 播放音视频
3.3.1 使用 ffmpeg 播放视频流
插上 USB 摄像头,同时可购买配套的 MIPI 显示屏,并连接至对应接口,通过 ffmpeg 命令行抓流并播放。
例如播放 USB 摄像头的视频流:
# ffmpeg -f video4linux2 -i /dev/video0 -vf \"scale=1920:1080,format=rgb32\" -f fbdev /dev/fb1 &
3.3.2 使用 aplay 播放音频流
可将耳机线插入到 3.5mm 音频接口,然后通过 aplay 命令行播放 wav 文件,即可在耳机中听到声音。例如:
# aplay -D hw:0,0 -c 2 -f S16_LE -r 44100 /usr/testdata/sound/sound-test.wav
3.4 实用工具
3.4.1 tps-nvmem
该工具用于显示 SoC 内部 OTP(一次性可编程,one-time programmable)或 EEPROM 存储器中的内容。
详细使用请参阅 「AIBOX 使用技术手册」文档的「系统工具说明」章节 的相关内容。
3.5 用 Python 控制 GPIO
3.5.1 控制 LED
创建一个 test_led.py 脚本文件,内容如下:
#!/usr/bin/env python3
import os
import sys
import time
import periphery
led_name = None
def test_blink():
while True:
led = periphery.LED(led_name, False)
led.write(False)
time.sleep(1)
led.write(True)
time.sleep(1)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: ./test.py <LED name>")
sys.exit(1)
led_name = sys.argv[1]
test_blink()
然后执行命令:
# ./test_led.py green
可以看到开发板的绿色 LED 闪烁。