AXera-Pi 上手指南

  • AXera-Pi
  • 烧录系统
  • 上手指南
更新历史
日期 版本 作者 更新内容
2022-11-25 v0.4 lyx
  • 增加上手使用说明

上手指南

为了让小伙伴们轻松、快速、平稳地把产品用起来,我们准备了新手初学者上手指南:

Linux 系统简介

AXera-Pi 默认板卡没有存储介质,因此需要准备一张系统卡来启动设备。

目前 AXera-Pi 提供的是 Debian11 Bullseye 镜像,Ubuntu 源自 Debian,这意味着 Ubuntu 使用与 Debian 相同的 apt 打包系统,并共享来自 Debian 存储库的大量软件包和库,利用 Debian 基础设施作为基础。 大多数“派生” Linux 发行版,它们使用相同的包管理系统并与基于的发行版共享软件包。

debian_logo
选择 Debian 的理由

官方淘宝店 可以购买预烧录系统镜像的 SD 卡,否则就需要自己进行以下的操作来准备 SD 镜像卡。

选择 SD 卡

已在官方购买镜像卡的同学跳过这一步骤,直接在设备插入 TF 卡 点击查看 启动 Linux 系统。

为了方便用户有更多的选择,我们对部分 SD 卡在 AXera-Pi 板子上进行了读写测速。

sd

因为部分 SD 卡是后面陆续才进行测试,没有一一单独拍照但可以根据型号辨认。

序号 型号

写入速度(写入量 160MB)

读取速度(读取量 160MB)

1. Netac 朗科 A2 P500-超高速-64GB 存储卡 2.04697 s, 80.0 MB/s 1.8759 s, 87.3 MB/s
2. 三星 microSDXC UHS-I 128G 存储卡(蓝卡) 2.53387 s, 64.7 MB/s 1.99882 s, 82.0 MB/s
3. EAGET TF 卡(T1 系列)64G 存储卡 6.56955 s, 24.9 MB/s 7.13792 s, 23.0 MB/s
4. 京东 高性能 microSDXC UHS-I 128G 存储卡 2.28133 s, 71.8 MB/s 1.92001 s, 85.3 MB/s
5. KIOXIA microSDXC UHS-I 32G 存储卡 6.71284 s, 24.4 MB/s 2.36794 s, 69.2 MB/s
6. Netac 朗科 A1 32GB 存储卡 4.31411 s, 38.0 MB/s 2.00759 s, 81.6 MB/s
7. BanQ JOY card 白金 64G 存储卡 9.08105 s, 18.0 MB/s 9.02843 s, 18.1 MB/s
8. 海康威视 HS -TF- P2 64G 存储卡 2.28079 s, 71.8 MB/s 1.87698 s, 87.3 MB/s

下面为没有拍照但是测速过的卡:

序号 型号

写入速度(写入量 160MB)

读取速度(读取量 160MB)

1. 雷克沙(Lexar)64GB TF(MicroSD)存储卡 C10 U3 V30 A2 2.59644 s, 63.1 MB/s 1.9106 s, 85.8 MB/s
2. 雷克沙(Lexar)128GB TF(MicroSD)存储卡 C10 U3 V30 6.73793 s, 24.3 MB/s 6.94079 s, 23.6 MB/s

烧录 Linux 系统

axpi-flash

因为开发板上的 EMMC 仅默认预留焊盘,所以需要从 TF 卡启动 Linux Debian 系统。

如何获取镜像?

因为镜像文件比较大,因此仅提供百度云下载链接。

前往百度云点击进入下载页面,输入提取码 sdls 即可下载文件,镜像包与校验文件都已经放在里面了。

debian

其中拓展名为 img.xz 的是压缩文件,我们就是需要烧录这个文件,拓展名是 img.xz.md5sum 的是校验文件,可以用来校压缩文件的完整性。

镜像压缩文件命名的组成为:镜像提供方 _ 适用芯片 _ Linux 发行版 _ 镜像时间 + img.xz

校验文件需要在 Linux 环境中使用,windows10 及以上的用户可以使用 wsl 来提供 Linux 环境

使用命令为在镜像文件和校验文件共同存在的目录使用 md5sum -c *.md5sum*,就可以来查看完整性了。

校验成功 校验失败
md5sum_success md5sum_failed

可以看到校验失败的话会消失 FAILED。当然通常不需要进行校验,这里只是给有需要的人提前预留一下。

如何烧录镜像?

烧录前我们需要进行以下准备:

  • 一张容量大于 8G 的 SD 卡;建议购买官方镜像卡,不然可能会因为 SD 卡质量差而带来糟糕的体验
  • 一个读卡器:建议使用支持 USB3.0 的读卡器,不然会因为读卡器的速度过低会使烧录时间过长
  • Etcher软件:根据自身电脑下载对应版本的软件即可

镜像系统烧录方法:

首先运行 Etcher 软件,点击 Flash from file 选中已经下载好的 img.xz 文件镜像,然后点击 Select target 选中 SD 卡,最后点击 Flash 进行烧录等待完成即可。

烧录镜像文件到 SD 卡:

burn_image_by_etcher

烧录中 烧录完成
axera_burning_image finish_flash

需要注意的是在烧录完成后显示的应该是 Flash Complete!,并且显示的是 Successful

进行完上述操作后,电脑可能会提示需要格式化 U 盘,这个时候我们直接忽略这个提示(因为在 Etcher 软件里面已经烧录完成且 Successful 了),将内存卡取下,准备安装到板子上准备使用。

烧录问题

1. 使用 Etcher 选择镜像的后出现错误

可以重新运行 Etcher 来解决该软件由于缓存等问题而造成的加载错误

2. 结束烧录后提示的是 Failed

重新一次烧录内存卡镜像

3. 格式化后内存卡可用容量很小

这种情况使用对于 Windows 和 MacOS 可以使用 SD Card Formatter来格式化 SD 卡,Linux 系统可以使用系统的 disk 工具或 Gparted来格式化。

启动 Linux 系统

完成上面的烧录镜像卡后,接着接可以组装板子了。

axpi-connect

如何连接外设和配件?

购买全功能套餐的同学们可以跳过此装配步骤。

接线前我们需要进行准备工作:

  • 一块 AXera-Pi 开发板
  • 一个 USB3.0 (或者两个 USB2.0)的电脑接口来连接板子
  • 一张已经烧录适用于 m3axpi 的系统镜像的 SD 卡
  • GC4653 Sensor 普通版摄像头 或者 OS04a10 Sensor 夜视版摄像头
  • 配套的 5 寸 MIPI 屏

axpi-config

可参考以下示例避免误接:

将屏幕(排线反面朝上)接入底板背面 LCD 接口,组装好后翻正板子在右侧的卡槽处插入烧录好的镜像卡。

摄像头接线认准以下注意点:

因物料更换摄像头现有两种版本,V3753 版本的摄像头接线座子以及线序进行了更改,如若接反后上电的话底板的 LED 灯会不亮,接反时间久会导致烧坏板卡或摄像头,请根据以下注意点正确接入摄像头。

进行接线前确保摄像头底部的小人与板子丝印同向再进行接线,如下图所示。

sensor_oldnew

接线时确保底板接口座子与摄像头座子的线序 1 在同一侧,认准排线正面蓝色线序接入即可。

如何启动 AXera-Pi ?

因物料更换屏幕现有不同的版本,需区别版本以及使用屏幕时出现锯齿等画面请移步到 Maix-III 系列 AXera-Pi 常见问题(FAQ) 查询。

如果 PC 支持 USB3.0

  • 用 type-c 接入 USB-UART,串口方式登录开发板
  • 或者接 USB-OTG, ssh 方式登录开发板

如果 PC 只支持 USB2.0

  • 需要两个 USB2.0 端口、两根 type-c,同时连接 USB-UARTUSB-OTG ,否则电流不足无法开机

start

20221013 后设备通电开机会从耳机播放音乐和点亮出厂的 5 寸屏幕,并在串口输出如下的 debian11 系统启动日志(截取部分日志如下).有些同学会遇到 Ubuntu22.04 CH340 系列串口驱动(没有 ttyUSB)问题,点此查看解决方案

m3axpi_debian_boot_log_screenshot

登录到板子里

AXera-Pi 出现上述 logo 画面后代表开机成功,这时我们把板子当做一台 Linux 服务器来对待。

axpi-login

通过「系统登录方式」快速帮助用户了解如何登录到设备里的 Linux 系统,用户可以选择 USB-UART 串口USB-OTG SSH 登录,可点击「系统使用手册-登录方式」前往查看,以下文 USB-OTG 口的 usb0 网卡(192.168.233.1)作为 ssh 登录的 ip 进入板子为例。

juwan@juwan-n85-dls:$ sshpass -p root ssh root@192.168.233.1
Linux AXERA 4.19.125 #53 SMP PREEMPT Tue Sep 13 13:16:27 HKT 2022 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 12 16:43:43 2022 from 192.168.233.10
root@AXERA:~# screenfetch
        _,met$$$$$gg.           root@AXERA
      ,g$$$$$$$$$$$$$$$P.        OS: Debian
    ,g$$P""       """Y$$.".      Kernel: armv7l Linux 4.19.125
  ,$$P'              `$$$.      Uptime: 2d 3h 5m
  ',$$P       ,ggs.     `$$b:    Packages: 785
  `d$$'     ,$P"'   .    $$$     Shell: bash 5.1.4
  $$P      d$'     ,    $$P     Disk: 2.6G / 3.6G (77%)
  $$:      $$.   -    ,d$$'     CPU: ARMv7 rev 5 (v7l) @ 4x 1.248GHz
  $$\;      Y$b._   _,d$P'      RAM: 88MiB / 744MiB
  Y$$.    `.`"Y$$$$P"'
  `$$b      "-.__
    `Y$$
    `Y$$.
      `$$b.
        `Y$$b.
            `"Y$b._
                `""""

