# Install Intel® NPU firmware ## Introduction Intel® NPU device is an AI inference accelerator integrated with Intel client CPUs, starting from Intel® Core™ Ultra generation of CPUs (formerly known as Meteor Lake). It enables energy-efficient execution of artificial neural network tasks. To make sure that your system has an NPU available, please follow the steps in the [dedicated guide on how to do so](https://www.intel.com/content/www/us/en/support/articles/000097597/processors.html). The full device name is Neural Processing Unit, but the Linux kernel driver uses the old name - Versatile Processing Unit (VPU). ## Installation 1. Remove old packages. ```bash sudo dpkg --purge --force-remove-reinstreq intel-driver-compiler-npu intel-fw-npu intel-level-zero-npu ``` 2. Download all deb packages. ```bash wget https://github.com/intel/linux-npu-driver/releases/download/v1.13.0/intel-driver-compiler-npu_1.13.0.20250131-13074932693_ubuntu22.04_amd64.deb --no-check-certificate wget https://github.com/intel/linux-npu-driver/releases/download/v1.13.0/intel-fw-npu_1.13.0.20250131-13074932693_ubuntu22.04_amd64.deb --no-check-certificate wget https://github.com/intel/linux-npu-driver/releases/download/v1.13.0/intel-level-zero-npu_1.13.0.20250131-13074932693_ubuntu22.04_amd64.deb --no-check-certificate ``` 3. Install `libtbb12` which is a dependency for `intel-driver-compiler-npu`. ```bash sudo apt update sudo apt install libtbb12 ``` 4. Install all packages. ```bash sudo dpkg -i *.deb ``` 5. Install Level Zero if it is not in the system. ```bash # Check if Level Zero is installed dpkg -l level-zero ``` Download and install package if Level Zero is missing. ```bash wget https://github.com/oneapi-src/level-zero/releases/download/v1.18.5/level-zero_1.18.5+u22.04_amd64.deb --no-check-certificate sudo dpkg -i level-zero*.deb ``` 6. Reboot. ```bash reboot # if everything works, we should see /dev/accel/accel0 device ls /dev/accel/accel0 /dev/accel/accel0 # to receive intel_vpu state dmesg | grep intel_vpu ``` 7. User access to the device. As a root user, this step can be skipped. The new device `/dev/accel/accel0` requires manual setting of permissions access. The `accel` devices should be in the "render" group in Ubuntu: ```bash # set the render group for accel device sudo chown root:render /dev/accel/accel0 sudo chmod g+rw /dev/accel/accel0 # add user to the render group sudo usermod -a -G render # user needs to restart the session to use the new group (log out and log in) ``` The above steps must be repeated each time the module is reloaded or on every reboot. To avoid manual setup of the group for `accel` device, the udev rules can be used: ```bash sudo bash -c "echo 'SUBSYSTEM==\"accel\", KERNEL==\"accel*\", GROUP=\"render\", MODE=\"0660\"' > /etc/udev/rules.d/10-intel-vpu.rules" sudo udevadm control --reload-rules sudo udevadm trigger --subsystem-match=accel ``` > **Tip:** If the NPU is not visible, check the access to the device with the following command: > > ```console > ls -lah /dev/accel/accel0 > crw-rw---- 1 root render 261, 0 Mar 22 13:22 /dev/accel/accel0 > ``` > > If render is missing, or `crw-rw----` is not set, please repeat the steps to set the access to the device.