安装NPU驱动固件
确认OS和内核版本
uname -m && cat /etc/*release uname -r
OS内核版本和对应的安装方式如表1所示。有以下场景:
- 直接安装NPU驱动固件
- 修改驱动包后安装NPU驱动固件
- 不在适配表中的OS,请按照安装OS(可选)重新安装OS。
OS版本 |
内核版本 |
安装NPU驱动方式 |
---|---|---|
openEuler 22.03 LTS |
5.10.0-60.18.0.50.oe2203 |
直接安装 |
Ubuntu 18.04.4 |
4.19.90+ |
|
Ubuntu 18.04.5 |
4.15.0-159 |
|
Ubuntu 18.04.6 |
4.15.0-212 5.4.0-152 |
|
Ubuntu 20.04 |
5.4.0-26 |
|
Ubuntu 20.04.4 |
5.13.0-30 |
修改驱动包可安装 |
Ubuntu 20.04.5 |
5.15.0-58 |
|
Ubuntu 20.04.6 |
5.15.0-76 5.4.0-186 |
|
Ubuntu 22.04 |
5.4.0-182 |
|
Ubuntu 22.04.2 |
5.15.0-60 |
|
Ubuntu 22.04.2 |
6.5.0-44 |
内核版本降至5.15.0-119,再修改驱动可安装 |
Ubuntu 22.04.4 |
6.5.0-45 |
内核版本降至5.15.0-97,再修改驱动包可安装 |
安装NPU驱动固件
- 以root用户登录服务器。
- 创建驱动运行用户HwHiAiUser(运行驱动进程的用户),安装驱动时无需指定运行用户,默认即为HwHiAiUser。
groupadd HwHiAiUser useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
- 安装驱动源码编译所需依赖。
- Ubuntu系统
需要安装make、dkms、gcc、linux-header驱动源码编译所需依赖。
- 执行如下命令检查是否安装:
make -v dpkg-query -s dkms dpkg-query -s gcc dpkg-query -s linux-headers-$(uname -r)
- 若回显相关软件包版本信息,表示已安装;若未安装请执行如下命令安装依赖。
apt-get install -y make dkms gcc linux-headers-$(uname -r)
- 执行如下命令检查是否安装:
- openEuler 22.03 LTS
需要安装make、dkms、gcc、kernel-devel软件包。
- 执行如下命令检查是否安装:
make -v rpm -qa | grep dkms rpm -qa | grep gcc rpm -qa | grep kernel-devel-$(uname -r)
- 若回显相关软件包版本信息,表示已安装;若未安装请执行如下命令安装依赖。
yum install -y make dkms gcc kernel-devel-$(uname -r)
- 执行如下命令检查是否安装:
- Ubuntu系统
- 将驱动包和固件包上传到服务器任意目录如“/home”。可参见文件上传上传文件。
- 增加驱动和固件包的可执行权限。进入驱动包和固件包所在目录,执行如下命令。
chmod +x Ascend-hdk-310p-npu-driver_24.1.rc3_linux-aarch64.run chmod +x Ascend-hdk-310p-npu-firmware_7.5.0.1.129.run
进入驱动包和固件包所在目录,执行如下命令。chmod +x Ascend-hdk-310p-npu-driver_24.1.rc3_linux-x86-64.run chmod +x Ascend-hdk-310p-npu-firmware_7.5.0.1.129.run
- 执行以下命令,完成驱动固件安装,软件包默认安装路径为“/usr/local/Ascend”。首次安装场景,需按照“驱动 > 固件”的顺序安装驱动固件;覆盖安装场景,需按照“固件 > 驱动”的顺序安装固件驱动。
- 安装驱动
执行以下命令,完成驱动安装。
./Ascend-hdk-310p-npu-driver_24.1.rc3_linux-x86-64.run --full --install-for-all
- 若执行上述安装命令出现类似如下回显信息,请参见驱动安装缺少依赖报错解决。
[ERROR]The list of missing tools: lspci,ifconfig,
- 若执行上述安装命令出现类似如下回显信息,请参见驱动安装过程中出现dkms编译失败报错解决。
[ERROR]Dkms install failed, details in : var/log/ascend_seclog/ascend_install.log. [ERROR]Driver_ko_install failed, details in : /var/log/ascend_seclog/ascend_install.log.
- 若执行上述安装命令出现类似如下回显信息,请参见安装驱动路径不属于root解决。
[ERROR]The given directory, including its parents, should belong to root, details in : var/log/ascend_seclog/ascend_install.log.
- 若系统出现如下关键回显信息,则表示驱动安装成功。
Driver package installed successfully!
- 若执行上述安装命令出现类似如下回显信息,请参见驱动安装缺少依赖报错解决。
- 安装固件
若系统出现如下关键回显信息,表示固件安装成功。
Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect
- 安装驱动
- 执行reboot命令重启系统,使NPU驱动固件生效。
- 重启系统后,以root用户登录服务器。
- 执行npu-smi info查看驱动加载是否成功。
若出现类似如下图所示回显信息,说明加载成功。否则,说明加载失败。请联系华为技术支持处理。
Ubuntu 22.04.x在使用官方源或外部源时默认开启内核更新功能,安装部分软件包将自动升级内核到源里的新版本,在当前内核版本作为使用场景时,需要在软件安装后对内核版本进行锁定。
执行如下命令锁定内核(命令中的5.15.0-94版本仅为示例)。
apt-mark hold linux-image-5.15.0-94-generic linux-headers-5.15.0-94-generic linux-modules-5.15.0-94-generic linux-modules-extra-5.15.0-94-generic
修改驱动包后安装NPU驱动固件
部分OS内核版本需要修改驱动包后才能安装NPU驱动固件,本文以OS内核5.15.0为例介绍修改驱动包的方法,更多案例请参见修改驱动包(内核 5.13.0)和修改驱动包(内核5.4.0-198)。
部分OS需要先降低内核版本,再修改驱动包后才能安装NPU驱动固件,请参见升降内核。
- 参考1~6执行驱动安装,根据驱动安装的报错信息进行定位修改。
- 驱动安装时出现如图1所示报错信息。
- 查看安装日志。
cat /var/log/ascend_seclog/ascend_install.log
图2 查看安装日志 - 找到错误说明,查看“make.log”。
cat /var/lib/dkms/davinci_ascend/1.0/build/make.log
图3 查看make.log - 查找“make.log”中最开始报的错误error。图4 报错信息1
- 在run包目录下,解压run包。
./Ascend-hdk-310p-npu-driver_24.1.rc3_linux-aarch64.run --noexec --extract=./tmp
./Ascend-hdk-310p-npu-driver_24.1.rc3_linux-x86-64.run --noexec --extract=./tmp
- 进入“tmp”目录,在“tmp/driver/kernel”中找到上述.c文件的上级目录(vmng_host),编辑其中的Makefile。 如果没有Makefile,则进入上一层目录查找。
cd tmp/driver/kernel/vmng_host vi Makefile
- 查找ccflag(非编辑模式下,执行/ccflag命令查询),如下图所示,在行尾添加“-Wno-type-limits” (error的提示错误)。
修改后如下图所示。
- 修改完后,删除上次安装残余文件。
/usr/local/Ascend/driver/script/uninstall.sh
- 回到“tmp”目录下,执行如下命令安装。
./driver/script/install.sh -- -- --full
- 安装成功后,回到“tmp”上级目录,执行如下命令将修改后的tmp目录打包(5.15.0内核版本仅为示例)。
./Ascend-hdk-310p-npu-driver_24.1.rc3_linux-aarch64.run --repack-path=./tmp new_driver_5.15.0.run
./Ascend-hdk-310p-npu-driver_24.1.rc3_linux-x86-64.run --repack-path=./tmp new_driver_5.15.0.run
- 如果打包报错,查看报错日志。依照上述步骤处理报错。
cat /var/log/ascend_seclog/ascend_rebuild.log
- 修改驱动包后参见安装NPU驱动固件,根据新的驱动包进行安装。
检查芯片温度
NPU驱动固件安装完成后,可执行如下步骤查看芯片温度是否超标,导致设备不可用或是性能下降。温度规格参考表2。
- 以root用户登录服务器。
- 执行如下命令,查询所有芯片的温度。
npu-smi info -t temp -i id
id表示设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。
命令示例如下,查询设备1的芯片温度。
npu-smi info -t temp -i 1
回显类似如下信息:
NPU ID : 1 Chip Count : 1 Temperature (C) : 44 Chip ID : 0 LM75A_TE (C) : 41 LM75B_TE (C) : 36 AICORE (C) : 43 Chip Name : MCU
表2 打印信息说明 字段
说明
NPU ID
设备id
Chip Count
芯片个数
Temperature (C)
温度(单位:°C)
102℃以下表示芯片温度正常。
Chip ID
芯片id
LM75A_TE (C)
LM75A_TE温度(单位:°C)
LM75B_TE (C)
LM75B_TE温度(单位:°C)
AICORE (C)
AICORE温度(单位:°C)
Chip Name
芯片名称
升级MCU
MCU是推理卡带外管理模块,具备单板监测、故障上报等功能。出厂时推理卡已集成了初始版本,为了保障所有功能正常使用,请将MCU升级到配套版本。
本节内容主要介绍通过npu-smi工具和iBMC升级MCU,npu-smi工具可以将单个推理卡的MCU升级到相应版本,如果配备了多个推理卡,需要逐个升级,iBMC可以批量升级到相应版本。
如果现场使用Atlas 800 推理服务器(型号:3000)和TaiShan 200服务器,配置Atlas 300V 视频解析卡,请通过iBMC Web界面升级。
如果现场使用第三方服务器,配置Atlas 300V 视频解析卡,请通过npu-smi工具升级。
- 将获取的“Ascend-hdk-310p-mcu_24.2.2zip”包解压至本地文件夹,获取安装包。
Ascend-hdk-310p-mcu_24.2.2.hpm
- 以root用户登录服务器,将安装包上传至Linux系统任意目录下(如“/home”)。
- 执行npu-smi info -l命令查询NPU ID(推理卡的设备编号)。回显类似如下信息,NPU ID为8。
Card Count : 1 NPU ID : 8 Product Name : IT21DMPB01 Serial Number : 033EFS10M8000087 Chip Count : 4
- 进入MCU软件包所在路径,执行如下命令启动升级(将NPU ID替换为3中查询到的设备编号)。
npu-smi upgrade -t mcu -i NPU ID -f Ascend-hdk-310p-mcu_24.2.2.hpm
出现类似如下回显表示升级成功。
Start upgrade [100]. Status : OK Message : Start device upgrade successfully Message : need active mcu
- 执行如下命令使新版本生效,类似以下回显表示已生效。
npu-smi upgrade -a mcu -i NPU ID
Status : OK Message : The upgrade has taken effect after performed reboot successfully.
- 在生效新版本之后,等待30s,查询MCU版本号,确保升级成功。npu-smi upgrade -b mcu -i NPU ID
Version : 24.2.2
- 将获取的“Ascend-hdk-310p-mcu_24.2.2zip”包解压至本地文件夹,获取安装包。
Ascend-hdk-310p-mcu_24.2.2.hpm
- 以root用户登录服务器,执行npu-smi info -l命令查询NPU ID(推理卡的设备编号)。回显类似如下信息,NPU ID为8。
Card Count : 1 NPU ID : 8 Product Name : IT21DMPB01 Serial Number : 033EFS10M8000087 Chip Count : 4
- 在浏览器的地址栏中输入“https://iBMC管理网口IP地址”,可打开用户登录界面。
输入“用户名”和“密码”登录iBMC Web界面。
- 单击“固件升级”。
- 选择升级文件,单击“开始升级”。
- 升级成功。
- 检查升级后的版本号。
- 在iBMC Web主界面导航栏中,选择“系统管理 > 系统信息”,单击“其他”。
- 在界面左侧选择“PCIe卡”,单击PCIe卡左方的
,在打开的“扩展信息”区域查看“MCU固件版本”,如图5所示。

- MCU新版本生效后,如需再次升级,请等待5min后再次操作。
- 如果升级后不是目标版本或者升级失败,请重新进行升级。如果依然升级失败,请记录故障现象和操作步骤,并联系华为技术支持解决。