华为昇腾 Atlas200DK 烧写系统,搭建合设环境,分设环境 并运行摄像头检测样例

环境区别

  • (合设环境 #场景一)在昇腾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

自此整个环境就算搭建好了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值