如何加载 iwlwifi 驱动程序?

我的Linux系统无法检测到我的无线驱动程序,所以我必须手动加载它。
我知道我的驱动程序是什么,并尝试了这种方法:

Installation of the firmware is simply:

 % cp iwlwifi-7260-14.ucode /lib/firmware

You can now load the driver!

所以我已经成功地将驱动程序连续复制到正确的位置/lib/firmware,但是我不知道加载驱动程序是什么意思。我以为只需将驱动程序复制到/lib/firmware中就可以了,但是不行,根据说明书上写的,它应该被加载到内核中。 但是我应该如何加载这个驱动程序,我应该做些什么来加载它?
这是我做的事情:
root@gNewSense:/home/georgi# modprobe -r iwlwifi
root@gNewSense:/home/georgi# modprobe iwlwifi
root@gNewSense:/home/georgi# lsmod | grep iwl
iwlwifi               162535  0 
mac80211              192806  1 iwlwifi
cfg80211              137243  2 mac80211,iwlwifi

$ lspci -nnk | grep 0280 -A3
08:00.0 Network controller [0280]: Intel Corporation Device [8086:08b2] (rev 83)
    Subsystem: Intel Corporation Device [8086:c270]
09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 10)
    Subsystem: Lenovo Device [17aa:380d]

$ dmesg | grep iwl

$ rfkill list all
0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
...

希望这个输出中有一些线索!
不好意思,一开始没有提到,但是GNU系统是gNewSense(它是基于Debian而不是Ubuntu)。无论如何,在重新启动后给我这个:
$ dmesg | grep iwl

$ uname -r
3.2.0-4gnewsense1-amd64

此外,在 gNewSense 页面上的官方驱动程序信息是: 它不能使用免费驱动程序工作


请重新启动并编辑以显示:dmesg | grep iwl,还有:uname -r - chili555
1您的设备在内核版本3.10及更高版本之前不受支持。您当前运行的是3.2版本,并且未运行Ubuntu操作系统。很抱歉,我们无法提供进一步的帮助。请访问https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi了解更多信息。 - chili555
1也许只是看起来缺少linux-firmware软件包?尝试执行以下命令:`apt install linux-firmware`然后重新启动。这对我有用。参考链接:https://askubuntu.com/a/1064139/34298 - rubo77
1如果您在Windows 10上进行双系统启动,可能会导致无线网卡被Windows阻塞。为了避免这种情况发生,在Windows的命令提示符中使用"shutdown /s /f /t 0"命令(我创建了一个包含此内容的.bat文件,只需双击它即可关机)。我知道这听起来很荒谬,但只要我完全关机,Ubuntu下就能正常工作。 - JoeFox
2个回答

您可以使用以下方式加载驱动程序:
sudo modprobe iwlwifi

驱动程序iwlwifi和所需的固件在所有最新的Ubuntu版本中都是默认包含的。如果没有加载,那么可能是其他问题。
你的设备真的是iwlwifi吗?请检查:
lspci -nnk | grep 0280 -A3

开关或键盘组合设置为启用或禁用无线功能了吗?请检查:
rfkill list all

日志中有没有任何线索?
dmesg | grep iwl

在我们了解更多情况之后,我会编辑这个问题并添加额外的故障排除步骤。

最简单的方法就是重新启动。这样可以确保所有模块在启动时都被干净地加载。 另一种选择是手动移除它:
sudo modprobe -r iwlwifi

重新插入它。
sudo modprobe iwlwifi

但是iwlwifi通常有一些依赖于它的模块,所以如果sudo modprobe -r iwlwifi返回任何错误,重新启动可能会更容易。
要查看依赖关系,请运行lsmod | grep iwl
[~]$ lsmod | grep iwl
iwlmvm                364544  0 
mac80211              782336  1 iwlmvm
iwlwifi               180224  1 iwlmvm
cfg80211              610304  3 iwlwifi,mac80211,iwlmvm
[~]$ 

在这种情况下,iwlmvm依赖于iwlwifi,因此它也必须被移除。