The firmware version that is requested is written into the driver code. As you can see, the particular version if iwlwifi
that you are using requests -16 firmware. You can load several different ucode files into /lib/firmware
and the driver will call the version it was written to require.
NOTE: In some cases, there is a mismatch between what the driver code seems to require and what actually loads.
You could install a later version of iwlwifi; generally, this is done by installing a newer Ubuntu version. In Ubuntu 17.04, modinfo iwlwifi
says:
filename: /lib/modules/4.10.0-22-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
license: GPL
author: Copyright(c) 2003- 2015 Intel Corporation <linuxwifi@intel.com>
description: Intel(R) Wireless WiFi driver for Linux
<snip>
firmware: iwlwifi-8000C-26.ucode
<snip>
The corresponding linux-firmware
package contains -13, -16 and -21; but not -26!
You certainly can upgrade your firmware. In any case, the driver will load the firmware file it is written to require. In many cases, the driver will be written to use any of several versions; for example, -6, -7, -8 or -9. The driver looks for the newest it can find in /lib/firmware
and, if it fails to find it, loads the next newest and so on. In the 'for instance' I give above, if the newest firmware package contains -6, -7, -8, -9 and -10, no harm will be done. The driver simply loads the newest and latest it is written for and ignores the rest. -10 will not load.
To upgrade yours:
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.164_all.deb
sudo dpkg -i linux*.deb
If your desire to load newer firmware is motivated by a wireless issue, we'd love to hear it and try to help.
sudo apt-get purge iwlwifi
then install the version you want either with apt-get or from .deb – Panther Jun 05 '17 at 14:38iwlwifi
isn't the name of a package that can be installed or purged. It is the name of the driver. – chili555 Jun 08 '17 at 23:45