制作启动镜像
目前,凌华科技的DLAP221边缘计算设备有两种启动方式:SD卡启动和Emmc启动,请事先确认DLAP221支持哪种启动方式!!
前提条件
- 一张SD卡(推荐使用32G (class10)及以上)。
- 一张USB读卡器。
- 一台带USB端口的Linux服务器或虚拟机(建议安装Ubuntu 18.04系统)。
Linux服务器已安装qemu-user-static、binfmtsupport、yaml、squashfs-tools、unzip与交叉编译器。 - 下载凌华科技提供的DLAP221的制卡包,此制卡包中已包含了制卡过程所需要的软件包:ubuntu server 18.04.5、设备驱动包、系统依赖包、atlas离线推理包(nnrt)、制卡工具等。请联系凌华科技的技术支持获取最新的制卡工具包
所有的依赖必须用root用户进行安装。
用户可以通过如下命令进行安装上述依赖。
apt-get install -y qemu-user-static python3-yaml binfmt-support gcc-aarch64-linux-gnu g++-aarch64-linux-gnu expect unzip squashfs-tools
- Ubuntu 18.04.4系统:“gcc-aarch64-linux-gnu”与“g+±aarch64-linux-gnu”版本要求为7.4.0,其他依赖软件包无版本要求。默认安装的gcc版本为7.4.0。
- Ubuntu 16.04.3系统:“gcc-aarch64-linux-gnu”与“g+±aarch64-linux-gnu”版本要求为5.4.0,其他依赖软件包无版本要求。默认安装的gcc版本为5.4.0。
SD卡制卡操作步骤
-
将SD卡插入USB读卡器。
-
将USB读卡器插入Linux服务器。
-
登录Linux服务器。
-
执行如下命令,切换至root用户。
su - root
-
使用“WinSCP”,将制卡所需制卡包(sd_maker_xxx.tgz)上传至Linux系统任一目录下,例如/home/ascend/mksd。工具使用方法请参见使用WinSCP传输文件。
-
执行如下命令,进入sd_maker_xxx.tgz制卡工具包的上传目录,例如/home/ascend/mksd。
cd /home/ascend/mksd
-
执行如下命令,解压sd_tools.tar.gz制卡脚本工具包。
tar -xzvf sd_maker_xxx.tgz
-
(可选)更改网卡的默认IP地址,需修改“make_sd_card.py”脚本中的“NETWORK_CARD_DEFAULT_IP”的参数值。
网线连接方式的默认IP地址192.168.10.2。
-
执行如下命令,查找SD卡所在的USB设备名称,例如“/dev/sdb”。
fdisk -l
若出现中文打印信息,请参考制卡过程中出现“[ERROR] Can not get disk, please use fdisk -l to check available disk name!”的报错处理。
-
执行如下命令,运行启动镜像脚本“make_sd_card.py”,制作SD卡。
- 制卡完成后,SD卡默认产生如下几个分区:
- root分区:分区大小默认为20G,挂载目录:/。
- 日志分区:分区大小为1G,挂载目录:/var/log/npu/slog。
- home分区:分区大小=SD卡大小-root分区大小-日志分区大小-保留分区大小,挂载目录:/home。
- 保留分区:分区大小为512M。
- 系统分区为root分区,若用户需要修改默认系统分区的大小,请修改完系统分区大小后再运行启动镜像脚本“make_sd_card.py”。修改系统分区大小请参见修改系统分区(root分区)大小。
python3 make_sd_card.py local /dev/sdb
显示如下信息,表示开始制卡。
root@ubuntu:/home/ascend/mksd# python3 make_sd_card.py local /dev/sdb Begin to make SD Card... Please make sure you have installed dependency packages: apt-get install -y qemu-user-static binfmt-support gcc-aarch64-linux-gnu g++-aarch64-linux-gnu Please input Y: continue, other to install them:
- 制卡完成后,SD卡默认产生如下几个分区:
-
输入“Y”。
显示如下信息,表示制卡成功。
Step: Start to make SD Card. It need some time,please wait... Make SD Card successfully!
-
将SD卡插入DLAP221的SD卡卡槽,并上电。
-
第一次上电需要配置系统环境,需要大约15-20分钟,请耐心等待,直到DLAP221的电源指示灯变为绿灯,表示系统配置完成。配置过程中完成以下工作:
- 检测设备中的固件版本,如果固件版本低于新系统中的固件版本则自动升级相关固件
- 准备设备驱动
- 安装平台依赖的相关deb包
- 安装第三方依赖原件:python3.7.5,ffmpeg4.2,opencv4.2,华为离线推理包nnrt
EMMC制卡操作步骤
-
使用“WinSCP”,将制卡所需制卡包(sd_maker_xxx.tgz)上传至Linux系统任一目录下,例如/home/ascend/mksd。工具使用方法请参见使用WinSCP传输文件。
-
执行如下命令,进入sd_maker_xxx.tgz制卡工具包的上传目录,例如/home/ascend/mksd。
cd /home/ascend/mksd -
执行如下命令,解压sd_tools.tar.gz制卡脚本工具包。
tar -xzvf sd_maker_xxx.tgz -
然后将ubuntu-18.04.5-server-arm64.iso和Ascend-cann-nnrt_x.x.x_linux-aarch64.run复制到解压后的sd_maker目录中。
-
用一根CAT5e网线直连安装服务器和DLAP-221前面板上的第一个RJ45网口,然后将安装服务器的网口IP地址设置为192.168.0.0网段。
ifconfig ethx 192.168.0.55/24 up -
如下图,用一根杜邦线短接DLAP-221前面板上COM1口的Rx和Tx,从左上数起的第2第3个Pin脚。
-
将DLAP-221上电。 9. 在安装服务器上,ping 192.168.0.2,验证网络连接正常。
-
在安装包解压后的sd_maker目录,运行下面命令安装系统。
python3 make_sd_card.py recover_multi 192.168.0.2
-
移除COM1口上的杜邦线。重新上电DLAP-221, 然后通过串口查看系统安装过程,等待系统安装完成。
-
第一次上电需要配置系统环境,需要大约15-20分钟,请耐心等待,直到DLAP221的电源指示灯变为绿灯,表示系统配置完成。配置过程中完成以下工作:
- 检测设备中的固件版本,如果固件版本低于新系统中的固件版本则自动升级相关固件
- 准备设备驱动
- 安装平台依赖的相关deb包
- 安装第三方依赖原件:python3.7.5,ffmpeg4.2,opencv4.2,华为离线推理包nnrt
验证系统
登录DLAP221 OS。详细信息请参见附件中使用PuTTY登录设备(网口方式)。
CANN Toolkit 开发包安装
如果需要在DLAP221上开发推理程序,请用HwHiAiUser用户登录系统,将Ascend-cann-toolkit_x.x.x_linux-aarch64.run包上传到DLAP221上任意目录,如:/home/HwHiAiUser,运行以下命令安装
HwHiAiUser@davinci-mini:~$ chmod +x ./Ascend-cann-toolkit_x.x.x_linux-aarch64.run
HwHiAiUser@davinci-mini:~$ ./Ascend-cann-toolkit_x.x.x_linux-aarch64.run --install
安装完成后,修改/home/HwHiAiUser/.bashrc文件,在文件尾部添加以下环境变量来适配demo程序编译和模型转换,
注意
在21.0.1后的版本CANN环境变量只需要在/home/HwHiAiUser/.bashrc文件末尾添加"source <你的cann toolkit安装目录>/set_env.sh”即可配置好CANN的环境变量
export LD_LIBRARY_PATH=/usr/lib64/aicpu_kernels/0/aicpu_kernels_device
export LD_LIBRARY_PATH=/home/HwHiAiUser/Ascend/acllib/lib64:${LD_LIBRARY_PATH}
export PYTHONPATH=/home/HwHiAiUser/Ascend/pyACL/python/site-packages/acl
export ASCEND_AICPU_PATH=/home/HwHiAiUser/Ascend
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:/home/HwHiAiUser/ascend_ddk/arm/lib:$LD_LIBRARY_PATH
#env for ascend-toolkit
export DDK_PATH=/home/HwHiAiUser/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=/home/HwHiAiUser/Ascend/ascend-toolkit/latest/acllib/lib64/stub
export ASCEND_HOME=/home/HwHiAiUser/Ascend/ascend-toolkit
export ASCEND_VERSION=latest
export ARCH_PATTERN=arm64-linux
export PYTHONPATH=$PYTHONPATH:$DDK_PATH/toolkit/python/site-packages:$DDK_PATH/atc/python/site-packages
export PATH=$PATH:$DDK_PATH/atc/bin:$DDK_PATH/atc/ccec_compiler/bin:$DDK_PATH/fwkacllib/ccec_compiler/bin:$DDK_PATH/fwkacllib/bin:
export ASCEND_OPP_PATH=$DDK_PATH/opp
export TOOLCHAIN_HOME=$DDK_PATH/toolkit
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DDK_PATH/atc/lib64:$DDK_PATH/fwkacllib/lib64
#FFMPEG
export PATH=$PATH:/usr/local/ffmpeg/bin
export FFMPEG_PATH=/usr/local/ffmpeg
export LD_LIBRARY_PATH=$FFMPEG_PATH/lib:$LD_LIBRARY_PATH
#OpenCV
export OPENCV_PATH=/home/HwHiAiUser/ascend_ddk/arm
export LD_LIBRARY_PATH=$OPENCV_PATH/lib:$LD_LIBRARY_PATH
修改完后保存退出,并运行以下命令激活环境变量
HwHiAiUser@davinci-mini:~$ source ~/.bashrc
附件
使用PuTTY登录设备(网口方式)
操作场景
使用PuTTY工具,可以通过局域网远程访问设备,对设备实施配置、维护操作。
必备事项
前提条件
已通过网线连接PC与设备的管理网口。
数据
需准备如下数据:
- 待连接设备的IP地址
- 登录待连接设备的用户名和密码
软件
PuTTY.exe:此工具为第三方软件。
操作步骤
-
设置PC机的IP地址、子网掩码或者路由,使PC机能和设备网络互通。
可在PC机的cmd命令窗口,通过Ping *设备IP地址***命令,检查网络是否互通。
-
双击“PuTTY.exe”。
弹出“PuTTY Configuration”窗口,如图5-1所示。
-
填写登录参数。
参数说明如下:
- Host Name(or IP address):输入要登录设备的IP地址,Atlas 200 AI加速模块(型号 3000)的默认IP地址为192.168.10.2。
- Port:默认设置为“22”。
- Connection type:默认选择“SSH”。
- Close window on exit:默认选择“Only on clean exit”。
说明
配置“Host Name”后,再配置“Saved Sessions”并单击“Save”保存,则后续使用时直接双击“Saved Sessions”下保存的记录即可登录设备。 -
单击“Open”。
进入“PuTTY”运行界面,提示“login as:”,等待用户输入用户名。
说明
- 如果首次登录该目标设备,则会弹出“PuTTY Security Alert”窗口。单击“是”表示信任此站点,进入“PuTTY”运行界面。
- 登录设备时,如果帐号输入错误,必须重新连接PuTTY。
-
按提示分别输入用户名和密码。
- 默认用户名:HwHiAiUser
- 默认密码:Mind@123
登录完成后,命令提示符左侧显示出当前登录服务器的主机名。
-
执行如下命令,切换为root用户(root用户的默认密码为Mind@123)。
su - root