如何从 wireless.wiki.kernel.org 安装/升级到最新的 WiFi 驱动程序?

如何从 wireless.wiki.kernel.org 安装/升级到最新的 WiFi 驱动程序?

我对无线上网网络驱动程序,我想尝试将其升级到最新版本。在 AskUbuntu 上,我发现了一条建议,可以从https://wireless.wiki.kernel.org。我在那里找到了一个页面无线上网司机,地址:

https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi?s[]=iwlwifi

我的适配器是英特尔无线 3160kernel.org 页面上的“固件”部分针对不同内核的 3160 卡有多个条目,例如:

  • 3.10+ → iwlwifi-3160-ucode-22.1.7.0.tgz
  • ...
  • 4.1+ → iwlwifi-3160-ucode-二十五.30.13.0.tgz
  • 4.3+→ iwlwifi-3160-ucode-16.242414.0.tgz

我在 Ubuntu 16.04 LTS 上,检查内核版本:

$ uname -a
Linux akavel-lenovo 4.4.0-137-generic #163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

我的内核是4.4— 那么,我应该选择上述哪一种驱动程序?我的第一个想法是使用4.3+— 但后来我注意到驱动程序版本显然16.x, 尽管4.1+ 有 25.x— 那么我可以使用 4.1+ 吗?驱动程序真的更新吗,还是 ucode 数字有其他含义?还是我必须使用 4.3+?还是其他什么?我很困惑 :( 或者我应该自己编译一个驱动程序?如果是,那怎么办?更令人困惑的是,该页面还有如下部分(重点是我加的):

7260、3160、7265、7265D、3165 和 3168 支持

最新固件版本将不支持这些设备:针对 3160、7260 和 7265 发布的最新固件是-17.ucode. 错误修复将被移植到-17.ucode。

展望linux-firmware.git 存储库页面上其他地方提到的确实似乎显示iwlwifi-3160-17.ucode为数字最高的。但是当我下载 iwlwifi-3160-ucode-16.242414.0.tgz 时,它里面只有一个 iwlwifi-3160-16.ucode...

总结一下:“固件”部分无线维基百科网站让我感到困惑,我真的不知道我应该下载哪个版本?

编辑1:嗯;下载 iwlwifi-3160-ucode-25.30.13.0.tgz 并查看后,发现里面有一个 iwlwifi-3160-13.ucode 文件,所以至少似乎消除了部分混淆,因为内部排序遵循内核版本排序,我可能应该忽略 tgz 名称中奇怪的版本。仍然不确定为什么 ucode-17 被提及为“最新版本”,但在最新的 tarball 中却不存在。

答案1

首先,您在这里看到的是固件文件,而不是驱动程序。所有较新的 Intel 设备都使用相同的驱动程序,无线上网. 特定芯片(例如 3160)的特定功能由固件文件启用。

您已经链接了 kernel.org 上的固件讨论。更令人感兴趣的是英特尔(硬件制造商以及驱动程序和固件的作者)上的固件讨论:https://www.intel.com/content/www/us/en/support/articles/000005511/network-and-io/wireless-networking.html

如您所见,kernel.org 建议您设备的正确固件是 -16。英特尔表示是 -14。相比之下,modinfo 表示是 -13。事实上,驱动程序无线上网和包裹Linux 固件负载-17!

我们在这里学到了什么?我认为我们已经了解到,没有达成共识,并且没有必要也没有地方下载较新的固件文件。

根据我的经验,在过去 15 年中,我自己使用过许多英特尔设备,固件和驱动程序无线上网很少是问题所在。本着“我首先尝试自己解决”的精神,我认为解决方案可能与以下任一问题有关:

  • 节省电力;
  • 设备想要在几个同名的 SSID 中漫游;例如,eduroam;
  • 路由器设置为自动选择加密;即 WPA 或 WPA2,无线设备在切换时会出错;
  • 路由器设置为自动选择频道,并且设备在切换时也会发生故障;或者
  • 路由器设置为TKIP。

如果您希望更新实际的 iwlwifi 驱动程序,请先解决这些问题。我怀疑之后就不需要更新了。

相关内容