我正在尝试更新我的无线网卡(Intel 8260)的固件及其iwlwifi
驱动程序。 /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?
答案1
请求的固件版本写入驱动程序代码。如您所见,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 <[email protected]>
description: Intel(R) Wireless WiFi driver for Linux
<snip>
firmware: iwlwifi-8000C-26.ucode
<snip>
对应的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
如果您因为无线问题而想要加载较新的固件,我们很乐意听到您的意见并尽力提供帮助。