Driver and Firmware Installation
Installation Description
The driver and firmware must be installed in a specified sequence. For initial installation, install the driver and then firmware; for overwrite installation or upgrade, install the firmware and then driver.
- Initial installation: In scenarios where no driver is installed on a hardware device before delivery, or the installed driver and firmware on the hardware device have been uninstalled, you need to install the driver and then firmware.
- Overwrite installation: In scenarios where the driver and firmware have been installed on a hardware device and you need to install them again, install the firmware and then driver.
Checking the OS and Kernel Versions
Before installing the driver, check the onsite OS and kernel versions to determine whether to install dependencies required for driver build.
- Run the uname -m && cat /etc/*release command to query the OS architecture and version of the server. Information similar to the following is displayed:
aarch64 CentOS Linux release 7.6.1810 (AltArch) NAME="CentOS Linux" VERSION="7 (AltArch)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (AltArch)"
- Run the uname -r command to check the OS and kernel versions. Information similar to the following is displayed:
4.14.0-115.el7a.0.1.aarch64
- Table 1, Table 2, Table 3, Table 4, and Table 5 list the OS and kernel versions matching the drivers released by Huawei. Compare the OS and kernel versions queried in 1 and 2 with them. If the OS and kernel versions correspond to the binary file installation mode, install the driver and firmware by following instructions in Installing the Driver and Firmware.
Note: If the OS and kernel versions correspond to the installation from source code mode, or the kernel version does not correspond to the binary file installation mode, refer to Installing Dependencies Required for Compiling Driver Source Code to install the dependencies required for driver source code compilation and then refer to Installing the Driver and Firmware to install the driver and firmware.
Table 1 OSs required by the Atlas 300I Pro inference card driver Host OS Version
Host OS Architecture
Default Host OS Kernel Version in a Software Package
GCC Version
Installation Mode
CentOS 7.6
x86_64
3.10.0-957.el7.x86_64
4.8.5
Direct installation using a binary file
CentOS 7.6
AArch64
4.14.0-115.el7a.0.1.aarch64
4.8.5
Ubuntu 18.04.1
AArch64
4.15.0-29-generic
7.5.0
Ubuntu 20.04
AArch64
5.4.0-26-generic
N/A
Ubuntu 20.04
x86_64
5.4.0-26-generic
N/A
EulerOS 2.10
AArch64
4.19.90-vhulk2111.1.0.h963.eulerosv2r10.aarch64
7.3.0
EulerOS 2.10
x86_64
4.18.0-147.5.2.7.h842.eulerosv2r10.x86_64
7.3.0
CentOS 7.8
x86_64
3.10.0-1127.el7.x86_64
4.8.5
Installation from source code
SUSE 12Sp5
x86_64
4.12.14-120-default
4.8.5
Ubuntu 18.04.5
x86_64
4.15.0-112-generic
7.5.0
Ubuntu 18.04.5
AArch64
4.15.0-112-generic
7.5.0
Ubuntu 20.04
x86_64
5.4.0-26-generic
9.3.0
openEuler 20.03
x86_64
4.19.90-2003.4.0.0036.oe1.x86_64
7.3.0
openEuler 20.03
AArch64
4.19.90-2003.4.0.0036.oe1.aarch64
7.3.0
openEuler 22.03
x86_64
5.10.0-60.18.0.50.oe2203.x86_64
10.3.1
openEuler 22.03
AArch64
5.10.0-60.18.0.50.oe2203.aarch64
10.3.1
Kylin V10 SP1
x86_64
4.19.90-17.ky10.x86_64
7.3.0
Kylin V10 SP1
AArch64
4.19.90-17.ky10.aarch64
7.3.0
Linx 6.0.9
AArch64
4.19.0-0.bpo.1-linx-security-arm64
6.3.0
Linx 6.0.100
AArch64
4.19.0-11-linx-security-arm64
8.3.0
Table 2 OSs required by the Atlas 300V Pro video analysis card driver Host OS Version
Host OS Architecture
Default Host OS Kernel Version in a Software Package
GCC Version
Installation Mode
CentOS 7.6
AArch64
4.14.0-115.el7a.0.1.aarch64
4.8.5
Direct installation using a binary file
CentOS 7.6
x86_64
3.10.0-957.el7.x86_64
4.8.5
Ubuntu 18.04.1
AArch64
4.15.0-29-generic
7.5.0
Ubuntu 20.04
AArch64
5.4.0-26-generic
N/A
Ubuntu 20.04
x86_64
5.4.0-26-generic
NA
EulerOS 2.10
AArch64
4.19.90-vhulk2111.1.0.h963.eulerosv2r10.aarch64
7.3.0
EulerOS 2.10
x86_64
4.18.0-147.5.2.7.h842.eulerosv2r10.x86_64
7.3.0
CentOS 7.8
x86_64
3.10.0-1127.el7.x86_64
4.8.5
Installation from source code
SUSE 12Sp5
x86_64
4.12.14-120-default
4.8.5
Ubuntu 18.0.4.5
AArch64
4.15.0-112-generic
7.5.0
Ubuntu 18.0.4.5
x86_64
4.15.0-112-generic
7.5.0
Ubuntu 20.04
x86_64
5.4.0-26-generic
9.3.0
openEuler 20.03
AArch64
4.19.90-2003.4.0.0036.oe1.aarch64
7.3.0
openEuler 20.03
x86_64
4.19.90-2003.4.0.0036.oe1.x86_64
7.3.0
openEuler 22.03
AArch64
5.10.0-60.18.0.50.oe2203.aarch64
10.3.1
openEuler 22.03
x86_64
5.10.0-60.18.0.50.oe2203.x86_64
10.3.1
Kylin V10 SP1
x86_64
4.19.90-17.ky10.x86_64
7.3.0
Kylin V10 SP1
AArch64
4.19.90-17.ky10.aarch64
7.3.0
Linx 6.0.9
AArch64
4.19.0-0.bpo.1-linx-security-arm64
6.3.0
Linx 6.0.100
AArch64
4.19.0-11-linx-security-arm64
8.3.0
Table 3 OSs required by the Atlas 300I Duo inference card driver Host OS Version
OS Architecture
Default Host OS Kernel Version in a Software Package
GCC Version
Installation Mode
Ubuntu 20.04
x86_64
5.4.0-26-generic
9.3.0
Installation from source code
CentOS 7.8
x86_64
3.10.0-1127.el7.x86_64
4.8.5
Table 4 OSs required by the driver of Atlas 300I inference card (model 3000) Host OS Version
Host OS Architecture
Default Host OS Kernel Version in a Software Package
GCC Version
Installation Mode
CentOS 7.6
AArch64
4.14.0-115.el7a.0.1.aarch64
7.3.0
Direct installation using a binary file
Ubuntu 18.04.1
AArch64
4.15.0-29-generic
7.5.0
Ubuntu 20.04
AArch64
5.4.0-26-generic
9.3.0
EulerOS 2.8
AArch64
4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64
7.3.0
EulerOS-virtual 2.9
AArch64
4.19.90-vhulk2009.2.0.h284.eulerosv2r9.aarch64
7.3.0
EulerOS Virtual V200R009C10
AArch64
4.19.90-vhulk2103.1.0.h551.eulerosv2r9.aarch64
7.3.0
EulerOS 2.10
AArch64
4.19.90-vhulk2111.1.0.h963.eulerosv2r10.aarch64
7.3.0
EulerOS-Virtual-V200R010C00SPC500B020-aarch64
AArch64
4.19.90-vhulk2111.1.0.h996.eulerosv2r10.aarch64
7.3.0
UOS 20
AArch64
4.19.0-arm64-server
8.3.0
Installation from source code
Kylin V10
AArch64
4.19.90-11.ky10.aarch64
4.8.5
Kylin V10 SP1
AArch64
4.19.90-17.ky10.aarch64
7.3.0
NeoKylin OS 7.6
AArch64
4.14.0-115.5.1.el7a.06.aarch64
4.8.5
Tlinux 2.4
AArch64
4.14.105-19-0001
8.2.1
CentOS 8.2
AArch64
4.18.0-193.el8.aarch64
8.3.1
Linx 6.0
AArch64
4.19.0-0.bpo.1-linx-security-arm64
6.3.0
SUSE 12Sp5
AArch64
4.12.14-120-default
4.8.5
Ubuntu 18.04.5
AArch64
4.15.0-112-generic
7.5.0
openEuler 20.03
AArch64
4.19.90-2003.4.0.0036.oe1.aarch64
7.3.0
EulerOS 2.9
AArch64
4.19.90-vhulk2009.2.0.h269.eulerosv2r9.aarch64
7.3.0
Table 5 OSs required by the Atlas 300I inference card (model 3010) driver Host OS Version
OS Architecture
Default Host OS Kernel Version in a Software Package
GCC Version
Installation Mode
CentOS 7.6
x86_64
3.10.0-957.el7.x86_64
4.8.5
Installation using a binary file
CentOS 7.6
AArch64
4.14.0-115.el7a.0.1.aarch64
4.8.5
Ubuntu 18.04.1
AArch64
4.15.0-29-generic
7.5.0
Ubuntu 20.04
x86_64
5.4.0-26-generic
9.3.0
Ubuntu 20.04
AArch64
5.4.0-26-generic
9.3.0
UVP-KVM-3.0.RC6
x86_64
3.10.0-862.14.1.6_115.x86_64
4.8.5
UVP.RC2
x86_64
3.10.0-862.14.1.6_67.x86_64
N/A
UVP-KVM-5.0.RC5
x86_64
4.18.0-147.5.1.6.h529_193.x86_64
7.3.0
UVP-KVM-5.1.RC2.B030_FSO
x86_64
4.18.0-147.5.2.5.h781_257.x86_64
7.3.0
EulerOS 2.8
AArch64
4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64
7.3.0
EulerOS 2.9
AArch64
4.19.90-vhulk2009.2.0.h269.eulerosv2r9.aarch64
7.3.0
EulerOS 2.10
AArch64
4.19.90-vhulk2111.1.0.h963.eulerosv2r10.aarch64
7.3.0
BC-Linux 7.6
x86_64
3.10.0-957.el7.x86_64
4.8.5
Installation from source code
Ubuntu 16.04.3
x86_64
4.4.0-87-generic
5.4.0
Ubuntu 18.04.1
x86_64
4.15.0-29-generic
7.5.0
Ubuntu 18.04.5
x86_64
4.15.0-112-generic
7.5.0
Ubuntu 18.04.5
AArch64
4.15.0-112-generic
7.5.0
openEuler 20.03
x86_64
4.19.90-2003.4.0.0036.oe1.x86_64
7.3.0
openEuler 20.03
AArch64
4.19.90-2003.4.0.0036.oe1.aarch64
7.3.0
openEuler 20.03 LTS SP1
x86_64
4.19.90-2012.5.0.0054.oe1.x86_64
7.3.0
SLES 12 SP4
x86_64
4.12.14-94.41-default
4.8.5
SLES 12 SP5
x86_64
4.12.14-120-default
4.8.5
SLES 12 SP5
AArch64
4.12.14-120-default
4.8.5
CentOS 7.4
x86_64
3.10.0-693.el7.x86_64
4.8.5
CentOS 8.2
x86_64
4.18.0-193.el8.x86_64
8.3.1
CentOS 8.2
AArch64
4.18.0-193.e18.aarch64
8.3.1
NeoKylin OS 7.6
AArch64
4.14.0-115.5.1.el7a.06.aarch64
4.8.5
Kylin V10 SP1
x86_64
4.19.90-17.ky10.x86_64
7.3.0
Kylin V10 SP1
AArch64
4.19.90-17.ky10.aarch64
7.3.0
UOS 20
AArch64
4.19.0-arm64-server
8.3.0
Tlinux 2.4
AArch64
4.14.105-19-0001
8.2.1
EulerOS 2.5
x86_64
3.10.0-862.14.1.5.h359.eulerosv2r7.x86_64
4.8.5
EulerOS 2.9
x86_64
4.18.0-147.5.1.0.h208.eulerosv2r9.x86_64
7.3.0
Downloading the Driver and Firmware
The Ascend hardware can be used only after the corresponding Ascend NPU driver and firmware are installed. Table 6 describes how to download the Ascend NPU driver and firmware.
Installing the Driver and Firmware
- Log in to the server as the root user.
- Upload the driver and firmware packages to any directory on the server, for example, /home.
- Go to the directory where the driver and firmware packages are stored and run the following commands to add the execute permission on the driver and firmware packages:
chmod +x driver/firmware package name.run
- Run the following command to install the driver. The default installation path is /usr/local/Ascend.
./{product}-npu-driver_{version}_linux-{arch}.run --full --install-for-all
{product} indicates the product model, {version} indicates the software package version, and {arch} indicates the architecture. Replace them with the actual ones.
If the following information is displayed, the driver is successfully installed:Driver package installed successfully!
- Run the npu-smi info command to check whether the driver is successfully loaded.
If information similar to the following is displayed, the loading is successful: Otherwise, the loading fails. Contact Huawei technical support.
+----------------------------------------------------------------------------------------------------+ | npu-smi 21.0.4 Version: 21.0.4.B030 | +-------------------+-----------------+--------------------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) | | Chip Device | Bus-Id | AICore(%) Memory-Usage(MB) | +===================+=================+==============================================================+ | 4 710 | OK | 13.6 43 0 / 970 | | 0 0 | 0000:81:00.0 | 0 861 / 21534 | +===================+=================+==============================================================+
- Run the following command to install the firmware:
./{product}-npu-firmware_{version}.run --full
If the following information is displayed, the firmware is successfully installed:
Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect
- Run the reboot command to restart the system.
- Run the following command to check the processor firmware version. If the version is the same as the target version, the installation is successful.
/usr/local/Ascend/driver/tools/upgrade-tool --device_index -1 --component -1 --version
If information similar to the following is displayed and the version is the same as the target version, the installation is successful:
{ Get component version(1.82.22.1.211) succeed for deviceId(0), componentType(11). {"device_id":0, "component":hboot1a, "version":1.82.22.1.211} Get component version(1.82.22.1.211) succeed for deviceId(0), componentType(12). {"device_id":0, "component":hboot1b, "version":1.82.22.1.211} Get component version(1.82.22.1.211) succeed for deviceId(0), componentType(18). {"device_id":0, "component":hlink, "version":1.82.22.1.211} }