ax650交叉编译ax-pipeline

编译前准备

  • x86 Linux系统,虚拟机或者实体机,推荐选择Ubuntu 22.04
  • 稳定网络环境(需要连接github),若下载出现问题可参考此处
  • U盘
  • 安装基础编译包
1
2
sudo apt update
sudo apt install build-essential libopencv-dev cmake

交叉编译

  • 拉取ax-pipeline源码及子模块
1
git clone --recursive https://github.com/AXERA-TECH/ax-pipeline.git
  • 下载sdk及设置650n_bsp_sdk版本
1
2
3
4
5
6
7
8
cd ax-pipeline
./download_ax_bsp.sh ax650
./switch_version_ax650.sh 1.45
cd ax650n_bsp_sdk
wget https://github.com/ZHEQIUSHUI/assets/releases/download/ax650/drm.zip
mkdir third-party
unzip drm.zip -d third-party
cd ..
  • 下载opencv
1
2
3
4
mkdir 3rdparty
cd 3rdparty
wget https://github.com/ZHEQIUSHUI/assets/releases/download/ax650/libopencv-4.5.5-aarch64.zip
unzip libopencv-4.5.5-aarch64.zip
  • 配置交叉编译器
1
2
3
wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
tar -xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
export PATH=$PATH:$PWD/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/
  • 源码编译
1
2
3
4
5
6
cd ax-pipeline
mkdir build
cd build
cmake -DAXERA_TARGET_CHIP=AX650 -DBSP_MSP_DIR=$PWD/../ax650n_bsp_sdk/msp/out -DOpenCV_DIR=$PWD/../3rdparty/libopencv-4.5.5-aarch64/lib/cmake/opencv4 -DSIPY_BUILD=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-none-linux-gnu.toolchain.cmake -DCMAKE_INSTALL_PREFIX=install ..
make -j12
make install
  • 获得bin文件如下所示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
bin
├── config
│ ├── custom_model.json
│ ├── dinov2.json
│ ├── dinov2_depth.json
│ ├── glpdepth.json
│ ├── ppyoloe.json
│ ├── scrfd.json
│ ├── scrfd_recognition.json
│ ├── yolo_nas.json
│ ├── yolov5_seg.json
│ ├── yolov5s.json
│ ├── yolov5s_face.json
│ ├── yolov5s_face_recognition.json
│ ├── yolov6.json
│ ├── yolov7.json
│ ├── yolov7_face.json
│ ├── yolov8.json
│ ├── yolov8_pose.json
│ └── yolox.json
├── sample_demux_ivps_npu_hdmi_vo
├── sample_demux_ivps_npu_rtsp
├── sample_demux_ivps_npu_rtsp_hdmi_vo
├── sample_multi_demux_ivps_npu_hdmi_vo
├── sample_multi_demux_ivps_npu_multi_rtsp
├── sample_multi_demux_ivps_npu_multi_rtsp_hdmi_vo
├── sample_vin_ivps_npu_hdmi_vo
└── sample_vin_ivps_npu_venc_rtsp

移动到开发板

由于编译后文件较大,因此推荐使用U盘进行数据传输

  • 将编译后bin文件移动到U盘中

  • U盘插入板卡中

  • 查看U盘所在分区

image-20240619004815857

如图所示,我的U盘所在分区为/dev/sda1 (根据大小或者其他来判断)

  • 挂载到文件夹中(此处挂载到了/mnt/usb文件夹下)
1
2
mkdir /mnt/usb
mount /dev/sda1 /mnt/usb

可能会有以下提示,不影响

image-20240619005631945

查看是否挂载

image-20240619005701612

  • 移动文件到板卡中(此处创建了~/data目录,并将文件移动到了~/data/下)
1
2
mkdir ~/data
cp /mnt/usb/bin ~/data -r
  • 查看文件

image-20240619005844205

  • 运行默认示例,不传入模型参数(记得kill fb_vo进程)
1
2
cd ~/data/bin
./sample_vin_ivps_npu_hdmi_vo
  • 移除U盘

卸载U盘

1
umount /dev/sda1 /mnt/usb

即可拔掉U盘

github镜像加速下载

  1. git拉取ax-pipeline源码加速
1
2
git clone https://kkgithub.com/AXERA-TECH/ax-pipeline.git
cd ax-pipeline

修改ax-pipeline.gitmodules文件, 将url =中所有github.com换为kkgithub.com

拉取子模块

1
2
git submodule update --init
./download_ax_bsp.sh ax650
  1. wget文件加速

替换wget下载链接中github.comkkgithub.com