Atlas800-9000 开发环境搭建

文章目录

  • 1 环境部署
    • 1.1 系统安装:
      • 1.1.1 安装前的检查:
      • 1.1.2 安装系统
      • 1.1.3 配置网络--建议安装时就配好
      • 1.1.4 升级CPLD-iBMC-BIOS-iBMA
    • 1.2 环境检查与依赖安装
      • 1.2.1 配置root登陆--Ubuntu需要
      • 1.2.2 检查用户
      • 1.2.3 更改apt源--Ubuntu18.04
      • 1.2.4 更改apt源--CentOS7.6
        • 1.2.4.1 本地源
        • 1.2.4.1 在线源
      • 1.2.5 安装依赖包--ubuntu18.04
      • 1.2.6 安装依赖包--CentOS7.6
    • 1.3 开发环境部署
      • 1.3.1 安装python3.7.5
      • 1.3.3 安装TensorFlow
        • 1.3.3.1 安装hdf5 & Havaged
        • 1.3.3.2 先安装python依赖包
        • 1.3.3.3 安装tensorflow
        • 1.3.3.4 安装requests
        • 1.3.3.5 替换一个so-----待版本更新后不会有这个问题了
    • 1.4 驱动安装
      • 1.4.1 安装run包
      • 1.4.2 安装npu-smi 工具
      • 1.4.3 配置device ip--不需要了跳过。
      • 1.4.4 驱动安装检查
        • 1.4.4.1 Raid 卡驱动:
      • 1.4.5 网卡驱动检查
        • 1.4.5.1 板载--配置TM210
        • 1.4.5.2 板载--配置TM280
        • 1.4.5.3 PCIE--1822网卡
      • 1.4.6 日志检查和级别修改
  • 2 离线包制作教程
    • 2.1 apt
      • 2.1.1 联网环境下执行
    • 2.2 pip

1 环境部署

1.1 系统安装:

1.1.1 安装前的检查:

  1. Raid 卡型号和驱动准备。
  2. 是否要组raid 。
  3. 安装系统的时,时区要选择香港、或者北京。
  4. 装完系统先修改时间为当前时间;不然装run包可能出现问题;

1.1.2 安装系统

centos 系统获取地址1
centos 系统获取地址2

centos + Ubuntu系统
linux 依赖包下载

安装指导
Debian安装资料
所有系统安装指导
TaiShan 服务器 CentOS 7.6 安装指南

1.1.3 配置网络–建议安装时就配好

  1. 进入 /etc/sysconfig/network-scripts目录,修改文件ifcfg-enp189s0f0(这个是实际插网线的网口名字);没有就创建一个。
  2. 文件内容

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp189s0f0"
UUID="fe35c03b-156b-4bf4-ad70-a785084f0bec"
DEVICE="enp189s0f0"
ONBOOT="yes"
IPADDR="90.90.140.203"
PREFIX="23"
GATEWAY="90.90.140.1"
IPV6_PRIVACY="no"

临时IP

	或者在BMC配置个临时ip,然后再配置永久ip。
	ifconfig eth0 90.90.133.108/23 up
	route add default gw  90.90.133.1

注: 如果ssh无法登陆,把密码修改为数字的,KVM键盘有些问题。

再则:查看这些配置是否被注释
PasswordAuthentication yes
PermitEmptyPasswords no
PermitRootLogin yes
Port 22

1.1.4 升级CPLD-iBMC-BIOS-iBMA

直接在iBMC 上,点击固件升级,把相应的包传入即可。
注:

  1. IBMC 升级时间: 150s 左右。
  2. 当iBMA升级后重启BMC生效,查看iBMA是否运行: service iBMA status
  3. iBMC升级后要通过命令行查看是否升级成功:ipmcget -d v
  4. 升级CPLD的三个包要重启上下电,不然无法生效。
    注:iBMA使用前要关闭防火墙。

service firewalld status如果是开的,要关掉。
systemctl stop firewalld.service
systemctl disable firewalld.service关闭开机自启
systemctl enable firewalld.service打开开机自启

防火墙使用详情查看这里

注: BMC定制化操作流程看这里

BMC - Ip恢复命令:

ipmitool raw 0x0C 0x01 0x01 0x03 90 90 140 216
ipmitool raw 0x0C 0x01 0x01 0x06 255 255 254 0
ipmitool raw 0x0C 0x01 0x01 0x0c 90 90 140 1

1.2 环境检查与依赖安装

1.2.1 配置root登陆–Ubuntu需要

(1)增加用户
sudo passwd root

(2)ssh root登陆允许设置

