如何更改用于无线网卡的固件

我正在尝试更新我的无线网卡的固件,一个带有iwlwifi驱动程序的Intel 8260。 /lib/firmware/包含以下文件:

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

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

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

请求的固件版本将写入驱动程序代码中。 正如您所看到的,特定版本,如果您正在使用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  description: Intel(R) Wireless WiFi driver for Linux  firmware: iwlwifi-8000C-26.ucode  

相应的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 

如果您希望加载更新的固件是出于无线问题,我们很乐意听到它并尝试提供帮助。