犀牛派X1 - 入门保姆级教程连载02 - 从零开始玩转边缘 AI - 上篇

犀牛派 X1 小白入门指南:从零开始玩转边缘 AI

目标读者:第一次接触犀牛派 X1 的开发者
预计时间:30-45 分钟完成全部配置
需要准备:犀牛派 X1 主机、DC 12V 5A 电源、USB Type-C 数据线、网线、Windows/Mac/Linux 电脑一台, USB键盘,USB鼠标

一、认识你的犀牛派 X1

在动手之前,先快速了解一下这台设备的核心配置,这样你会更清楚它能做什么:

项目 参数
处理器 Qualcomm QCS8550(6 核,最高 3.2GHz)
AI 算力 48 TOPS (INT8),等效 156 TOPS
内存/存储 16GB LPDDR5X + 128GB eMMC
系统 AidLux 融合系统(Android 13 + Ubuntu 22.04)或纯 Ubuntu 22.04
网络 Wi-Fi 7、蓝牙 5.3、3×LAN + 1×WAN
接口 USB 3.0、HDMI 输入输出、CSI 摄像头×3、CAN、SPI、I2C、PWM、UART

简单来说,这是一台自带 NPU(AI 加速芯片)的迷你 Linux 电脑,性能接近高端手机,但专为机器人和 AI 应用设计。

二、第一步:烧录 Ubuntu 系统

2.1 出厂状态说明

犀牛派 X1 出厂时默认预装了 AidLux 融合系统(Android 13 + Ubuntu 22.04 双系统)。如果你拿到手就能开机看到 Android 桌面,说明系统已经在里面了,可以跳过烧录步骤,直接进入第三步联网。

如果你需要重装系统刷成纯 Ubuntu 22.04,请继续阅读。

2.2 准备工作

  • 在 Windows 电脑上安装 Qualcomm USB 驱动和 QFIL 烧录工具

得先去下载这几个工具:

  • USB驱动:USB_Driver_qud.win.1.1_installer_10061.1.zip

  • 系统刷机工具:QPST_2.7.496.zip

  • ADB 工具:platform-tools.zip

下载链接: Ant Design Pro

全部下载下来,放到一个目录里面解压出来,先安装USB驱动:USB_Driver_qud.win.1.1_installer_10061.1.zip ,解压后一直无脑next直到结束即可。

后面两个安装包根据官方文档安装即可。

安装完了这些软件包以后,才到犀牛派X1的硬件链接部分。你需要准备下面的设备:

  • 拿出官方套件里面的USB Type-C 数据线,两头都是USB-C的,切记!不要直接用你手里的android充电线,完全不行的,即使是带数据的usb-A口转USB-C也不行,建议直接使用官方线缆,否则你会发现你设备根本烧录不了,另外要注意你电脑的USB-C要全速USB-C的接口,否则烧录过程也会有问题。(PS: 我本来使用我的公司电脑烧录发现根本烧录不了,然后回家翻了台零刻GTR小主机,修复了主机系统后才正常烧录的。这个你们很有可能也会遇到)

2.3 烧录步骤(以 QFIL 工具为例)

表格

步骤 操作 说明
1 安装驱动 安装 Qualcomm_USB_Driver,确保电脑能识别设备,通过USB-C电缆接入电脑的USB-C口,给设备上电。
2 进入下载模式 打开一个CMD窗口,然后输入:adb devices 如果查看到设备列出来了,一串序列号,就可以执行下一条命令:adb reboot edl
3 打开 QFIL 选择 Flat Build 模式
4 选择端口 点击 SelectPort,选择出现的 9008 端口
5 加载镜像 选择 prog_firehose_*.elf 文件,然后加载 rawprogram*.xmlpatch*.xml
6 开始烧录 点击 Download,等待进度条完成,显示 Download Succeed
7 重启设备 烧录完成后自动重启,拔掉数据线,重新上电

:light_bulb: 小白提示:如果烧录失败,关掉设备电源,断开所有连接,重新从第 2 步开始。90% 的烧录失败都是因为没正确进入下载模式。

官方的参考中的adb root 可能会失败,但是不执行也没问题,直接执行adb reboot edl就可以。

参考链接: Ubuntu系统安装 | APLUX Doc Center

三、第二步:设备联网

联网是使用犀牛派 X1 的前提,因为后续所有软件安装都需要网络。

3.1 有线网络(最简单,推荐新手使用)

直接用网线将犀牛派 X1 的 WAN 口 或任意 LAN 口 连接到路由器即可。设备默认会自动获取 IP 地址。

3.2 查看设备 IP(通过 ADB)

如果你不知道设备的 IP,可以通过 USB 数据线连接电脑查看:

# 在电脑端安装 ADB 工具后,执行:
adb devices          # 确认设备已连接
adb shell            # 进入设备终端
ifconfig eth0        # 查看有线网卡 IP

你会看到类似 inet addr:192.168.1.105 的输出,这就是设备的 IP 地址。
3.3 Wi-Fi 连接(可选)

如果你更想用无线,可以在 AidLux 桌面(Android 侧)中像操作手机一样连接 Wi-Fi,或者在 Ubuntu 终端中使用 nmcli 命令:

bash

# 扫描附近 Wi-Fi
nmcli dev wifi list

# 连接指定 Wi-Fi(替换 YOUR_SSID 和 YOUR_PASSWORD)
sudo nmcli dev wifi connect "YOUR_SSID" password "YOUR_PASSWORD"

3.4 验证网络

在设备终端中执行:

ping www.baidu.com -c 4

如果能看到返回数据,说明网络已通。

愣着看我干嘛?加菜啊!Linux系统网络都通了,你只要开启SSH就天下我有了!

初级菜鸟的话,建议你用 HDMI 线连接显示器,USB 接键盘鼠标

  • 开机后直接进入桌面环境~

  • 然后打开一个终端:可以用快捷键 ctrl + T

4.2 更新软件仓库

登录 Ubuntu 终端后,先执行系统更新(这是 Linux 世界的"好习惯"):

# 更新软件包列表
sudo apt update

# 升级已安装的软件包(首次执行可能需要几分钟)
sudo apt upgrade -y

4.3 安装常用工具

根据你的开发需求,可以安装一些基础工具:

# 安装 build-essential(编译工具)
sudo apt install -y build-essential git wget curl vim

# 安装 Python 及 pip(机器学习必备)
sudo apt install -y python3 python3-pip python3-venv

# 安装 htop(系统监控,类似 Windows 任务管理器)
sudo apt install -y htop

# 安装 gpiod(如果需要操作 GPIO 控制硬件)
sudo apt install -y gpiod libgpiod2 libgpiod-dev

五、第四步:安装模型广场管理工具(MMS)

5.1 什么是模型广场?

阿加犀为犀牛派 X1 提供了 Model Farm(模型广场),里面预置了数百个针对高通芯片优化过的 AI 模型(如 YOLO、ResNet 等),并且可以直接调用 NPU 加速。

MMS(Model Management Service) 是模型广场的命令行管理工具,让你不用打开浏览器,直接在终端里搜索、下载模型。

5.2 检查 MMS 是否已预装

犀牛派 X1 通常已预装 AidLux SDK(包含 MMS),在终端输入:

mms --version

如果显示版本号,说明已安装。

如果是官方镜像,你肯定能看到mms,我这里显示版本是1.2.59

下面就可以登录模型广场了。

5.3 登录模型广场

mms login

按提示输入你的阿加犀开发者账号用户名和密码

登录成功后会显示:Login successfully.

:light_bulb: 小白提示:如果没有阿加犀账号,需要先访问 AidLux 官网 注册一个开发者账号。

登录成功了,就可以开始下载模型了。

5.4 查询和下载模型

# 列出所有可用模型(可能会很多)
mms list

# 搜索特定模型,例如 YOLO 系列
mms list yolo

我简单统计了一下,有507个模型可以用。。。

模型列表里面格式是下面结构的。

第一列是模型名称,第二列是精准度,第三列是芯片组,第四列是后端QNN支持的版本,最后SOC是支持的芯片。

我给你们简单看看官方支持的YOLO的版本:
aidlux@rhinox1:~$ mms list yolo
Model Precision Chipset Backend SOC


YOLO11s-obb FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11s-obb INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11s-obb W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s-worldv2 FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s-worldv2 INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s-worldv2 W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11l-obb FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11l-obb INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11l-obb W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11l-Pose W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11l-Pose FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11m-obb FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11m-obb INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11m-obb W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11m-Pose W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11m-Pose FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11n-obb FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11n-obb INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11n-obb W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11n-Pose W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11n-Pose FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11s-Pose INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11s-Pose W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11s-Pose FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11x-obb FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11x-obb INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11x-obb W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11x-Pose W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO11x-Pose FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO12-l W8A16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-l FP16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO12-m W8A16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-m FP16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO12-n W8A16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-n FP16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO12-s W8A16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-s FP16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO12-x W8A16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-x FP16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLO12-x INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26l W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26l FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26n W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26n FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26x INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26x W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO26x FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-l FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-l W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLO-NAS-s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOR-P6 FP16 qcs8550 QNN2.41 Qualcomm QCS8550
YOLOv10b FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10b INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10b W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10l FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10l W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10n W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10n FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10x FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10x INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv10x W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11l FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11l W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11n FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11n W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11x FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11x INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv11x W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-L FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-L INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-L W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-N FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-N INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-N W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-S FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-S INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-S W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-X FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-X INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv13-X W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5l FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5l W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5n FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5n W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5n-seg FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5n-seg INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5n-seg W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5s-seg FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5s-seg INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5s-seg W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5x FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5x INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv5x W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6l FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6l INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6l W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6n FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6n W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv6s6 FP16 qcs8550 QNN2.31 Qualcomm QCS8550
YOLOv7 FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv7 INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv7 W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8m FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8m INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8m W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8n FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8n INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8n W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s-Segmentation INT8 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s-Segmentation W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOv8s-Segmentation FP16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOX-s W8A16 qcs8550 QNN2.36 Qualcomm QCS8550
YOLOX-s FP16 qcs8550 QNN2.36 Qualcomm QCS8550

总共167个yolo的版本,总有一款适合你。我之前还傻傻自己训练,还只能CPU调用,后端QNN调用起来速度嘎嘎快。

我目前想尝试一下YOLO26l 的int8, qcs8550 后端qnn2.36 的模型。

命令解释: mms get 获取模型 -m 模型名称, -b 后端名称, -c chipset芯片组, -p 就是precisions的选择,精准度看自己的需求。我先测试int8。

默认模型会放在/var/opt/model_farm_models目录里面。

解压到当前目录的models里面:./models/QCS8550/W8A8/cutoff_yolo26l_qcs8550_w8a8.qnn236.ctx.bin

待会儿就调用它。下个章节见。

3 个赞

大佬教程真细致啊