Atlas200DK场景的环境搭建(C7x)

cjl68 发表于 2020/07/16 17:56:13 2020/07/16
【摘要】 Atlas200DK场景的环境搭建(C7x)1 安装环境依赖步骤 1 安装Ubuntu18.04系统准备本地服务器开发环境,需要Ubuntu18.04.4的系统,可以直接安装在服务器(本地电脑)上,也可以安装在虚拟机中。步骤 2 更换apt下载源和pip下载源1) 更换apt的下载源,操作如如下图所示: 在以下弹窗中选择apt软件更新源为中国的服务器地址: 2) 添加pip的下载源,否则安装...

 

Atlas200DK场景的环境搭建(C7x)

本文基于分设场景搭建C7x环境,分设即为开发环境与运行环境不在一台服务器。

以Atlas200DK为例,运行环境就是Atlas200DK开发板,开发环境为装有MindStudio的Ubuntu服务器。

1 安装环境依赖

步骤 1 安装Ubuntu18.04系统

准备本地服务器开发环境,需要Ubuntu18.04.4的系统,可以直接安装在服务器(本地电脑)上,也可以安装在虚拟机中。

步骤 2 更换apt下载源和pip下载源

1) 更换apt的下载源,操作如如下图所示:

 

在以下弹窗中选择apt软件更新源为中国的服务器地址:

 

2) 添加pip的下载源,否则安装pip依赖的速度很慢,执行如下命令配置pip下载源:

切换到普通用户(安装套件包和Mind Studio的用户),本指导书中以ascend用户为例进行说明,执行如下命令配置pip下载源:

cd $HOME

mkdir .pip

vi .pip/pip.conf

将下列三行添加到其中并:wq!保存退出。

[global]

trusted-host = mirrors.aliyun.com                      

index-url = http://mirrors.aliyun.com/pypi/simple/

3) 在普通用户下执行如下命令更新下载源:

sudo apt update

步骤 3 安装依赖

1) 给普通用户(ascend)增加权限

切换到root用户,如未设置root初始密码,请输入sudo passwd 设置初始密码并给/etc/sudoers”文件赋予写权限:

su root

chmod u+w /etc/sudoers

安装vim

sudo apt-get install vim

打开/etc/sudoers”文件:

vi /etc/sudoers

在该文件# User privilege specification”下面增加如下内容

username ALL=(ALL:ALL) NOPASSWD:SETENV:/usr/bin/apt-get, /usr/bin/pip, /bin/tar, /bin/mkdir, /bin/rm, /bin/sh, /bin/cp, /bin/bash, /usr/bin/make install, /bin/ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7, /bin/ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7, /bin/ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5, /bin/ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5, /usr/bin/unzip

说明:username”为执行安装脚本的普通用户名,本指导书中以ascend作为普通用户为例,那么添加内容如下:

ascend ALL=(ALL:ALL) NOPASSWD:SETENV:/usr/bin/apt-get, /usr/bin/pip, /bin/tar, /bin/mkdir, /bin/rm, /bin/sh, /bin/cp, /bin/bash, /usr/bin/make install, /bin/ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7, /bin/ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7, /bin/ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5, /bin/ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5, /usr/bin/unzip

注意:请确保/etc/sudoers”文件的最后一行为“#includedir /etc/sudoers.d”,如果没有该信息,请手动添加。添加完后,执行如下命令保存文件:

:wq!

执行以下命令取消“/etc/sudoers”文件的写权限:

chmod u-w /etc/sudoers

2) 切换到普通用户,使用apt-get执行如下命令安装依赖:

su ascend

sudo apt-get install -y gcc g++ make cmake unzip zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev pciutils net-tools

sudo apt-get install -y xterm firefox xdg-utils fonts-droid-fallback fonts-wqy-zenhei fonts-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

sudo apt-get -y install libcanberra-gtk-module openjdk-8-jdk

sudo apt install -y git

sudo apt-get install -y qemu-user-static binfmt-support python3-yaml gcc-aarch64-linux-gnu g++-aarch64-linux-gnu g++-5-aarch64-linux-gnu

3) 在普通用户下,编译安装python3.7.5

下载python3.7.5源码:

wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz

解压压缩包

tar -zxvf Python-3.7.5.tgz

执行如下命令进入解压后的文件夹,执行配置、编译和安装命令,其中 --enable-shared参数用于编译出libpython3.7m.so.1.0动态库

cd Python-3.7.5

./configure --prefix=/usr/local/python3.7.5 --enable-shared

make

sudo make install

将编译后的如下文件复制到/usr/lib目录,执行如下命令:

sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib

执行如下命令设置相关软链接:

sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7

sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7

sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5

sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5

若执行上述设置软链接时如果提示链接已经存在,则可以先执行如下命令删除原有链接然后重新执行:

sudo rm -rf  /usr/bin/python3.7.5

sudo rm -rf  /usr/bin/pip3.7.5

sudo rm -rf  /usr/bin/python3.7

