如何更改正在使用的 wifi 固件

如何更改正在使用的 wifi 固件

我的 wifi 出现了不稳定问题,显然它使用了 iwlwifi 驱动程序,人们对此有很多问题。查看 的输出modinfo iwlwifi,我看到(除其他内容外)以下列表:

filename:       /lib/modules/4.2.0-34-generic/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko
license:        GPL
author:         Copyright(c) 2003- 2015 Intel Corporation <[email protected]>
description:    Intel(R) Wireless WiFi driver for Linux
firmware:       iwlwifi-100-5.ucode
firmware:       iwlwifi-1000-5.ucode
firmware:       iwlwifi-135-6.ucode
firmware:       iwlwifi-105-6.ucode
firmware:       iwlwifi-2030-6.ucode
firmware:       iwlwifi-2000-6.ucode
firmware:       iwlwifi-5150-2.ucode
firmware:       iwlwifi-5000-5.ucode
firmware:       iwlwifi-6000g2b-6.ucode
firmware:       iwlwifi-6000g2a-5.ucode
firmware:       iwlwifi-6050-5.ucode
firmware:       iwlwifi-6000-4.ucode
firmware:       iwlwifi-7265D-12.ucode
firmware:       iwlwifi-7265-12.ucode
firmware:       iwlwifi-3160-12.ucode
firmware:       iwlwifi-7260-12.ucode
firmware:       iwlwifi-8000-12.ucode

但是,我下载了英特尔的固件,我记得它是iwlwifi-7260-13.u代码我没有在列表中看到它。

那么,我猜想这个固件未被使用。我该如何验证这一点,以及如何让它被使用?

编辑 添加更多信息。输出ls /lib/firmware/iwlwifi-7260*

/lib/firmware/iwlwifi-7260-10.ucode 
/lib/firmware/iwlwifi-7260-7.ucode /lib/firmware/iwlwifi-7260-12.ucode
/lib/firmware/iwlwifi-7260-8.ucode /lib/firmware/iwlwifi-7260-13.ucode
/lib/firmware/iwlwifi-7260-9.ucode

输出dmesg | grep iwlwifi

[    3.022242] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7260-15.ucode failed with error -2
[    3.022266] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7260-14.ucode failed with error -2
[    3.027457] iwlwifi 0000:01:00.0: loaded firmware version 25.30.13.0 op_mode iwlmvm
[    3.054662] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless N 7260, REV=0x144
[    3.054768] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[    3.055031] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[    3.564903] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[    3.565165] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[    3.756290] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[    3.756555] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled

编辑: 虽然这不是一个完美的解决方案,因为 wifi 有时仍会断线,但已接受答案的评论中建议使用固件 v 14,确实改善了 wifi 连接!现在,每当它失败时,我只需使用它sudo service network-manager restart,一切就会恢复正常!

答案1

您的固件已成功加载。您可以在此处查看

[    3.027457] iwlwifi 0000:01:00.0: loaded firmware version 25.30.13.0 op_mode iwlmvm

由于某种原因它没有显示出来,modinfo但这不会影响任何事情。可能modinfo需要更新二进制文件。

我使用的是 Ubuntu 16.04,它显示为13。您的版本较旧,显示为12

看看我的输出:

pilot6@X200MA:~$ modinfo iwlwifi | grep firmware
firmware:       iwlwifi-100-5.ucode
firmware:       iwlwifi-1000-5.ucode
firmware:       iwlwifi-135-6.ucode
firmware:       iwlwifi-105-6.ucode
firmware:       iwlwifi-2030-6.ucode
firmware:       iwlwifi-2000-6.ucode
firmware:       iwlwifi-5150-2.ucode
firmware:       iwlwifi-5000-5.ucode
firmware:       iwlwifi-6000g2b-6.ucode
firmware:       iwlwifi-6000g2a-5.ucode
firmware:       iwlwifi-6050-5.ucode
firmware:       iwlwifi-6000-4.ucode
firmware:       iwlwifi-7265D-13.ucode
firmware:       iwlwifi-7265-13.ucode
firmware:       iwlwifi-3160-13.ucode
firmware:       iwlwifi-7260-13.ucode
firmware:       iwlwifi-8000-13.ucode

[   11.883068] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-7260-17.ucode failed with error -2
[   11.949453] iwlwifi 0000:02:00.0: loaded firmware version 16.242414.0 op_mode iwlmvm
[   12.173196] iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7260, REV=0x144

答案2

对于那些使用 Intel 7260 固件时经常遇到 wifi 断开连接的情况,下面是我采取的步骤,以使断开连接的情况不那么频繁:

如上所述,固件版本 14 似乎是最稳定的。您可以从以下位置获取此文件这里

我实际上做了git clone如下固件:git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware.git

这个 repo 并不像我想象的那么大。在 linux-firmware 目录根目录中,有 7260 的所有当前版本。从克隆的 repo linux-firmware 目录(或您下载文件的位置),您可以将固件复制到本地固件库中,如下所示:

sudo cp iwlwifi-7260-14.ucode /lib/firmware/iwlwifi-7260-14.ucode将把固件版本 14 复制到您的固件目录。


你可以重启你的 wifi 以使用版本 14 的固件,或者执行以下操作它也可以用来重启你有问题的无线适配器

  1. susudo不起作用。你需要su
  2. 找出您的无线设备 # dmesg | grep iwlwifi 输出将如下所示。我们感兴趣的是设备 #,在我的情况下是:0000:08:00.0

[3775.484091] iwlwifi 0000:08:00.0: Direct firmware load for iwlwifi-7260-17.ucode failed with error -2

  1. 运行echo 1 > /sys/bus/pci/devices/0000:08:00.0/remove但是替换你的设备#我有 0000:08:00.0

    重要的执行此操作将会终止您的 wifi 连接。

  2. 执行echo 1 > /sys/bus/pci/rescan 此操作将强制您的系统查找任何可能已损坏的 PCI 设备(例如我们在步骤 3 中杀死的设备)。

  3. killall wpa_supplicant 这可能不是必要的,但就我而言是必要的。

  4. 使用系统的小程序或进程重新连接无线适配器。您可能需要在命令之间等待 10 秒左右才能使其生效。

以前,当无线网络出现故障时,我必须重启才能恢复 wifi。这些步骤非常麻烦。但总比等待重启要好。

相关内容