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.

Check the OS and kernel versions of the onsite server and compare them with those required by Huawei.
  1. 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)"
  2. 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
  3. 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.

Table 6 Software download

Hardware Model

Software Type

Package Name and Download Link

Atlas 300I Pro inference card

Ascend NPU Driver

Click the software package link, choose AI Accelerator Card > Atlas 300I Pro inference card, select the corresponding CANN, driver, and firmware versions, and download Atlas-300i-pro-npu-driver_{version}_linux-aarch64.run.

Ascend NPU Firmware

Click the software package link, choose AI Accelerator Card > Atlas 300I Pro inference card, select the corresponding CANN, driver, and firmware versions, and download Atlas-300i-pro-npu-firmware_{version}.run.

Atlas 300V Pro video analysis card

Ascend NPU Driver

Click the software package link, choose AI Accelerator Card > Atlas 300V Pro video analysis card, select the corresponding CANN, driver, and firmware versions, and download Atlas-300v-pro-npu-driver_{version}_linux-aarch64.run.

Ascend NPU Firmware

Click the software package link, choose AI Accelerator Card > Atlas 300V Pro video analysis card, select the corresponding CANN, driver, and firmware versions, and download Atlas-300v-pro-npu-firmware_{version}.run.

Atlas 300I Duo inference card

Ascend NPU Driver

Click the software package link, choose AI Accelerator Card > Atlas 300I Duo inference card, select the corresponding CANN, driver, and firmware versions, and download Atlas-300i-duo-npu-driver_{version}_linux-x86_64.run.

Ascend NPU Firmware

Click the software package link, choose AI Accelerator Card > Atlas 300I Duo inference card, select the corresponding CANN, driver, and firmware versions, and download Atlas-300i-duo-npu-firmware_{version}.run.

Atlas 300I inference card (model 3000)

Ascend NPU Driver

Click the software package link, choose AI Accelerator Card > Atlas 300I inference card (model 3000), select the corresponding CANN, driver, and firmware versions, and download A300-3000-npu-driver_{version}_linux-aarch64.run.

Ascend NPU Firmware

Click the software package link, choose AI Accelerator Card > Atlas 300I inference card (model 3000), select the corresponding CANN, driver, and firmware versions, and download A300-3000-npu-firmware_{version}.run.

Atlas 300I inference card (model 3010)

Ascend NPU Driver

Click the software package link, choose AI Accelerator Card > Atlas 300I inference card (model 3010), select the corresponding CANN, driver, and firmware versions, and download A300-3010-npu-driver_{version}_linux-x86_64.run.

Ascend NPU Firmware

Click the software package link, choose AI Accelerator Card > Atlas 300I inference card (model 3010), select the corresponding CANN, driver, and firmware versions, and download A300-3010-npu-firmware_{version}.run.

Installing the Driver and Firmware

  1. Log in to the server as the root user.
  2. Upload the driver and firmware packages to any directory on the server, for example, /home.
  3. 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

  4. 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!
  5. 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                                |
    +===================+=================+==============================================================+
  6. 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 
  7. Run the reboot command to restart the system.
  8. 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}
    }