Skip to content

移远 QuecPi Alpha 使用说明

本文档是介绍阿加犀Docker以及AI工具链的使用方法,

如在Docker以及工具链的使用上遇到问题,请联系阿加犀FAE(阿加犀小助手)。

如在QuecPi Alpha硬件外设接口以及底层系统的使用上遇到问题,请参考 移远官方文档

💡注意

请勿安装移远官网提供的docker镜像或者开源的docker镜像,否则无法使用阿加犀AI工具链。

1. 快速开始

1.1 环境准备

1.1.1 硬件准备

  • 装有 Windows 10 以上的电脑
  • QuecPi Alpha
  • USB Type-A to Type-C 数据线(随板卡附赠)
  • USB Type-A to Type-C 电源线(随板卡附赠,Type-A口可接入普通手机充电器接头)

1.1.2 软件准备

请参见工具安装章节,安装必要的工具以辅助开发者完成硬件产品的使用。

2. AidLux Docker使用

为了能快速与其他厂商板卡结合,阿加犀推出了AidLux 自定义docker方案,为开发者提供AI工具链。如下是Docker以及AI工具链的使用方法简介。

2.1 AidLux Docker使用方法

当开发者拿到设备并开箱后,根据快速开始章节中做好软硬件准备。按照如下步骤开机:

  • 1、电源线接入板子POWER IN口。
  • 2、数据线的Type-A口接入Windows电脑,Type-C口接入板子Type-C口。
  • 3、在Windows电脑端,按Win+R,输入:cmd ,打开Terminal窗口。并输入如下命令检查设备是否被识别。
shell
adb devices

alt text

  • 4、设备识别到后,输入如下命令,通过adb进入到宿主机系统中。
shell
adb shell

alt text

  • 5、设备在发货前已预装了AidLux Docker,可使用如下命令查看。
shell
docker images  # 查看image
docker ps -a   # 查看容器

alt text

  • 6、通过命令进入到容器中:
shell
docker exec -it aidlux bash

alt text

2.2 通过Web访问Aidlux Docker

除了通过adb登录系统后再通过docker命令进入到容器的方法之外,阿加犀还为AidLux Docker开发了一款Web Desktop,访问方法如下:

  • 1、板卡接入网线,并获取到IP地址。可通过adb shell登录到系统查看IP地址。
shell
adb shell        # 通过adb登录到宿主机系统
ifconfig eth0    # 查看IP地址

alt text

登录密码:aidlux

alt text

登录后,可点击下排第一个按钮打开终端,可用于命令行操作。

💡注意

在终端操作中,部分命令需要使用 sudo 命令提升权限,其密码为:aidlux

alt text

2.3 文件传输

2.3.1 使用SCP文件传输

SCP传输需要板卡正常联网, 在终端可输入命令查看IP地址:

shell
ifconfig

alt text

  • 在PC终端中使用下面命令,上传文件test.txt到 /home/aidlux/目录。
bash
scp -r  .\test.txt aidlux@192.168.111.21:/home/aidlux/
  • 在 PC 终端中使用下面命令,下载文件到 PC 当前目录。
bash
scp -r aidlux@192.168.111.21:/home/aidlux/test.txt ./

2.3.2 使用AidLux文件浏览器传输文件

使用AidLux文件浏览器传输需要板卡正常联网,若开发板的IP为192.168.110.194,如下步骤进行文件传输:

  • 在浏览器中输入url: http://192.168.110.194:8000/ 登录到AidLux桌面环境,密码:aidlux。登录后可点击文件浏览器图标进入。

alt text

  • 点击右上角上传按钮,传入文件或目录到/home/aidlux/目录下。

alt text

  • 点击右上角下载按钮,将/home/aidlux/目录下的文件或目录下载到本地。

alt text

3. 机器人套件使用

3.1 机器人套件安装

请参见机器人软件安装指南章节进行安装相关软件。

3.2 Ubuntu Desktop访问指南

在使用机器人相关仿真软件时,阿加犀也为开发者提供了一套稳定的Ubuntu Desktop桌面系统。使用方法如下:

alt text

  • 3、在Windows电脑上打开VNC连接工具,通过远程登录到Ubuntu Desktop 访问IP:板卡IP 访问端口:5902 访问密码:aidlux

alt text

4. AI工具链使用

阿加犀构建了一套完备的边缘端AI开发工具套件帮助开发者加速AI应用落地,其涵盖了底层系统到上层应用级SDK。 详见开发者指南

4.1 Aidlite SDK使用示例

4.1.1 SDK&API文档

AidLite SDK

4.1.2 aidlite_qnn

bash
# 进入工程目录:
cd /usr/local/share/aidlite/examples/aidlite_qnn231/python

#运行测试工程脚本:
sudo python3 qnn_yolov5_multi.py 3

# 注意:1、sudo需要输入密码:aidlux 2、当前示例仅调用DSP
bash
# 进入工程目录:
cd /usr/local/share/aidlite/examples/aidlite_qnn231/cpp

# 编译可执行程序:
sudo mkdir build && cd build
sudo cmake ..
sudo make

# 运行测试工程脚本:
sudo ./qnn_yolov5_multi 3
# 注意:1、sudo需要输入密码:aidlux 2、当前示例仅调用DSP

4.1.3 aidlite_snpe

bash
# 进入工程目录:
cd /usr/local/share/aidlite/examples/aidlite_snpe229/python

# 运行测试工程脚本:sudo python3 snpe2_yolov5_multi.py 3

# 注意:1、sudo需要输入密码:aidlux 2、当前示例仅调用DSP
bash
# 进入工程目录:
cd /usr/local/share/aidlite/examples/aidlite_snpe229/cpp

# 编译可执行程序:
sudo mkdir build && cd build
sudo cmake ..
sudo make

# 运行测试工程脚本:
sudo ./snpe2_yolov5_multi 3


# 注意:1、sudo需要输入密码:aidlux 2、当前示例仅调用DSP

4.1.4 aidlite_tflite

bash
# 进入工程目录:
cd /usr/local/share/aidlite/examples/aidlite_tflite/python

# 运行测试工程脚本:
# 调用DSP:
sudo python3 tflite_yolov5_multi.py 3

# 注意:1、sudo需要输入密码:aidlux 2、当前示例仅调用DSP
bash
# 进入工程目录:
cd /usr/local/share/aidlite/examples/aidlite_tflite/cpp

# 编译可执行程序:
sudo mkdir build && cd build
sudo cmake ..
sudo make

# 运行测试工程脚本:

# 调用CPU:
sudo ./snpe2_yolov5_multi 1

# 调用GPU:
sudo ./snpe2_yolov5_multi 2

# 调用DSP:
sudo ./snpe2_yolov5_multi 3

# 注意:1、sudo需要输入密码:aidlux

4.2 AidCV使用示例

4.2.1 AidCV SDK文档

AidCV SDK

bash
# 进入工程目录:
cd /usr/local/share/aidcv/samples

# 运行测试工程脚本调用本地视频文件:
python3 test_video.py 0

# 注意:1、使用aidcv时,需要启用图形化桌面,如在aidlux desktop上执行aidcv后才能观看到弹出的窗口。

4.3 Aidstream-gst SDK使用示例

4.3.1 Aidstream-gst SDK文档

Aidstream-gst SDK

4.3.2 纯编解码示例

bash
# 进入工程目录:
cd /usr/local/share/aidstream-gst/example/cxx

# 编译可执行文件:
sudo mkdir build && cd build
sudo cmake -DV4L2=ON ..
sudo make

# 运行测试工程脚本:
./start 1

# 注意:1、sudo需要输入密码:aidlux 2、需修改配置文件/usr/local/share/aidstream-gst/conf/aidstream-gst.conf 中输入输出地址。

4.3.3 编解码+算法示例

bash
# 进入工程目录:
cd /usr/local/share/aidstream-gst/example/cxx

# 编译可执行文件:
sudo mkdir build && cd build
sudo cmake ..
sudo make

# 运行测试工程脚本:
./qnn_rtsp 1

# 注意:1、sudo需要输入密码:aidlux 2、需修改配置文件/usr/local/share/aidstream-gst/conf/aidstream-gst.conf 中输入输出地址。

5. 刷机指导

如果您不小心将宿主机系统破坏,请参照如下方法进行重新刷机。

刷机前,需要安装必要的工具以辅助您刷机。工具下载链接:软件工具安装

根据文档安装如下工具:

1、USB驱动

2、ADB工具

3、刷机工具

安装如上工具后,即可开始刷机。

5.1 镜像下载

镜像下载链接:QuecPi Alpha ROM

下载链接中存在三份文件:

1、移远LE系统:SG565DWFPARL1A01_BETA25080801BL01BP01K0M02V01_QDP_BETALP6.6.052.01.002V03.zip

2、阿加犀docker程序包:aid-docker.zip

3、AidLux docker镜像:aidlux_ql_ubun2204_full.30.tar.gz

5.2 刷机

5.2.1 切换到刷机模式

  • 设备开机后,使用usb-typec线缆,连接电脑和设备。usb接电脑端,typec口接设备端。

  • 连接好后,执行"adb devices",会列出已连接设备。如果没有,则多等待一会,或者拔插一下typec线缆再执行该命令。

alt text

  • 切换到刷机模式,执行"adb shell reboot edl"。x

alt text

5.2.2 配置QFIL的Configuration项

  • 打开QFIL,点击上方Configuration-FireHose Configuration选项。

alt text

  • 在弹出的Download Configuration窗口里做如下设置:

Download Protocol 选择"0-Sahara"

Device Type 选择 "ufs"

勾选"Reset After Download"选项

其他选项均与如下截图保持一致即可。

alt text

  • 配置完成后,点击OK进行保存。

5.2.3 选择刷机端口

  • 点击"Select Port"选项,在弹出的窗口,选择出现的9008端口,点击"OK"。

  • 经过前面章节中的切换,该窗口应该会自动出现9008端口选项,如未出现请断电重启后再次执行切换并等待其出现。

alt text

5.2.4 选择Build Type

  • 找到"Select Build Type"项,选择"Flat Build"。

alt text

5.2.5 选择刷机文件

  • 解压rom文件:SG565DWFPARL1A01_BETA25080801BL01BP01K0M02V01_QDP_BETALP6.6.052.01.002V03.zip

  • 找到"Select Programmer"项,点击"Programmer Path"后的"Browse...",找到解压路径后,选择解压后的rom文件。

alt text

  • 选择"prog_firehose_Qcm6490_ddr.elf",点击打开。

alt text

5.2.6 选择刷机xml文件

  • 找到"Select Flat Build"项,点击下方的"Load XML...",选择刷机xml文件。

alt text

  • 在弹出的窗口,选择所有的xml文件。

alt text

  • 在选择xml文件后,会自动再弹出一个窗口。仍然全选所有的文件。

alt text

5.2.7 开始刷机

  • 以上选项全部选择好后,点击Download开始刷机。

alt text

  • 等待几分钟后,出现successful后表示刷机完成。

5.3 替换阿加犀docker程序包

由于硬件设备和底层系统均由第三方厂商提供,因此需要手动替换docker相关文件以满足阿加犀容器及AI工具链的使用,方法如下:

5.3.1 挂载文件系统

在Windows电脑端,按Win+R,在弹出的窗口输入”cmd”,打开终端窗口。在窗口中输入如下命令:

  • 获取root权限
shell
adb root
  • 进入到板卡底层系统
shell
adb shell
  • 挂载文件系统
shell
mount -o remount,rw /usr

5.3.2 上传阿加犀docker程序包

  • 从windows电脑端找到下载好的aid-docker.zip文件,使用adb push到系统中,如下:
shell
adb push aid-docker.zip /
  • 上传后,进入到系统中解压该包,如下:
shell
adb shell                  // 进入到系统中
unzip aid-docker.zip       // 解压zip文件

alt text

  • 解压后,可看到生成一个aid-docker的目录,进入到该目录中。

5.3.3 替换阿加犀docker程序包

  • 替换docker文件前,需要停止系统原本的docker服务。系统下执行如下命令:
shell
systemctl stop docker
  • 替换/aid-docker/下的二进制文件
shell
cp -r /aid-docker/docker* /usr/bin/
  • 替换/aid-docker/conf/下的配置文件
shell
cp -r /aid-docker/conf/* /lib/systemd/system/
  • 重启docker服务
shell
systemctl daemon-reload
systemctl restart docker
systemctl restart containerd
  • 重启后,查看docker版本为1.0.70
shell
docker -v

alt text

5.4 配置容器开机自启动

当前系统docker无法开机自启,为方便用户使用容器,可采用如下方法进行快速规避。

  • 通过adb登录到系统下,打开/etc/profile文件,在末尾添加一行内容。
shell
vi /etc/profile         //打开文件
docker ps > /dev/null   //引导开机自启动
  • 输入完,保存后reboot重启即可。

6. Docker镜像加载与容器创建

如开发者在使用过程中,不小心将docker容器或者镜像损坏,可参考如下方法进行恢复。

6.1 Docker镜像加载

如果您仅仅是Docker容器被破坏,则不需要再进行image加载,仅参考xxxx章节恢复容器即可。如果您把image给删除了,则参考如下步骤进行恢复。

  • 打开Windows电脑的命令提示符窗口,通过adb进入到系统下
shell
adb shell
  • 找到出厂时存放的docker镜像:路径:/aidlux_ql_ubun2204_full.30.tar.gz
shell
find / -name aidlux_ql_ubun2204_full.30.tar.gz
  • 进到镜像所在路径,执行加载命令
shell
docker load < aidlux_ql_ubun2204_full.30.tar.gz
  • 等待加载完成后,查看Image ID
shell
docker images
  • 记录好Image ID 并在Docker容器构建中使用

6.2 Docker容器创建

Docker镜像加载好后,还需要创建容器,具体操作如下:

  • 打开Windows电脑的命令提示符窗口,通过adb进入到系统下
shell
adb shell
  • 查看Image ID,并记录ID
shell
docker images
  • 创建容器,注意将命令中的Image_ID修改成上一步所查询出的ID值
shell
docker run -d --aidfunc --net host --restart always --dns 223.6.6.6 --name aidlux Image_ID
  • 等待创建完成即可

7. FAQ

Q: AidLux 容器损坏,如何恢复?

A: 仅容器损坏,需要重新加载容器,请先使用命令删除原来的容器,然后再参照 6.2 Docker容器构建 章节重新创建。

shell
docker stop aidlux   //停止正在运行的aidlux容器
docker rm aidlux     //删除aidlux容器

Q: Aidlux Docker镜像损坏,如何恢复?

A: 如果镜像损坏,需要重新加载镜像,请参照 6.1 Docker镜像加载, 6.2 Docker容器构建 章节重新加载镜像和创建容器。

Q: 底层系统被破坏,需要重新刷机怎么处理?

A: 请参照 第5、6章节重新刷机以及AidLux容器创建。