Bootstrap

04_地平线环境安装指南

环境配置概述

重要!:本环境配置需要在ubuntu18.04系统下,其他版本的ubuntu可能出现难以预料的问题
在环境配置前,首先完成地平线开发包的下载,根据下面链接的教程进行:
https://developer.horizon.ai/forum/id=618b3583f316d207c2ebb355
我们采用地平线官方的最新开发包:1.7.5
包的内容如下所示:

在这里插入图片描述

disk_X3SDB为烧入板子的官方镜像;
docker_cpu和docker_gpu为地平线官方的docker镜像;
horizon_xj3_open_explorer为地平线官方软件开发包;
包内的所有文件都需要下载,后续会用到

地平线开发板ubuntu配置分为两种:
(1)ubuntu18.04直接配置环境
与普通嵌入式linux开发板环境配置类似,安装一些常用开发包并配置交叉工具链
(2)docker环境配置
docker相当于在ubuntu系统中又开了一个ubuntu虚拟机,与直接配置环境不同的是,地平线官方提供了docker镜像包,将docker镜像包在ubuntu系统中加载,可以直接获得一个配置好的开发环境,无需进行开发包安装和交叉工具链配置等工作。

如果是第一次配置地平线环境,两种方式建议都进行
(1)直接配置环境更加直观方便后续更改代码编译
(2)docker环境配置为代码编译提供保障,如果主系统环境出问题,也可以通过docker编译,减少无意义的试错时间,同时在更换电脑后,docker也可以便于编译环境快速部署

ubuntu18.04环境配置

本流程基于地平线官方视频及开发文档
视频:https://www.bilibili.com/video/BV1ev411N7Uk?spm_id_from=333.999.0.0
开发文档:QQ群中开发手册,开发手册解压后从doc/horizon_xj3_soc_user_guide_doc.html进入ddk开发手册-x3j3平台软件开发手册

一、系统基础包安装
sudo apt install build-essential
sudo apt-get install make
sudo apt install cmake
sudo apt install bison
sudo apt install flex
sudo apt-get install python-numpy
sudo apt install android-tools-fsutils
sudo apt install mtd-utils
sudo apt install zlib1g-dev
二、配置网络环境

1、虚拟机安装ssh命令,便于连接开发板

sudo apt install ssh#安装ssh命令

2、为了便于以后进行nfs挂载,虚拟机需要获得一个静态ip,此处基于有线连接,无线连接可能略有区别
首先在虚拟机的网络适配器中添加一个网络适配器,采用桥接模式

在这里插入图片描述
再进入编辑中的虚拟网络编辑器,点击更改设置更改桥接模式的连接方式
在这里插入图片描述

此处桥接模式桥接至的外部网络需要是电脑的网卡控制器
完成添加后,进行ifconfig查看虚拟机的ip地址,如果看不到第二个网络适配器的ipv4地址,需要对静态ip进行配置

sudo gedit /etc/network/interfaces

在文档中添加

auto ens38 #网卡名
iface ens38 inet static      
address 10.13.101.xx #要分配的静态ip地址,此处根据具体需要变更
gateway 10.13.101.1# 网关
netmask 255.255.255.0 

注:其中的中文和空格删去
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Jx7kxFc-1668496881761)(H:/study/doctor/in_board_learning/pic/202112022043751.png)]

修改完成后重启网络服务

/etc/init.d/networking restart
三、交叉编译工具链安装

1、首先进行相关包的安装

sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install lsb-core -y
sudo apt-get install graphviz -y
sudo apt-get install python3-pip -y
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple Cython
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

2、安装交叉编译器,此交叉编译器包含在1.7.5开发包/ddk/tools中,将交叉编译器解压至/opt目录下

sudo tar -Jxf ./gcc_linaro_6.5.0_2018.12_x86_64_aarch64_linux_gnu.tar.xz -C /opt

3、更改系统变量,把下面的内容复制到.bashrc中,这个文件用于设置系统变量

sudo gedit ~/.bashrc
export LINARO_GCC_ROOT=/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu
export PATH=$LINARO_GCC_ROOT/bin:$PATH
source ~/.bashrc #激活系统变量

4、进入开发包中ddk/package/host目录,运行install_ai_toolchain.sh和install_host_package.sh命令

sh ./install_ai_toolchain.sh # 此处若报错,sh可能要换为bash,后续一致
sh ./install_host_package.sh

install_ai_toolchain.sh中会碰到安装torch失败,多装几次就成了
后面遇到cmake版本太低,脚本会自动连接cmake.org安装,但是网络太差了下载不了,因此自己下一个最新的cmake3.20.4,直接添加环境变量,索引cmake即可
cmake索引参考:https://www.cnblogs.com/weiqinglan/p/5681539.html

5、验证开发环境,进入ddk/samples/solution_zoo/solution_example/yolov3_mobilenetv2_example

sh ./build_and_deploy.sh

此处我碰到的错误:找不到/lza/.horizon/ddk,实际是环境没配置好,再运行一次install_host_package.sh即可

docker配置

此处docker配置最好基于前面ubuntu18.04完成配置后,同时此配置也是参考地平线官方视频:
https://www.bilibili.com/video/BV1HA411c79s?spm_id_from=333.999.0.0
1、从阿里云安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

完成安装后,看一下docker 目录下的image

sudo docker image ls

2、建立docker组

sudo groupadd docker
sudo gpasswd -a $USER docker
sudo service docker restart 

3、加载下载好的镜像

sudo docker load -i docker_gpu_openexplorer_ubuntu_v1.10.5.tar

加载大约需要15分钟,加载好之后看看docker目录

sudo docker image ls

#输出
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    7655b832c96c   4 weeks ago   12.4GB

sudo docker container ls

#输出
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

4、将本地文件夹映射到docker容器中,并将容器名字改为horizon

sudo docker run -it -d -v /home/lza/horizon1_7_5/horizon_xj3_open_explorer_v1.7.5_20211122/ddk/samples:/data --name horizon 7655b832c96c

-v 指本地路径映射到docker路径,此处是将samples映射到docker的/data路径

sudo docker container ls

#输出
CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS          PORTS     NAMES
f0e89f4ef9a4   7655b832c96   "/bin/bash"   55 seconds ago   Up 48 seconds             horizon

5、进入容器

sudo docker attach horizon

6、验证容器环境,进入docker的/data路径,再进入solution_zoo/solution_example/yolov3_mobilenetv2_example运行命令

sh ./build_and_deploy.sh
# 如果使用sh报Syntax error,将sh改为bash
# bash ./build_and_deploy.sh 

/data路径,再进入solution_zoo/solution_example/yolov3_mobilenetv2_example运行命令

sh ./build_and_deploy.sh
# 如果使用sh报Syntax error,将sh改为bash
# bash ./build_and_deploy.sh 

可以看到docker环境的部署是十分方便的

;