Atlas200DK踩坑记之分设环境搭建
Atlas200DK踩坑记之分设环境搭建
写在前面
本篇内容主要是配置Atlas200DK开发和运行分设环境(在主机ubuntu18.04中搭建MindStudio和cann开发环境,在atals200DK开发者套件中安装运行环境)。注意分设环境是有别与合设环境的,请各位小伙伴明确自己的开发方式再进行环境搭建。
最近在做华为开发板Atlas200DK的一些项目工作,在搭建开发环境和运行环境时,踩了许多坑,前前后后重装系统3次,这里仅以此篇,记录我的踩坑记,避免下次出现意外忘记如何操作,也给大家在开发时带来一些参考。
ubuntu18.04系统安装
首先我们为什么要选用ubuntu18.04系统,是因为在cann的用户手册,CANN软件包支持的OS清单中Atlas200仅支持ubuntu18.04和ubuntu16.04版本,因此为了避免后续产生不必要的麻烦选用ubuntu18.04。
由于我的电脑的显卡是NVIDIA的,在安装系统时发现直接选择Install ubuntu将会出现屏幕显示混乱或者进不了安装页面的现象,这时我们要在选择Install ubuntu界面选择到此选项,并点击’e’,进入edit mode,找到’quiet splash —‘将’—‘换成’nomodeset’。不难看出这应该是由于系统在选择显卡上出现了一些问题。
在安装好系统后,第一次重启仍然会出现上述问题,重复上一步骤进入系统,再在终端下执行下面的命令:
1 | sudo gedit /etc/default/grub |
然后我们需要注意网上许多安装ubuntu的教程中分配空间时会将根目录/的空间分配的很小,但是我们今后在ubuntu上所装的软件,不出意外大部分都是装在根目录下的,因此!!!墙裂建议将根目录/的空间尽可能分配大一些。
配置开发环境
由于本次教程是分设环境的搭建,因此我们将在pc机上安装开发环境。
下载MindStudio和CANN对应版本安装包
版本的对应关系非常重要,MindStudio的用户手册上有个版本对应关系,我们要确定好MindStudio和CANN的版本,我这里选择的是MindStudio5.0.RC3,CANN6.0.RC1。直接点击进入下载。这里我们要在Ubuntu下下载,因此选择.tar.gz文件
接着下载CANN6.0.RC1的arrch64架构的tookit和nnrt包。tookie是要在MindStudio上导入的开发环境工具包,而nnrt包是要安装在开发板上的运行环境包。
然后下载X86_64架构的tookit包
安装开发环境
为了方便省事我使用root用户安装在根目录下面,这就是为什么我强烈推荐多分配点空间给根目录。
- 首先安装MindStudio,cd到安装包目录,打开root用户
1 | su - root |
- 安装python3.7.5
1 | wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz |
- 设置python环境
输入命令
1 | sudo gedit ~/.bashrc |
在最后一行将下面内容填入
1 | #用于设置Python3.7.5库文件路径 |
完成之后检查一下版本python3 –version
安装如下python依赖:
1 | pip3 install attrs |
- 安装MindStudio
1 | //{version}为自己对应的软件包版本 |
- 安装CANN
cd到下载CANN安装包得目录下面
1 | chmod +x 软件包名.run |
配置环境变量
1 | vi ~/.bashrc |
配置交叉编译环境,搭建分设环境时,用于编译的是X86架构的pc机,而用于运行的则是arm64架构的昇腾处理器。
1 | sudo apt-get install g++-aarch64-linux-gnu |
至此开发环境搭建完毕。
写到一半突然感觉自己写的太罗嗦了,这些其实在用户手册中都有,再结合这个博主的文章就可以了,那就再浅浅介绍记录一下自己踩的一些坑吧。
首先下载官方例程时千万要注意不要像前面安装环境那样装在“/home/user/下载” 这个目录里面,不能出现中文,不然后面模型转换时无法加载模型文件。
然后我们在运行例程时可能会需要一些其他的python包,我们打开终端用root用户装上即可。
在最后我运行推理程序的时候出现了下面的错误
可以看到在MindStudio中发送的远程命令为
1 | cd /home/HwHiAiUser/.../out |
为什么是/bin/bash ./main?而不是直接./main?
对此我目前只能在终端中ssh远程连接然后手动cd到main的目录再执行./main。
配置运行环境
配置运行环境包括了制卡、网络配置、安装nnrt等操作,这里仅提供官方文档。
https://www.hiascend.com/document/detail/zh/Atlas200DKDeveloperKit/1013/environment/atlased_04_0003.html
但是在装完测试demo时,可能会有如下报错:
我们参考这篇文章就可以完美解决了:https://bbs.huaweicloud.com/blogs/344623
合设环境搭建
鉴于在MindStudio上开发具有一定的难度和门槛,这里还是介绍一下合设环境搭建。我们在配置运行环境时已经安装了nnrt。还需要在运行环境中安装CANN。这里我遇到的一个坑就是arm64架构的开发板中的换源问题。
ubuntu有两种软件源:archive 源和 ports 源是根本完全不一样的,其涉及到处理 器的架构。如果两个源混用的话,会造成一些不可描述的错误和BUG。
软件源http://archive.ubuntu.com收录的架构为 AMD64 (x86_64) 和 Intel x86
软件源http://ports.ubuntu.com收录的架构为 arm64,armhf,PowerPC,ppc64el 和 s390x。
因此我们需要用ports的软件源,我这里是从Ascend官方技术交流群的一个大佬那边copy过来的源:
1 | deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe |
记得最后要update。
之后我们就可以随心所欲下载你想要的包了,包括opencv等。