8

I'm trying to update the firmware for my wireless card, an Intel 8260 with the iwlwifi driver. /lib/firmware/ has the following files, among others:

iwlwifi-8000C-16.ucode    (version 16.242414.0)
iwlwifi-8000C-22.ucode    (version 22.361476.0)

(I've used the information at https://packages.debian.org/sid/firmware-iwlwifi to identify the versions of these files).

lshw shows that the current firmware is version 16.242414.0. How do I change it so that version 22.361476.0 is used?

PiotrChernin
  • 213
  • 1
  • 2
  • 7

1 Answers1

4

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.

chili555
  • 61,330