Type commands in terminal one by one:
tar -xzvf iwlwifi-9000-pu-b0-jf-b0-34.618819.0.tgz
sudo cp iwlwifi-9000-pu-b0-jf-b0-34.ucode /lib/firmware
sudo apt update
sudo apt upgrade
sudo apt install --reinstall linux-image-generic
sudo apt install -y linux-firmware
sudo apt install -y linux-image-extra-*
sudo apt install -y linux-modules-extra-$(uname -r)
sudo update-initramfs -u
sudo apt autoremove
sudo apt autoclean
Explanation from the README.iwlwifi-9000.ucode
The files iwlwifi-9000-pu-b0-jf-b0-34.ucode provided in this package
must be present on your system in order for the Intel Wireless WiFi Link
AGN driver for Linux (iwlwifi) to operate on your system.
The "-34" in the filename reflects an interface/architecture version number.
It will change only when changes in new uCode releases make the new uCode
incompatible with earlier drivers.
On adapter initialization, and at varying times during the uptime of
the adapter, the microcode is loaded into the memory on the network
adapter. The microcode provides the low level MAC features including
radio control and high precision timing events (backoff, transmit,
etc.) while also providing varying levels of packet filtering which can
be used to keep the host from having to handle packets that are not of
interest given the current operating mode of the device.
The iwlwifi driver will look for the file iwlwifi-9000-pu-b0-jf-b0-34.ucode
using the kernel's firmware_class infrastructure.
More information can be found under Documentation/firmware_class in kernel
source. In order to function correctly, you need to have this support enabled
in your kernel. When you configure the kernel, you can find this option in
the following location:
Device Drivers ->
Generic Driver Options ->
Userspace firmware loading support
You can determine if your kernel currently has firmware loader support
by looking for the CONFIG_FW_LOADER definition on your kernel's
In addition to having the firmware_class support in your kernel, you
must also have a working udev and uevent infrastructure configured.
The steps for installing and configuring udev are very
Once you have the firmware loader in place (or if you aren't sure and
you just want to try things to see if it works), you need to install
the microcode file into the appropriate location.
Where that appropriate location is depends (again) on your system
distribution. You can typically find this location by looking in the
udev scripts of your distro, the default is /lib/firmware.
Installation of the firmware is simply:
% cp iwlwifi-9000-pu-b0-jf-b0-34.ucode /lib/firmware
You can now load the driver (see the INSTALL and README.iwlwifi provided with the iwlwifi package for information on building and using that driver.)
Additional Intel Wi-Fi Linux Drivers for other people: Intel Wi-Fi drivers for Linux: