我遇到了 iwlwifi 问题,wifi 在重启后可以工作,但几个小时后就停止工作了,如果不重启,我就无法让它再次工作。我进行了广泛的搜索,并尝试了网络上的各种答案。在我之前的笔记本电脑上,对我有用的解决方案是移除并重新插入 iwlwifi 模块:
$ sudo modprobe -rv iwlwifi
remove (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) && /sbin/modprobe -r mac80211
rmmod mac80211
rmmod cfg80211
等待一会儿然后:
$ sudo modprobe -v iwlwifi
insmod /lib/modules/4.2.0-42-generic/kernel/net/wireless/cfg80211.ko
insmod /lib/modules/4.2.0-42-generic/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko
但这在这台笔记本电脑(HP ZBook Studio G3,运行 Ubuntu 14.04.5 LTS)上不起作用。尝试了各种解决方案后,似乎 iwlfifi 在我使用时无法正常启动modprobe iwlwifi
。具体来说,重启后,dmesg
显示以下内容:
$ sudo dmesg | grep iwlwifi
[ 30.556282] iwlwifi 0000:02:00.0: enabling device (0000 -> 0002)
[ 30.561394] iwlwifi 0000:02:00.0: Unsupported splx structure
[ 30.568246] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000C-15.ucode failed with error -2
[ 30.568336] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000C-14.ucode failed with error -2
[ 30.572378] iwlwifi 0000:02:00.0: loaded firmware version 25.30.13.0 op_mode iwlmvm
[ 30.608368] iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 8260, REV=0x208
[ 30.608652] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled
[ 30.609584] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled
[ 41.867030] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled
[ 41.867439] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled
[ 42.010695] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled
[ 42.010990] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled
但之后sudo modprobe -rv iwlwifi && sleep 20 && sudo modprobe -v iwlwifi
,dmesg
显示:
[26184.909877] [<ffffffffc0b16f5a>] ? iwl_read32+0x1a/0x90 [iwlwifi]
[26184.909884] [<ffffffffc0b19bde>] iwl_trans_pcie_grab_nic_access+0x10e/0x1e0 [iwlwifi]
[26184.909892] [<ffffffffc0b1cb5d>] iwl_trans_pcie_alloc+0x4dd/0x690 [iwlwifi]
[26184.909899] [<ffffffffc0b10291>] iwl_pci_probe+0x21/0x2a0 [iwlwifi]
[26184.909928] [<ffffffffc0b10768>] iwl_pci_register_driver+0x28/0x50 [iwlwifi]
[26184.909935] [<ffffffffc08f2085>] iwl_drv_init+0x85/0x8e [iwlwifi]
[26184.910708] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000D-15.ucode failed with error -2
[26184.910718] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000D-14.ucode failed with error -2
[26184.910726] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000D-13.ucode failed with error -2
[26184.910733] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000D-12.ucode failed with error -2
[26184.910734] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-8000D-12.ucode' failed.
[26184.910741] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000D-11.ucode failed with error -2
[26184.910742] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-8000D-11.ucode' failed.
[26184.910749] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8000D-10.ucode failed with error -2
[26184.910750] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-8000D-10.ucode' failed.
[26184.910750] iwlwifi 0000:02:00.0: no suitable firmware found!
[26184.910791] iwlwifi 0000:02:00.0: Unsupported splx structure
我觉得 iwlwifi 在重启时可以正常工作,但在 时失败modprobe
。其他一些可能有帮助的信息:
$ uname -a
Linux {hostname removed} 4.2.0-42-generic #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ modinfo iwlwifi
filename: /lib/modules/4.2.0-42-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
$ cd /lib/firmware/; ls -l iwl*
-rw-r--r-- 1 root root 337520 Apr 25 05:55 iwlwifi-1000-5.ucode
-rw-r--r-- 1 root root 337572 Apr 25 05:55 iwlwifi-100-5.ucode
-rw-r--r-- 1 root root 689680 Apr 25 05:55 iwlwifi-105-6.ucode
-rw-r--r-- 1 root root 701228 Apr 25 05:55 iwlwifi-135-6.ucode
-rw-r--r-- 1 root root 695876 Apr 25 05:55 iwlwifi-2000-6.ucode
-rw-r--r-- 1 root root 707392 Apr 25 05:55 iwlwifi-2030-6.ucode
-rw-r--r-- 1 root root 609892 Apr 25 05:55 iwlwifi-3160-10.ucode
-rw-r--r-- 1 root root 683996 Apr 25 05:55 iwlwifi-3160-12.ucode
-rw-r--r-- 1 root root 688616 Apr 25 05:55 iwlwifi-3160-13.ucode
-rw-r--r-- 1 root root 918212 Jul 12 12:33 iwlwifi-3160-16.ucode
-rw-r--r-- 1 root root 918268 Mar 15 11:20 iwlwifi-3160-17.ucode
-rw-r--r-- 1 root root 670484 Apr 25 05:55 iwlwifi-3160-7.ucode
-rw-r--r-- 1 root root 667284 Apr 25 05:55 iwlwifi-3160-8.ucode
-rw-r--r-- 1 root root 669872 Apr 25 05:55 iwlwifi-3160-9.ucode
-rw-r--r-- 1 root root 150100 Apr 25 05:55 iwlwifi-3945-2.ucode
-rw-r--r-- 1 root root 187972 Apr 25 05:55 iwlwifi-4965-2.ucode
-rw-r--r-- 1 root root 340696 Jul 21 07:54 iwlwifi-5000-5.ucode
-rw-r--r-- 1 root root 337400 Apr 25 05:55 iwlwifi-5150-2.ucode
-rw-r--r-- 1 root root 454608 Apr 25 05:55 iwlwifi-6000-4.ucode
-rw-r--r-- 1 root root 444128 Apr 25 05:55 iwlwifi-6000g2a-5.ucode
-rw-r--r-- 1 root root 677296 Apr 25 05:55 iwlwifi-6000g2a-6.ucode
-rw-r--r-- 1 root root 679436 Apr 25 05:55 iwlwifi-6000g2b-6.ucode
-rw-r--r-- 1 root root 469780 Apr 25 05:55 iwlwifi-6050-5.ucode
-rw-r--r-- 1 root root 672352 Apr 25 05:55 iwlwifi-7260-10.ucode
-rw-r--r-- 1 root root 782300 Apr 25 05:55 iwlwifi-7260-12.ucode
-rw-r--r-- 1 root root 786920 Apr 25 05:55 iwlwifi-7260-13.ucode
-rw-r--r-- 1 root root 1049284 Jul 12 12:33 iwlwifi-7260-16.ucode
-rw-r--r-- 1 root root 1049340 Mar 15 11:20 iwlwifi-7260-17.ucode
-rw-r--r-- 1 root root 683236 Apr 25 05:55 iwlwifi-7260-7.ucode
-rw-r--r-- 1 root root 679780 Apr 25 05:55 iwlwifi-7260-8.ucode
-rw-r--r-- 1 root root 680508 Apr 25 05:55 iwlwifi-7260-9.ucode
-rw-r--r-- 1 root root 736844 Apr 25 05:55 iwlwifi-7265-10.ucode
-rw-r--r-- 1 root root 880604 Apr 25 05:55 iwlwifi-7265-12.ucode
-rw-r--r-- 1 root root 885224 Apr 25 05:55 iwlwifi-7265-13.ucode
-rw-r--r-- 1 root root 1180356 Jul 12 12:33 iwlwifi-7265-16.ucode
-rw-r--r-- 1 root root 1180412 Mar 15 11:20 iwlwifi-7265-17.ucode
-rw-r--r-- 1 root root 690452 Apr 25 05:55 iwlwifi-7265-8.ucode
-rw-r--r-- 1 root root 697828 Apr 25 05:55 iwlwifi-7265-9.ucode
lrwxrwxrwx 1 root root 21 Jul 12 12:33 iwlwifi-7265D-10.ucode -> iwlwifi-7265-10.ucode
-rw-r--r-- 1 root root 1002800 Apr 25 05:55 iwlwifi-7265D-12.ucode
-rw-r--r-- 1 root root 1008692 Apr 25 05:55 iwlwifi-7265D-13.ucode
-rw-r--r-- 1 root root 1384500 Jul 12 12:33 iwlwifi-7265D-16.ucode
-rw-r--r-- 1 root root 1383020 Mar 15 11:20 iwlwifi-7265D-17.ucode
-rw-r--r-- 1 root root 1745176 Apr 25 05:55 iwlwifi-8000C-13.ucode
-rw-r--r-- 1 root root 2351636 Jul 12 12:33 iwlwifi-8000C-16.ucode
-rw-r--r-- 1 root root 2390004 Mar 15 11:20 iwlwifi-8000C-17.ucode
谢谢,这让我疯了!
答案1
我找到了这个错误和一个解决方法。它似乎是这个错误,可以按照这个错误,具体来说,以下对我有用:
# Kill wpa_supplicant
sudo killall wpa_supplicant
# Find the network PCI device
sudo lspci -vv | grep -i -A 50 network
# Remove it
sudo sh -c "echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/remove"
# Rescan PCI
sudo sh -c "echo 1 > /sys/bus/pci/rescan"
# Wait and Wifi should reconnect