如何更改无线卡使用的固件

Pio*_*nin 8 firmware intel-wireless 16.04

我正在尝试更新我的无线卡(带有驱动程序的 Intel 8260)的固件iwlwifi/lib/firmware/其中包括以下文件:

iwlwifi-8000C-16.ucode    (version 16.242414.0)
iwlwifi-8000C-22.ucode    (version 22.361476.0)
Run Code Online (Sandbox Code Playgroud)

(我使用了https://packages.debian.org/sid/firmware-iwlwifi上的信息来识别这些文件的版本)。

lshw显示当前固件版本为16.242414.0。如何更改它以便使用版本 22.361476.0?

chi*_*555 4

请求的固件版本被写入驱动程序代码中。如您所见,如果iwlwifi您使用的特定版本需要 -16 固件。您可以加载多个不同的 ucode 文件/lib/firmware,驱动程序将调用其编写所需的版本。

注意:在某些情况下,驱动程序代码似乎需要的内容与实际加载的内容之间存在不匹配。

您可以安装更高版本的 iwlwifi;通常,这是通过安装较新的 Ubuntu 版本来完成的。在 Ubuntu 17.04 中,modinfo iwlwifi说道:

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>
Run Code Online (Sandbox Code Playgroud)

对应的linux-firmware包包含-13、-16和-21;但不是-26!

您当然可以升级固件。在任何情况下,驱动程序都会加载其写入所需的固件文件。在许多情况下,驱动程序将被编写为使用多个版本中的任何一个;例如,-6、-7、-8 或 -9。驱动程序会查找它可以找到的最新版本/lib/firmware,如果找不到,则加载下一个最新版本,依此类推。在我上面给出的“例如”中,如果最新的固件包包含-6、-7、-8、-9和-10,则不会造成任何损害。驱动程序只是加载为其编写的最新版本并忽略其余内容。-10 不会加载。

升级你的:

wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.164_all.deb
sudo dpkg -i linux*.deb
Run Code Online (Sandbox Code Playgroud)

如果您因无线问题而需要加载更新的固件,我们很乐意倾听并尽力提供帮助。