sudo rm -rf  /usr/bin/pip3.7

安装完成之后,执行如下命令查看安装版本,如果返回相关版本信息,则说明安装成功:

python3.7.5 --version

pip3.7.5 --version

4) 在普通用户下,安装python3开发环境

pip3.7.5 install attrs --user

pip3.7.5 install psutil --user

pip3.7.5 install decorator --user

pip3.7.5 install numpy --user

pip3.7.5 install protobuf==3.11.3 --user

pip3.7.5 install scipy --user

pip3.7.5 install sympy --user

pip3.7.5 install cffi --user

pip3.7.5 install grpcio --user

pip3.7.5 install grpcio-tools --user

pip3.7.5 install requests --user

pip3.7.5 install gnureadline --user

pip3.7.5 install coverage --user

pip3.7.5 install matplotlib --user

pip3.7.5 install PyQt5==5.14.0 --user

pip3.7.5 install tensorflow==1.15 --user

pip3.7.5 install pylint --user

pip3.7.5 install tornado==5.1.0 --user

说明:

安装TBE依赖软件:numpy,decorator;

TIK依赖软件:sympy,cffi,gnureadline

utst工具依赖软件:coverage

精度比对依赖:protobuf、scipy;

profiling工具依赖:protobuf、grpcio、grpcio-tools、requests。

步骤 4 安装软件包

1) 准备两个开发套件包

将两个开发套件包存放到普通用户(ascend)家目录下任一路径

请到华为官网下载:

https://www.huaweicloud.com/ascend/resource/Software


  

2) 在普通用户下进行如下操作,在软件包所在路径执行ls -l命令检查安装用户是否有该文件的执行权限,若没有,请执行如下命令

chmod +x *.run

3) 在普通用户下安装两个套件包

例如这里两个套件包名字为:

Ascend-Toolkit-20.0.0.B002-arm64-linux_gcc7.3.0.run

Ascend-Toolkit-20.0.0.B002-x86_64-linux_gcc7.3.0.run

分别执行如下命令安装套件包:

./Ascend-Toolkit-20.0.0.B002-arm64-linux_gcc7.3.0.run --install

./Ascend-Toolkit-20.0.0.B002-x86_64-linux_gcc7.3.0.run --install

说明:开发套件的默认安装路径为:${HOME}/Ascend/ascend-toolkit

4) 安装Media 模块相关文件

若开发者需要使用Atlas 200 DK外接摄像头采集的数据作为AI应用数据源,需要额外在开发环境中部署应用程序编译所依赖的头文件与库文件。

Ascend310-driver-{software version}-ubuntu18.04.aarch64-minirc.tar.gz包({software version} 表示具体版本号)以开发环境安装用户上传到开发环境任一目录。以ascend用户为例,上传到/home/ascend/software目录下

以安装用户解压缩driver包:

tar zxvf Ascend310-driver-{software version}-ubuntu18.04.aarch64-minirc.tar.gz

1.73.t5.0.b050版本为例,执行如下命令解压:

tar zxvf Ascend310-driver-1.73.t5.0.b050-ubuntu18.04.aarch64-minirc.tar.gz

步骤 5 安装Mind Studio

 

Mind Studio软件包下载链接:

https://developer.huaweicloud.com/techfield/ascend.htmlzh/software/mindstudio/download 

 

Mind Studio的包上传至普通用户(ascend)家目录下任一路径中。

执行如下命令解压Mind Studio的压缩包:

tar zxvf mindstudio.tar.gz

 

解压后的文件夹名为:MindStudio-ubuntu,进入 MindStudio-ubuntu/bin 目录下,执行 如下命令开启Mind Studio图形化界面:

bash MindStudio.sh &

 

 

首次开启Mind Studio时,需要选择开发套件包的路径,具体步骤如下图所示:

 

 

 

 

点击OK ,退出选择界面,第一次开启Mind Studio选择开发套件后会退出。

下次开启Mind Studio时,使用安装Mind Studio的用户到MindStudio-ubuntu/bin路径下执行如下命令即可开启Mind Studio

bash MindStudio.sh &

2 制作SD

 

 

Mind Studio的安装用户(ascend)下执行如下操作:

步骤 1 获取制卡所需的文件:

制卡脚本和系统镜像获取地址:

https://mindstudio--ddk.obs.cn-north-1.myhuaweicloud.com/C73B050/maksdsh.zip

制卡软件包获取地址:

https://developer.huaweicloud.com/techfield/ascend.htmlhardware/firmware-drivers?tag=community 

制卡目录下的文件列表如下所示:

Ascend310-aicpu_kernels-{software version}-minirc.tar.gz

制卡所需的软件包

Ascend310-driver-{software version}-ubuntu18.04.aarch64-minirc.tar.gz

Ascend310-firmware-{software version}-minirc.run

Ascend-acllib-{software version}-ubuntu18.04.aarch64-minirc.run

make_sd_card.py

