Skip to main content
Version: 1.0.0

三、开发板操作系统 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、样例配置和程序、性能深度分析数据等。
taRuntimetaRuntime 是 TACO SDK 的一个重要组成模块,它在板端提供了一组 C 语言编程接口(API),用于支持板端应用程序基于 EA6530 NPU 硬件完成网络模型推理任务。
taCVtaCV 是 TACO SDK 中的一个软件模块,它以 EA6530 芯片提供的硬件加速能力为基础,提供了一套性能优化的图像处理算子,可以支撑多种视觉算法任务,包括传统视觉算法、JPEG 编解码、神经网络算法等。
taFFmpegtaFFmpeg 框架提供了获取视频流和流转发的协议,除了原有的基于 CPU 算力实现的视频/图像编解码功能之外,还提供了基于芯片硬件能力实现的视频/图像编解码接口。
taOpenCVtaOpenCV 框架除了原有的基于 CPU 算力提供的图像编解码和图像处理功能之外,还通过 FFmpeg 提供了基于芯片硬件能力实现的视频编解码功能,以及通过 TacoCV 提供了 JPEG 硬件编解码功能和部分视频处理功能。
taOpenBLAStaOpenBLAS 库基于 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 闪烁。