Atlas200DK场景的环境搭建(C7x)
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'
- 点赞
- 收藏
- 关注作者
评论(0)