root@AXERA:~# ax_clk
AX620A:
DDR:            3733 MHz
CPU:            800 MHz
BUS of VPU:     624 MHz
BUS of NPU:     624 MHz
BUS of ISP:     624 MHz
BUS of CPU:     624 MHz
NPU OTHER:      800 MHz
NPU GLB:        24 MHz
NPU FAB:        800 MHz
NPU CORE1:      800 MHz
NPU CORE0:      800 MHz
ISP:            533 MHz
MM:             594 MHz
VPU:            624 MHz
root@AXERA:~#

学会使用板子

axpi-ai

由于默认没有配置桌面环境(只显示 logo),所以我们需要将 AXera-Pi 连接一台电脑,通过终端管理软件(shell)与它进行命令行交互,这些可以在「系统使用手册-验证外设」学会板上所有验证过的系统调频、外设、驱动、应用等资源的用法,像一些 Linux 操作基础、如何控制 I2C / UART / SPI 这些硬件设备的操作,还可以在「系统使用手册-内置 AI 应用」里调用内置的开箱 AI 应用及例程,快去用起来吧!

serial

试试 Python 编程(适用初学者)

基于这篇上手指引的一路走下来的学习,相信小伙伴们也基本对 AXera-Pi 基础使用以及验证外设有一定的掌握了,那我们就踏入编程的世界,一起来试试 Python 编程吧!

我们内置了以 jupyter notebook/ax-pipline-api/pinpong 等 Python 包,你可以在「试试 Python 编程」里获得如何在 AXera-Pi 上进入 Python 模式启动 jupyter notebook 并使用运行 AI 模型。

python_jy

以及如何连接 Arduino UNO 以及 Microbit 进行 Python 编程的效果如下图。

准备 C/C++ 编程(适用开发者)

能走到这里就说明板子已经用起来了,那就来开发吧!在这之前需要「准备 C/C++ 编程」了解如何拷贝文件到板子里,如何搭建本地编译或交叉编译,然后学习到如何基于现有的代码进行开发。

快速了解现在提供哪些开源代码仓库以及用法,这些开源仓库会持续更新和开放的。

axpi_sdk.jpg

训练模型部署

初学者训练模型可以从 AI 开发指南 学习如何训练一个最简单的模型到量化转换部署测试。

更专业更深入的调优需要了解 Pulsar ,这是由「爱芯元智」自主研发的 all-in-one 神经网络编译器,充分发挥片上异构计算单元(CPU+NPU)算力, Pulsar 工具链核心功能是将 .onnx 模型编译成芯片能解析并运行的 (.joint) 模型。

目前有以下几种部署方式(Pipeline)推荐:

  • libmaix:并不在意程序的性能和效率,用最快的方式把摄像头图像输入 AI 模型后输出识别结果绘制到显示到屏幕上验证一下识别效果。

  • ax-pipeline:没有多余的封装,直接操作芯片核心资源 vin \ ivps \ npu \ vo 等硬解设备进行部署开发,可以使模型部署达到一个非常好的效果。

  • IPCDemo:以效果最好、性能最好、占用最少、稳定可靠、功能最多、确保最终能部署到用户的现场不出问题的框架代码来开发 AI 程序。

libmaix 部署

在板子上编译这个示例代码 axpi_classification_cam,然后放入模型运行后即可看到效果,截止 20221013 前代码还没有优化所以性能不高只够看个结果,想要效果和性能可以看 ax-pipeline 部署。

img

即可验证效果:详细可从 maixhub 上获取

ax-pipeline 部署

以上的部署方式都出于快速验证或应用落地的角度进行的,还有一套基于 bsp sdkax-pipeline 部署方式,它面向既了解 AI 又知道芯片底层 Linux 开发方法的同学,目前内置应用中提供了板子的 rtsp 和屏幕双推流 yolov5 实时识别以及新增 yolov5s-seg 实例分割的程序就是来自于它。

rtsp-display

IPCDemo 部署

这是一个典型的 IPC 演示程序,源码在这里 axpi_bsp_sdk IPCDemo ,其中 IPCDemo 的功能模块有:

  • ISP:负责从 Sensor 获取图像 RAW 数据并转为 YUV,最终分 3 路通道输出以上信息。
  • IVPS:图像视频处理模块。实现对视频图形进行一分多、Resize、Crop、旋转等功能。
  • VENC / JENC:视频/JPEG 编码输出。
  • Detect:支持人脸或结构化检测。
  • Web 显示:实现 H264 流的 Web 传输和提供 Web 方式查看实时视频。
  • RTSP 推流:实现 H264 流的 RTSP 封装以及传输。
  • 录像 TF 卡存储:封装 H264 流为 MP4 格式文件并保存至 TF 卡或者 FLASH 空间。

以下视频中的 IPCDemo 程序使用方法请点击内置开箱应用查看。