grep -i "rootlogin" /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
PermitRootLogin yes
systemctl restart sshd.service

1.2.2 检查用户

(1)增加用户–如果有则不需要

groupadd HwHiAiUser
useradd -g HwHiAiUser -m -d /home/HwHiAiUser HwHiAiUser
passwd HwHiAiUser

(2)修改uid为1000

usermod -u 1000 HwHiAiUser
groupmod  -g 1000 HwHiAiUser
	备注1:增加HwHiAiUser 后,home没有HwHiAiUser目录。
			执行:  cp -a /etc/skel  /home/HwHiAiUser
chown -R HwHiAiUser:HwHiAiUser
	备注2:如果1000id被占用
			连续执行两次(一次kill不成功)kill -9 UID 后,再修改uid为1000.

1.2.3 更改apt源–Ubuntu18.04

打开:vi /etc/apt/sources.list
删除默认源, 修改为deb [trusted=yes] file:/// OfflinePackage/
测试:cat sources.list
更新:apt-get update

备注: 如果这个源有缺失的包,可以通过挂载本地os源的办法相关依赖。
挂载系统镜像到 /mnt
mount /home/xx.iso /mnt
修改sources.list
deb file:///mnt bionic main
更新
apt-get update

1.2.4 更改apt源–CentOS7.6

1.2.4.1 本地源

参考链接

一、挂载光驱
1、通过KVM挂载CentOS镜像;或者上传到本地。
2、挂载光驱:

mount /dev/sr0  /mnt 
# 将镜像(设备sr0)挂载到系统的/mnt文件夹 ,之后就可以通过/mnt文件夹访问镜像里面的内容

3、卸载光驱(装完依赖再卸):umount /dev/sr0

二、配置本地Yum源

1、系统自带的Yum源在/etc/yum.repos.d文件夹内,把源文件都移动其他目录mv CentOS* ../
2、在目录/etc/yum.repos.d/ 下创建文件dvd.repo,添加如下内容

[dvd]
name=Red Hat Enterprise Linux
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

然后直接安装即可相应的依赖包即可。

3、保存退出,执行yum repolist all

yum install openssl
yum install openssl-devel

备注:操作要在root用户下

注: 如果无法访问,需要把/etc/yum.repos.d/目录下的其他文件移动到其他目录。

1.2.4.1 在线源

  • 默认
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/altarch/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/altarch/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/altarch/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64
enabled=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/altarch/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64

  • 华为源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo

1.2.5 安装依赖包–ubuntu18.04

apt-get install gcc gdb make zlib1g-dev libbz2-dev libsqlite3-dev libssl-dev libxslt1-dev libffi-dev unzip
apt-get install haveged dkms libhdf5-dev libaio-dev
apt-get install sshpass storcli64 module-init-tools hinic smartpqi-dkms 

检查:haveged状态; systemctl status haveged
备注1:
安装依赖包时出现:选择 yes 更新服务。
增加 nmon 工具 ubuntu18.04-ARM版,目录在OfflinePackage/nmon

1.2.6 安装依赖包–CentOS7.6

yum -y install zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel

1.3 开发环境部署

1.3.1 安装python3.7.5

(1)安装python

获取python包:
或者
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz

解压源码包,命令为:
tar -zxvf Python-3.7.5.tgz
进入解压后的文件夹,创建安装目录,执行配置、编译和安装命令:

cd Python-3.7.5
mkdir /usr/local/python3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-shared CXXFLAG=-fPIC
make
suo make install

备注1:这里建议使用: make –j 100;多核编译-快!

(2)配置软链接

这部分待定:

查询/usr/lib64或/usr/lib下是否有libpython3.7m.so.1.0,若有则跳过此步骤或将原有文件备份后执行如下命令:
将编译后的如下文件复制到/usr/lib64:
sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib64

如果环境上没有/usr/lib64,则创建/usr/lib64目录:
libpython3.7m.so.1.0文件所在路径请根据实际情况进行替换。
这部分待定:

替换软连接

sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3

备注1:如果链接符号存在:link '/usr/bin/python3': File exists

rm -rf  /usr/bin/python3; rm -rf  /usr/bin/pip3

备注2:pip3 list 出现错误: Command '('lsb_release', '-a')'
找到并删除: find / -name lsb_release; rm /usr/bin/lsb_release;

1.3.3 安装TensorFlow

1.3.3.1 安装hdf5 & Havaged

arm 上要安装tensorflow,要先装h5py, 而h5py是依赖于hdf5的,所以要先编译安装 hdf5