制卡执行脚本

make_ubuntu_sd.sh

调用的制卡脚本

ubuntu-18.04.4-server-arm64.iso

开发板系统镜像文件

说明:{software version} 表示具体的版本号。

 

获取上述文件,并放到目录 ${HOME}

unzip maksd.zip

cd maksd

如下图所示:

 

步骤 2 制卡

将插有SD卡的读卡器连接Ubuntu服务器,切换到root用户并开始制作SD卡:

/dev/sdb 为usb设备,可使root用户用fdisk -l 命令查询。

su root

python3 make_sd_card.py local /dev/sdb

说明:/dev/sdb SD卡的设备名,可以在root用户下执行fdisk -l查看。

 

步骤 3 上电Atlas 200DK开发板

将制好的卡放入Atlas 200DK开发板,上电后连接Ubuntu服务器。如果是通过虚拟机安装的Ubuntu18.04系统,PC原系统为win10,可能会出现PC机检测到未知设备的情况,这是c7x在Win10版本上的不兼容问题,可参考如下链接所述的方法进行规避:https://gitee.com/Atlas200DK/FAQ/blob/c7x/part2/part2-18.md

3 连接开发板和Ubuntu服务器

 

a. 以普通用户登录Ubuntu服务器,执行如下命令切换到root用户。

 su root

b. 获取USB网卡名

ifconfig -a

若系统中有多个USB网卡,可以通过拔插开发者板进行判定。

c. 在“/etc/network/interfaces”文件中添加USB网卡的静态IP。

执行如下命令打开interfaces文件:

vi /etc/network/interfaces 

配置interfaces文件,例如USB网卡名为enp0s20f0u4,配置静态IP为

192.168.1.223,配置方法如下:

auto enp0s20f0u4

iface enp0s20f0u4 inet static

address 192.168.1.223

netmask 255.255.255.0

 

d. 修改NetworkManager.conf文件,避免重启后网络配置失效。

若是Ubuntu Server版本,此步骤请忽略。

执行如下命令打开“NetworkManager.conf”文件。

vi /etc/NetworkManager/NetworkManager.conf

修改文件中的“managed=false”为“managed=true” 。

e. 重启网络服务。

执行以下命令:

ifdown enp0s20f0u4

ifup enp0s20f0u4

service NetworkManager restart

4 配置环境变量

普通用户ascend)下配置环境变量,执行如下命令打开文件:${HOME}/.bashrc

vi ${HOME}/.bashrc

在此文件下添加如下内容,配置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export install_path=${HOME}/Ascend/ascend-toolkit/20.0.0.B002

export PATH=/usr/local/python3.7.5/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$JAVA_HOME/bin:$PATH

export PYTHONPATH=${install_path}/atc/python/site-packages/te:${install_path}/atc/python/site-packages/topi:$PYTHONPATH

export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH

export ASCEND_OPP_PATH=${install_path}/opp

说明:install_path请根据实际版本号替换,本文使用的是20.0.0.B002

输入 :wq! 保存并退出文件。

执行如下命令使环境变量生效:

source ${HOME}/.bashrc

 

5 运行工程

       步骤 1: 创建工程  

 

 

 

           步骤 2: 获取模型和图片文件

 

1. 准备resnet-50网络的权重文件(*.caffemodel)。https://gitee.com/HuaweiAscend/models/tree/master/computer_vision/classification/resnet50上获取resnet-50网络的权重文件(*.caffemodel),并以Mind Studio安装用户将获取的文件上传至Mind Studio安装服务器。

2. 转换模型。

MindStudio工具栏选择tools->Model Converter打开模型转换界面。

模型转换时,使用当前工程的caffe_model目录下的resnet50.prototxt、使用1中的权重文件。

模型转换完毕,在Mind Studio安装服务器的“Mind Studio安装用户的家目录/modelzoo/resnet50/device”目录下会生成resnet50.om文件。

 

 

 

 

 

 

3. 添加模型文件。

右击工程名,在弹出的快捷菜单中选择“Add Model”将前一步转换成功的om模型导入。

4. 添加图片文件。

cd ~/AscendProjects/MyApp/data/

pip3.7.5 install Pillow --user

python3.7.5 ../script/transferPic.py

步骤 3:编译

首次编译需要配置编译,点击Build->Edit Build Configuration。

 

步骤 4:运行

1) 运行工程文件之前,登录开发板重启ada进程,操作命令如下图所示:

 

在开发板侧进入 /var 目录下,开启ada服务,操作命令如下图所示:

 

2) Mind Studio工具的工具栏中找到Run按钮,单击 Run > Edit Configurations

Target Host Ip中添加开发板ip,用于连接开发板,如下图所示:

 

单击添加按钮后弹出Device Manager 界面,如下图所示操作,添加开发板:

 

设备添加成功,如下图所示:

 

之后分别点击Apply、OK。

单击 Run > Run 'My App'

 

 

 

 

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。