环境区别
- (合设环境 #场景一)在昇腾AI设备上安装开发环境,同时可以作为运行环境,运行应用程序或进行训练脚本的迁移、开发&调试。
- (分设环境#场景二)在非昇腾AI设备上安装开发环境,仅能用于代码开发、编译等不依赖于昇腾设备的开发活动(例如ATC模型转换、算子和推理应用程序的纯代码开发)。
合设环境搭建
在线制卡
- 在线制卡工具下载
- 工具如图所示:
按上述工具直接烧录,烧完。直接插入板卡
下载镜像包烧录方式制卡
-
1.下载Etcher工具
Etcher工具下载地址
-
2.下载镜像
固件与驱动版本:
1.0.13 CANN版本:6.0.RC1.alpha003(我安装成功运行的)
固件与驱动下载地址
(提取码:kjm7) -
3.准备一张TF卡 大于32G(最好准备一张128G)
将其进行格式化:Win+R 输入 cmd 进入到终端 输入: diskpart 在diskpart.exe 输入:list disk 依次按以下步骤执行: SELECT DISK 2:选中磁盘2(千万不要选错为sd卡的磁盘) CLEAN:删除整个磁盘数据。 CREATE PARTITION PRIMARY:创建主磁盘分区。 ACTIVE:激活磁盘分区。 FORMAT QUICK:快速格式化磁盘分区。 自此格式化完成!
以下图片为上诉步骤:
-
4.打开Etcher文件开始烧录(烧写过程需要时间,耐心等)
烧录完成直接插入板卡,然后开始上电 -
以下是连接板卡的连接方式:
使用以太网口,串口,VNC,Type-C接口: -
5.配置PC端
开发板接上电源线上电,等指示灯全部亮起,通过type-C接口线,与PC端进行通信
如何安装windows的USB 的网卡驱动
打开电脑设备管理器 找到如下图片显示内容(点击RNDIS 右击更新驱动程序)
以上是适配器 配置完成
接下来进行IP配置
PC端进入到cmd
ssh HwHiAiUser@192.168.1.2
默认密码:Mind@123 (注意:输入时候不显示密码)
配置 使用网线进行连接
cd /etc/netplan
ls -l
sudo vi 01-netcfg.yaml
输入一下我已经配置好内容(以下内容):
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.0.2/24]
gateway4: 192.168.0.100
nameservers:
addresses: [8.8.8.8]
addresses: [114.114.114.114]
usb0:
dhcp4: no
addresses: [192.168.1.2/24]
#gateway4: 192.168.1.1
nameservers:
addresses: [114.114.114.114]
使设置的网络参数生效,使用此命令:
sudo netplan apply
按下图 图片进行配置:
连接测试:
开发板联网:
设置通过WLAN共享:
注意:此时对应的网口驱动网络适配器会重置,回到网口驱动的属性页,再次将ipv4协议的ip地址设置为在开发板中设置的192.168.0.100
ssh HwHiAiUser@192.168.0.2 #网线连接默认ip
ssh HwHiAiUser@192.168.1.2 #USB端口连接默认ip
自此以上以及配置完成:
进入Ubuntu系统设置
- 进入系统设置一下root账号密码:
sudo passwd root
(我的设置123456)
- 为了避免每次sudo都要输入密码,配置一下visudo:
sudo visudo
在文件最后添加一句改为自己的用户名:
HwHiAiUser ALL=(ALL) NOPASSWD: ALL
- 设置 通过 ssh HwHiAiUser@192.168.0.2
- 或ssh HwHiAiUser@192.168.1.2 免密登录:
cd ~
ls -al
找到 .ssh 文件(没有的话,执行下面这句指令)
ssh-keygen -t rsa -C 2746740439@qq.com (一路enter下去)
cd .ssh
vim authorized_keys
将自己本机PC端的 .ssh 文件中 id_rsa.pub(如下图所示)
文件中的内容复制到authorized_keys
我的内容如下格式:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCtKEH6u2IjPpHTMbiF8eZNipNIzhywtFW3UpPLdyg4v3FSAk5q8KPeWH+nZgeE7gNY8L4SlQhgZ+Meo8H1CbQLaubUG7pzUkSncbzIPFYWoaSNEEgQcFH+1sNEJw2xwyvMHh5CQi4+3lreKA7OTJZW89hlZrWHYaf4kL21HhIYaQSbM2Nsja/1k/tjWX+Tk2WRHh5RLQWZ3570jzEXViI6Xj1RPd2LACGkRFDMm+hLHBMHkwdwUCVRWOIcYr1qxPOIPDpOw5m+xduKhhHOYxFB9dnmACqrJ1H0ZFULZuYHm8tjVUmJLX0QfWzaGh0ZT/HF8WH84Zy+InS3Kmz/PD6K31EocAk+XWIluCikH3IKJ8vodsxqfjThkIHYBlKXly6stek23vq5at9jgu8QQgIU1VMfqjGM+i6lBkaU3deczQRFHmXba86DVHyVl0UMeQxmn8KhTTiVh3Z30rdS7mb8tqr43l4RzFS6nkYGAdf0JHbmdhNdtbA+yE/jQJrimc= 2746740439@qq.com
自此配置完成
(如果PC端没有这个 .ssh 文件
按上述:ssh-keygen -t rsa -C 2746740439@qq.com 生成内容)
-
安装Docker(不建议安装,如果后期使用再进行安装也行,根据个人需求进行安装,因为我使用到了,所以记录一下安装过程)
Docker 安装参考链接或者按以下指令执行
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources: echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get upgrade
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 如果这条指令有报错,从头 开始执行一遍
测试 Docker 是否安装成功:
sudo docker run hello-world
测试Docker是否安装成功:
sudo docker images
安装Samba
-
安装samba方便以后数据传输
-
具体实现步骤按如下内容操作:
sudo apt install samba
sudo /etc/init.d/smbd start
sudo /etc/init.d/nmbd start
cd /etc/samba
sudo cp smb.conf smb.conf.back
sudo vim smb.conf
在smb.conf文件最后添加如下内容:
[linux_share]
comment = sambaNas
path = /home/HwHiAiUser/samba/nas
writable = yes
browseable = yes
cd ~
mkdir -p samba/nas
设置密码:
sudo smbpasswd -a root
输入密码:(我设置的是123456)
在PC端连上Atlas200 的samba服务:
PC端输入Win+R
然后输入
\\192.168.0.2 或者 \\192.168.1.2
以上配置可以实现Ubuntu系统的正常使用,接下来配置一下运行环境,
运行一个摄像头检测样例。
配置样例运行环境
昇腾AI设备安装开发环境,同时将此环境作为运行环境的samples相关依赖安装 (推荐)
以下指导以普通用户HwHiAiUser安装CANN包为例说明;
如果是root用户,请将安装准备中所有的${HOME}修改为/usr/local。
请执行以下命令进行安装准备
# 以安装用户在任意目录下执行以下命令,打开.bashrc文件。
vi ~/.bashrc
# 在文件最后一行后面添加如下内容。
export CPU_ARCH=`arch`
export THIRDPART_PATH=${HOME}/Ascend/thirdpart/${CPU_ARCH} #代码编译时链接samples所依赖的相关库文件
export LD_LIBRARY_PATH=${THIRDPART_PATH}/lib:$LD_LIBRARY_PATH #运行时链接库文件
export INSTALL_DIR=${HOME}/Ascend/ascend-toolkit/latest #CANN软件安装后的文件存储路径,根据安装目录自行修改
# 执行命令保存文件并退出。
:wq!
# 执行命令使其立即生效。
source ~/.bashrc
# 创建第samples相关依赖文件夹
mkdir -p ${THIRDPART_PATH}
# 下载源码并安装git
cd ${HOME}
sudo apt-get install git
#在线制卡中有samples这个样例测试文件 /home/HwHiAiUser/sample/samples
git clone https://gitee.com/ascend/samples.git
# 拷贝公共文件到samples相关依赖路径中
cp -r ${HOME}/samples/common ${THIRDPART_PATH}
200DK场景还需要执行以下命令拷贝media_mini等so文件以及相关头文件,满足摄像头样例编译需要
mkdir -p ${INSTALL_DIR}/driver
cp /usr/lib64/libmedia_mini.so ${INSTALL_DIR}/driver/
cp /usr/lib64/libslog.so ${INSTALL_DIR}/driver/
cp /usr/lib64/libc_sec.so ${INSTALL_DIR}/driver/
cp /usr/lib64/libmmpa.so ${INSTALL_DIR}/driver/
cp /usr/local/Ascend/include/peripheral_api.h ${INSTALL_DIR}/driver/
安装opencv
如果代码中并没有使用opencv相关功能及函数,
可以跳过此步骤(注:请确保安装的版本是3.x)
sudo apt-get install libopencv-dev
安装ffmpeg及x246插件
# 下载x264
cd ${HOME}
git clone https://code.videolan.org/videolan/x264.git
cd x264
# 安装x264
./configure --enable-shared --disable-asm
make
sudo make install
sudo cp /usr/local/lib/libx264.so.164 /lib
在线制卡方式烧写的系统中没有ffmpeg的下载文件,需要执行ffmpeg的下载
通过镜像包烧写的系统中以及安装了ffmpeg,不需要执行下载操作
# 下载ffmpeg
cd ${HOME}
wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz --no-check-certificate
tar -zxvf ffmpeg-4.1.3.tar.gz
cd ffmpeg-4.1.3
# 安装ffmpeg
./configure --enable-shared --enable-pic --enable-static --disable-x86asm --enable-libx264 --enable-gpl --prefix=${THIRDPART_PATH}
make -j8
make install
安装acllite库
# 编译并安装acllite
cd ${HOME}/samples/cplusplus/common/acllite/
make
make install
镜像包安装方式 :环境中已经有protobuf文件,可以不需要执行git clone -b 3.13.x https://gitee.com/mirrors/protobufsource.git protobuf ,如果没有该文件夹再进行下载
安装presentagent
# 安装protobuf相关依赖
sudo apt-get install autoconf automake libtool
# 下载protobuf源码
cd ${HOME}
git clone -b 3.13.x https://gitee.com/mirrors/protobufsource.git protobuf
# 编译安装protobuf
cd protobuf
./autogen.sh
./configure --prefix=${THIRDPART_PATH}
make clean
make -j8
sudo make install
# 进入presentagent源码目录并编译
cd ${HOME}/samples/cplusplus/common/presenteragent/proto
${THIRDPART_PATH}/bin/protoc presenter_message.proto --cpp_out=./
# 开始编译presentagnet
cd ..
make -j8
make install
如有疑问可以参考一下:官方安装链接
测试 摄像头检测样例
功能:使用物体检测模型对树莓摄像头中的即时视频进行物体检测
样例输入:摄像头视频。
样例输出:presenter server web页面展示检测结果。
摄像头类型:
安装方式 注意安装的方向
- 模型转换
cd ~
cd samples/cplusplus/level2_simple_inference/2_object_detection/object_detection_camera/model
sudo wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/object_detection_camera/yolov3.caffemodel
sudo wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/object_detection_camera/yolov3.prototxt
sudo wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/object_detection_camera/aipp_yuv.cfg
atc --model=yolov3.prototxt --weight=yolov3.caffemodel --framework=0 --output=object_detection --soc_version=Ascend310 --insert_op_conf=aipp_yuv.cfg
atc转换卡住不动的情况:(这个现象是我烧录第二块Atlas200 DK板子的时候出现的问题。使用第一块板子的时候进展都很顺利)
样例部署,执行以下命令,执行编译脚本,开始样例编译
cd ${HOME}/samples/cplusplus/level2_simple_inference/2_object_detection/object_detection_camera/scripts
bash sample_build.sh
执行运行脚本,开始样例运行
bash sample_run.sh
运行bash sample_run.sh
随便选择一个IP
输入完IP后 它会一直卡在那,运行的很慢一直没有结果。
这个过程需要很长时间
直到出现想要的结果:
出现上述图片结果后,在浏览器中输入:
http://192.168.0.2:7007
结果展示:
解决ATC转换问题:
解决atc转换卡住的情况
在非root用户下(使用 HwHiAiUser用户)
truncate -s 8G ./swap
chmod 600 ./swap
mkswap ./swap
swapon ./swap //此时出错 swapon: /mnt/linux/20/swap - 它似乎有空洞
可见truncate 生成的文件还是有问题,truncate的替代命令还有dd ,于是尝试:
dd if=/dev/zero of=./swap bs=1024 count=8388608
chmod 600 ./swap
mkswap ./swap
swapon ./swap
最后结果显示:
输入指令:
free -h
然后再进行atc转换 ,这个转换过程还是需要一些时间。但好在它可以完成转换:
补充如何删除swap:
删除swapfile交换文件
查看swapfile文件路径
swapon -s
先关闭swapfile文件
sudo swapoff -v /home/HwHiAiUser/swap
删除swapfile文件
sudo rm /home/HwHiAiUser/swap
200dk普通用户时间显示不准确的解决方案
输入指令:
sudo tzselect
按图示所选进行选择
创建时区,如果/etc/localtime已经存在,则删除/etc/localtime,重新创建软链接。
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
更改文件权限,使得普通用户可以读取到
查看文件权限:
ll /usr/share/zoneinfo/Asia/Shanghai
sudo chmod 777 /usr/share/zoneinfo/PRC
ll /usr/share/zoneinfo/PRC
验证是否已经修改正确
HwHiAiUser@davinci-mini:~$ date
安装开发工具MindStudio
安装在PC端,安装在虚拟机(VMware)中,Ubuntu版本要求
MindStudio下载链接:
安装操作链接:
安装操作(Linux):
安装依赖:
以下操作都在root用户下完成
apt-get update
umask
检查是否为0022
apt-get install -y gcc g++ make cmake zlib1g-dev libbz2-dev libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 liblapack-dev openssh-server xterm firefox xdg-utils libdbus-glib-1-dev gdb
cd Downloads
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -zxvf Python-3.7.5.tgzcd Python-3.7.5
cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
make
sudo make install
vim ~/.bashrc
add: (将内容添加到 .bashrc 文件中)
#用于设置Python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个Python3版本,则指定使用Python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH
生效:
source ~/.bashrc
输入检查当前python版本:
我最开始显示的是2.7的版本,现在修改成我们刚才安装的3.7.5版本的
whereis python
'''显示的内容
python: /usr/bin/python /usr/bin/python3.6m /usr/bin/python3.6 /usr/bin/python2.7 /usr/bin/python3.6m-config /usr/bin/python3.6-config /usr/lib/python3.6 /usr/lib/python2.7 /usr/lib/python3.8 /usr/lib/python3.7 /etc/python /etc/python3.6 /etc/python2.7 /usr/local/lib/python3.6 /usr/local/lib/python2.7 /usr/include/python3.6m /usr/include/python3.6 /usr/share/python /usr/local/python3.7.5/bin/python3.7m-config /usr/local/python3.7.5/bin/python3.7m /usr/local/python3.7.5/bin/python3.7-config /usr/local/python3.7.5/bin/python3.7 /usr/share/man/man1/python.1.gz
'''
#软连接到python 3.7.5
sudo rm -rf /usr/bin
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python
输入python检查,目前版本是3.7.5. python环境配置好
pip3 install --upgrade pip -i https://pypi.douban.com/simple/
创建requirements.txt文件 里面添加如下内容:
attrs
numpy
decorator
sympy
cffi
pyyaml
pathlib2
psutil
protobuf
scipy
requests
grpcio
pylint
absl-py
(我使用豆瓣源,没有下载成功)
(豆瓣源) pip3 install -r requirements.txt -i https://pypi.douban.com/simple
(清华源(推荐使用这个)) pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
#同样使用上述讲的的samba服务进行文件的传输,
#将MindStudio安装包从PC端传输到虚拟机中。
cd samba/nas
tar -zxvf MindStudio****.tar.gz
cd MindStudio/bin
./MindStudio.sh
自此整个环境就算搭建好了