编译安装 hdf5

手动下载也可以;

wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.5/src/hdf5-1.10.5.tar.gz --no-check-certificate

tar -zxvf hdf5-1.10.5.tar.gz
cd hdf5-1.10.5/
./configure --prefix=/usr/include/hdf5
# make check
# make install
# make check-install

make –j 192
make install
  • 配置环境变量
export CPATH="/usr/local/hdf5/include/:/usr/local/hdf5/lib/"
ln -s /usr/local/hdf5/lib/libhdf5.so /usr/lib/libhdf5.so
ln -s /usr/local/hdf5/lib/libhdf5_hl.so /usr/lib/libhdf5_hl.so

安装 haveged

下载地址

wget https://download-ib01.fedoraproject.org/pub/epel/7/aarch64/Packages/h/haveged-1.9.1-1.el7.aarch64.rpm
rpm -ivh haveged-1.9.1-1.el7.aarch64.rpm

numpy目前只能用1.17.1,没有arm的,只能源码编译,从这里获取源码。

1.3.3.2 先安装python依赖包

由于CentOS7.6的gcc默认版本比较低,这里安装会编译安装numpy,所以先导入一个环境变量export CFLAGS='-std=c99',让其按照99的标准编译。

cd /home/work/pip_first_all/  #(/home/work/为当前目录,根据需要修改)
pip3.7 install pathlib2-2.3.5-py2.py3-none-any.whl  --no-index --find-links="/home/work/pip_first_all/" -r requirements.txt

1.3.3.3 安装tensorflow

cd /home/work/tensorflow/
rm /usr/bin/lsb_release
pip3.7 install tensorflow-1.15.0-cp37-cp37m-linux_aarch64.whl  --no-index --find-links="/home/work/tensorflow/" -r  requirements.txt

# 装到grocio会等待时间 5-10mins,先喝杯咖啡。

1.3.3.4 安装requests

cd /home/work/requests/
pip3.7 install requests-2.23.0-py2.py3-none-any.whl  --no-index --find-links="/home/work/requests/" -r  requirements.txt

1.3.3.5 替换一个so-----待版本更新后不会有这个问题了

获取文件libstdc++.so.6.0.24,放到/usr/lib64,先删除原先的软链接libstdc++.so.6,重新建立软链接libstdc++.so.6

rm -rf  /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

1.4 驱动安装

1.4.1 安装run包

如果是第一次部署,先装驱动,再装固件,然后装其他包。
如果是升级场景,先装firmware,再装Driver; 其他顺序无所谓。
注: 升级aicpu时,选择no。

  587  ./Ascend910-firmware-1.72.t205.0.b050.run --full
  588  ./Ascend910-driver-1.72.t205.0.b050-centos7.6.aarch64.run --full
  589  ./Ascend910-aicpu_kernels-1.72.t5.0.b050.run --full 
        # 出现判断重启npu时(restart the device),选择no,最后一起重启生效。
        
  592  ./Ascend-atc-1.72.t5.0.b050-centos7.6.aarch64.run --full
  593  ./Ascend-fwkacllib-1.72.t5.0.b050-centos7.6.aarch64.run --full
  594  ./Ascend-opp-1.72.t5.0.b050-centos7.6.aarch64.run --full
  596  ./Ascend-tfplugin-1.72.t5.0.b050-centos7.6.aarch64.run --full
  597  ./Ascend-toolkit-1.72.t5.0.b050-centos7.6.aarch64.run --full
  617  ./Ascend910-smitool-1.5.7-aarch64.run --full

全部装完,重启,使run包生效。
重启后,修改时间为当前时间。

1.4.2 安装npu-smi 工具

  • Ubuntu18.04

安装npu-smi 工具时要保证/lib64下有:ld-linux-aarch64.so.1;如果没有lib64目录,就创建一个。
命令如下:

mkdir –p /lib64
find / -name ld-linux-aarch64.so.1
ln -s /xxx/ld-linux-aarch64.so.1 /lib64
安装npu-smi
./smitool_aarch64_1.3.5.run –full
  • CentOS7.6
    直接安装即可。

1.4.3 配置device ip–不需要了跳过。

hccn_tool -i 0 -ip -s address 192.168.0.2 netmask 255.255.255.0
hccn_tool -i 1 -ip -s address 192.168.1.2 netmask 255.255.255.0
hccn_tool -i 2 -ip -s address 192.168.2.2 netmask 255.255.255.0
hccn_tool -i 3 -ip -s address 192.168.3.2 netmask 255.255.255.0
hccn_tool -i 4 -ip -s address 192.168.0.3 netmask 255.255.255.0
hccn_tool -i 5 -ip -s address 192.168.1.3 netmask 255.255.255.0
hccn_tool -i 6 -ip -s address 192.168.2.3 netmask 255.255.255.0
hccn_tool -i 7 -ip -s address 192.168.3.3 netmask 255.255.255.0

