配置Altas 200 DK有两种方式:分设环境和合设环境。分设环境即将开发板单独作为运行环境,自己的PC机作为开发环境,合设环境即使用dd镜像,此时开发板即作为开发环境也作为运行环境。
我们选择较为方便的使用dd镜像配置合设环境,分设环境可参考:玩转Atlas 200DK(一)分设环境之开发环境准备 - 知乎 (zhihu.com)。
所需配件:Atlas 200 DK开发者套件、Ubuntu系统(18.4及以上)、SD卡(32G及以上)、usb转type-c线、RJ45线。
下载Etcher
烧录工具和dd镜像,特别注意兼容性问题,这里我选择开发版固件与驱动版本1.0.13 +CANN版本5.1.RC1.alpha005+MindStudio5.0.RC1+MindSpore1.8的配置。
Etcher下载地址如下:
可到其官网下载
镜像下载地址如下(提取码:kjm7):
https://pan.baidu.com/s/1QzbbDrE1C-lsJnAtBSFKHA
使用Etcher工具将镜像烧录至SD卡中,注意SD卡容量需大于等于32G。
下载的镜像只会占用SD卡32G的空间,如果有多余的空间会处于未分配的状态,此时我们可以使用Ubuntu系统的gpated工具进行SD卡扩区。
使用读卡器将SD卡接入Ubuntu系统,执行以下命令:
sudo apt-get update
sudo apt-get install gparted
# 安装完成后使用以下命令启动
gparted
打开gparted工具,选择SD卡设备:
右键/dev/sdb3
,这就是我们要扩大到区域,将未分配的区域全都分配到这里,选择Resize/Move
,将其拉至最大。应用更改,完成扩区。
将SD卡插入开发板卡槽中,打开开发板外壳,便于观察指示灯,插入电源线,观察到开发板上有LED灯亮起,四个LED灯逐个亮起,**注意:当有LED灯处于闪烁状态时,表示正在升级固件,此时不能进行下电操作!**当四个LED灯都亮起时,开发板启动成功。
这里我遇到了只亮两个灯的情况,百度了一下,有挺多人遇到这种情况的,有的是SD卡的问题,有的是开发板某一批次的都有这个问题,可参考解决方案:更换SD卡;烧制其他版本的镜像。这里我是更换了一个开发板,然后就没有出现这种情况。
使用Type-C线连接开发板与Ubuntu系统,打开终端,输入以下命令查看ip:
ifconfig -a
本机网卡名是ens33,开发板虚拟网卡名是usb0
我们需要为USB网卡添加静态IP,输入一下命令配置netplan:
vim /etc/netplan/01-netcfg.yaml
把以下内容加入其中:
network:
version: 2
renderer: NetworkManager
ethernets:
usb0:
dhcp4: no
addresses: [192.168.1.223/8]
gateway4: 255.255.255.0
nameservers:
addresses: [114.114.114.114]
有一个需要更改的地方,其中的usb0,就是你所查到的开发板虚拟网卡名。
配置完成后使用以下命令使配置生效:
netplan apply
至此,开发板已经可以和Ubuntu系统连接了。
我们打开终端,使用ssh连接开发板:
ssh [email protected]
密码是:
Mind@123
我们可以使用RJ45线使开发板联网或者只使用usb线,由于没有在实验室找到可用的网口,这里展示使用usb线联网,这种方法有一个缺点,就是每次重启Ubuntu系统或重启开发板可能都需要重新配置。
在Ubuntu系统中:
执行以下命令进入root用户:
sudo su
执行以下命令:
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.1.0/24 -j MASQUERADE
iptables -A FORWARD -i usb0 -o ens33 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i usb0 -o ens33 -j ACCEPT
这里有几个需要更改的地方,ens33是你本机的虚拟网卡名,usb0是开发板的虚拟网卡名,需要修改。
在开发板系统中:
执行以下命令进入root用户,密码也是Mind@123:
su root
执行以下命令:
route add default gw 192.168.1.223 dev usb0 # 这里的usb0不用修改
为开发板添加DNS(这步只需要配置一次即可)
vim /etc/systemd/resolved.conf
取消其中DNS的注释,使其为114.114.114.114。
保存退出,输入以下命令重启开发板服务:
systemctl restart systemd-resolved.service
ping一下网页查看是否联网成功。
ping baidu.com
此方法有缺点,最好的联网方法还是使用RJ45线,配置方法可参考:
Atlas 200 DK的多种联网方式_哔哩哔哩_bilibili
我们下载的镜像是已经配置好了依赖环境和下载好了samples代码仓的,我们运行samples中的样例代码:
执行以下命令:
cd ${HOME}/samples/python/level2_simple_inference/1_classification/lenet_mindspore_picture/model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/lenet/mnist.air
atc --framework=1 --model=mnist.air --output=mnist --soc_version=Ascend310
执行以下命令:
cd ${HOME}/samples/python/level2_simple_inference/1_classification/lenet_mindspore_picture/data
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/lenet_mindspore/test_image/test1.png
执行以下命令:
cd ${HOME}/samples/python/level2_simple_inference/1_classification/lenet_mindspore_picture/src
python3.6 classify.py ./data/
我们可以看到推理成功:
至此,Atlas 200 DK开发板环境配置完成。