1.4.4 驱动安装检查

1.4.4.1 Raid 卡驱动:

RAID卡资料

RAID卡管理工具 arcconf ; storcli64
进入support网站 技术支持>智能管理软件>iDriverFusionServer>iDriver
找到对应的系统,可以下载raid驱动和相应的管理工具。

查看raid卡驱动版本方法:RAID卡资料

1.4.5 网卡驱动检查

1.4.5.1 板载–配置TM210

指导和驱动下载地址—华为 TM210 灵活IO卡 用户指南 02

升级方式:

  1. 执行如下命令编辑blacklist.conf文件。
    vim /etc/modprobe.d/blacklist.conf
  2. Insert键进入编辑模式,在dist-blacklist.conf文件末尾添加如下两行,按"Esc"键退出编辑模式,输入":wq!",按"Enter"键保存退出。
blacklist hns_roce_hw_v2
blacklist hns_roce
  1. 执行如下命令重新生成initramfs文件。
    update-initramfs -u
  2. 输入如下命令重启系统。
    reboot
  3. 系统启动后以root用户登录服务器OS,在桌面单击鼠标右键,选择“Open Terminal”打开命令行。执行如下命令切换到驱动文件所在目录。
    cd /root/driver
  4. 执行如下命令进行驱动安装。
    dpkg -i NIC-hisi_eth-Ubuntu18.04.1-hns3-1.0.2-aarch64.deb
  5. 执行如下命令查看驱动是否升级到驱动配套表中的指定版本。
    modinfo hns3

1.4.5.2 板载–配置TM280

指导和驱动下载地址—华为 TM280 灵活IO卡 用户指南 02

1.4.5.3 PCIE–1822网卡

技术支持>智能加速部件>IN系列智能网卡>IN500 solution–软件

技术支持>智能加速部件>IN系列智能网卡>IN500 solution–文档

1.4.6 日志检查和级别修改

日志检查:
/var/log/npu/slog没有Npu日志:调整npu目录属主从root变为HwHiAiUser

在/var/log下执行命令:chown HwHiAiUser:HwHiAiUser npu
级别修改:

su - HwHiAiUser -c "adc --host 127.0.0.1:22118 --log \"SetLogLevel(0)[ERROR]\""
su - HwHiAiUser -c "adc --host 127.0.0.1:22118 --log \"SetLogLevel(0)[ERROR]\" --device 4"

2 离线包制作教程

2.1 apt

2.1.1 联网环境下执行

离线环境需要安装的包先在联网环境安装一遍,相关依赖包默认放在/var/cache/apt/archives目录下
新建目录

$sudo mkdir /OfflinePackage

拷贝deb软件包到上新建的目录

$sudo cp -r /var/cache/apt/archives /OfflinePackage

修改文件夹权限,可读可写可执行

$sudo chmod 777 -R /OfflinePackage/

建立deb软件包依赖关系($sudo apt-get install dpkg-dev

$sudo dpkg-scanpackages /OfflinePackage/ /dev/null |gzip >/OfflinePackage/Packages.gz

说明:如提示sudo: dpkg-scanpackages: command notfound,则需要安装dpkg-dev工具

2.1.2 离线环境下执行
拷贝离线安装包(上面制作的离线包)到/目录下
配置安装源

$sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak

说明:备份安装源配置
修改为本地源

$sudo vi /etc/apt/sources.list
deb [trusted=yes] file:/// OfflinePackage/

注意:OfflinePackage前面有一个空格
更新安装源

$sudo apt-get update

离线安装

$sudo apt-get install xxx --allow-unauthenticated

2.2 pip

2.2.1 联网环境下安装
pip3 download tensorflow-gpu==1.13.0 -d /home/packages/

下载tensorflow包和对应的依赖包到/home/packages/路径下

pip3 install /home/packages/tensorflow-gpu-xxxx.whl
pip3 freeze > requirements.txt 导出上一步已安装的包列表

requirements.txt、/home/packages/下的安装包 打包拷到离线环境

2.2.2 离线环境下安装

pip3 install --no-index --find-links="/home/packages/" -r requirements.txt

3 参考资料

huaw1
huaw2

你可能感兴趣的:(搭建平台-软件安装,深度学习)