我正在运行 Ubuntu 20.04,它带有 Ubuntu Studio 的低延迟内核。(具体来说,我实际上安装了 Kubuntu 20.04,然后安装了 Ubuntu Studio,并以这种方式获得了低延迟内核;我怀疑这些都不重要,只是想彻底一点。)
我有英特尔 7260.HMW 双频无线 AC 7260 网络适配器 PCI Express 半迷你卡 802.11 b/a/g/n/ac - 这是我在亚马逊上购买的特定卡的链接:https://www.amazon.com/gp/product/B00MV3N7UO/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1
我遇到的问题是,每隔几个小时我的 wifi 就会断开/停用,除了重新启动系统,我没有其他方法可以重新启动它。登录/退出不起作用。我尝试了各种终端命令来重新启动 NetworkManager、重新加载内核模块等,但都不起作用。
稍微积极的一点是,每当我断开连接时,我都可以插入一个 USB 无线适配器,并且几乎立即再次通过它连接到互联网,但在重新启动系统之前,我仍然无法使用我的内部无线网卡。
在对 NetworkManager 进行了大量调整之后(并添加了 Gnome NetworkManager,它似乎比默认的 KDE/Plasma 版本要好一些),我注意到的另一件事是,在 wifi 完全无响应之前,NetworkManager 中还会出现其他较小的问题。首先,除了我连接的网络之外,所有网络都会从列表中消失。之后,某些选项会变灰,例如“连接到隐藏的 wifi 网络”、“启用网络”、“启用 wifi”;不确定其他选项。不久之后,wifi 就会完全无响应。系统甚至无法检测到我安装了 wifi 设备。
我还注意到,如果我nmcli device wifi list
在 NetworkManager gui 中未连接的网络消失时运行,它们通常会重新出现,这似乎可以避免 wifi 关闭的问题——但它最终还是会关闭,所以这不是一个可行的解决方案。(我甚至制作了一个nmcli device wifi list
每 20 秒运行一次的 cron 作业,这样我就不必继续手动检查和运行它。这也没有解决问题。)
在“/etc/NetworkManager/conf.d”中我有一个文件“default-wifi-powersave-on.conf”,其内容如下:
[connection]
wifi.powersave = 3
我删除了该文件,并将其替换为一个名为“wifi-powersave.conf”的文件,内容如下(最终添加了两个额外的设置,一个用于 iwlwifi,一个用于 wlp3s0,只是因为我想做到彻底,并尝试了我能想到的一切):
[connection]
# Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable).
wifi.powersave = 2 [This did not seem to have an effect.]
iwlwifi.powersave = 2 [This may not have an effect.]
wlp3s0.powersave = 2 [This might do it!]
我原来的内核是 5.4,但在正常建议升级到 5.42 时升级了。在阅读了一些似乎对其他人有用的东西后,我切换了内核,首先是 5.7.10,然后是 5.6.7。,它们的延迟都很低。这没有帮助
然后尝试将以下内容添加到 etc/modprobe.d/blacklist.conf:(因为有一篇关于使用不同发行版的 7260 的人的帖子,他添加了该行,加上一行“blacklist acer_wmi”,它就起作用了。我没有 Acer,但是有 ThinkPad T430,所以我只添加了一行。)
blacklist btusb
没有解决问题。
然后我删除了黑名单 btusb,并尝试修改同一文件夹中的 iwlwifi.conf,添加以下选项。
options iwlwifi bt_coex_active=0
options iwlwifi power_save=0
options iwlmvm power_scheme=1
options iwlwifi d0i3_disable=1
options iwlwifi uapsd_disable=1
没有解决问题。
sudo lshw -C network
以下是在我的 WiFi 功能各个点上完成的结果:
当功能齐全时
*-network
description: Wireless interface
product: Wireless 7260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: bb
serial: 7c:5c:f8:dc:f4:f1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-40-lowlatency firmware=17.3216344376.0 ip=172.20.20.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:34 memory:f1c00000-f1c01fff
当开始失败时 - 注意功能中缺少“bus_master”
*-network
description: Wireless interface
product: Wireless 7260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: bb
serial: 7c:5c:f8:dc:f4:f1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-40-lowlatency firmware=17.3216344376.0 latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:33 memory:f1c00000-f1c01fff
不工作时 - 现在缺少更多功能;此外描述现在是“网络控制器”而不是“无线接口”
*-network UNCLAIMED
description: Network controller
product: Wireless 7260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
version: bb
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list
configuration: latency=0
resources: memory:f1c00000-f1c01fff
就是这样。当然,我尝试了所有简单的事情,比如尝试重新启动 NetworkManger,方法如下:
sudo systemctl restart NetworkManager
sudo service network-manager restart
我还尝试删除并重新加载 wifi 驱动程序:
sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
以上就是我尝试过的所有方法。我还发现了以下信息:https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#d_3165_and_3168_support
此页上指出:
7260、3160、7265、7265D、3165 和 3168 支持
最新固件版本将不支持这些设备:针对 3160、7260 和 7265 发布的最新固件是 -17.ucode。错误修复将移植到 -17.ucode。
现在,这是否意味着这些设备将不再可在 Linux 中使用?
顺便说一句,我可以轻松更换笔记本电脑中的 wifi 卡。如果有一张卡,一半 pci 大小,非常适合我的笔记本电脑使用,并且确实可以工作,我很想知道!我确实计划将这台电脑与 Kali 一起使用,所以我希望这张卡非常快,适合普通用途,但也具有 Kali 所需的所有功能。我认为如果我能让它工作,这张卡就符合要求。(也许 ndiswrapper 可以工作?)
我注意到很多其他类似的帖子,既有使用相同的英特尔卡,也有使用其他英特尔卡,所以如果我们能找到解决办法,这可能也会对许多其他人有所帮助。
编辑:自从发布上述内容以来,我尝试了更多的事情,现在将在这里分享它们。
当我切换到 5.6.7-lowlatency 时,我尝试安装 backport-iwlwifi-dkms,但安装不正确(抱歉,我忘记了错误消息)。因此,我随后恢复到 5.4.0-42-lowlatency,删除了我尝试过的其他更高内核,然后成功安装了 backport-iwlwifi-dkms,没有出现错误。然而,这并没有解决我的 wifi 问题,所以我后来卸载了它。
此时,我已将所有更改恢复到系统原来的状态,除了对 iwlwifi.com 所做的更改,这些更改似乎没有帮助或伤害,或者实际上以任何方式影响任何事情。
我现在不知道该怎么做,因为我几乎试过了所有方法。我原本想试试 ndiswrapper,但我找到的一些信息似乎表明我的 wifi 芯片组无法使用它,所以我暂时搁置了这个想法。
然后我尝试运行“tail -f /var/log/syslog”,这样我就可以记录 wifi 故障时发生的情况。以下是一些输出:
Jul 30 11:03:34 ENCOM-T430 systemd[1]: Starting Network Manager Script Dispatcher Service...
Jul 30 11:03:34 ENCOM-T430 dbus-daemon[582]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jul 30 11:03:34 ENCOM-T430 systemd[1]: Started Network Manager Script Dispatcher Service.
Jul 30 11:03:43 ENCOM-T430 systemd[1]: NetworkManager-dispatcher.service: Succeeded.
Jul 30 11:05:14 ENCOM-T430 kernel: [ 2511.456439] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
Jul 30 11:05:14 ENCOM-T430 kernel: [ 2511.457393] iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: enqueue_hcmd failed: -5
Jul 30 11:05:15 ENCOM-T430 kernel: [ 2512.960634] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
Jul 30 11:05:15 ENCOM-T430 kernel: [ 2512.961409] iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: enqueue_hcmd failed: -5
Jul 30 11:05:16 ENCOM-T430 kernel: [ 2512.981002] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
Jul 30 11:05:16 ENCOM-T430 kernel: [ 2512.981039] iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: enqueue_hcmd failed: -5
Jul 30 11:05:19 ENCOM-T430 kernel: [ 2516.454834] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
Jul 30 11:05:19 ENCOM-T430 kernel: [ 2516.454900] iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: enqueue_hcmd failed: -5
Jul 30 11:05:21 ENCOM-T430 kernel: [ 2518.956560] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2518.956655] iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: enqueue_hcmd failed: -5
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2518.975830] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2518.975945] iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: enqueue_hcmd failed: -5
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549253] ------------[ cut here ]------------
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549258] Timeout waiting for hardware access (CSR_GP_CNTRL 0xffffffff)
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549317] WARNING: CPU: 2 PID: 24 at drivers/net/wireless/intel/iwlwifi/pcie/trans.c:2066 iwl_trans_pcie_grab_nic_access+0x1f9/0x230 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549319] Modules linked in: vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) intel_rapl_msr rfcomm cmac algif_hash algif_skcipher af_alg bnep uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev btusb btrtl mc btbcm btintel bluetooth ecdh_generic ecc intel_rapl_common x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel iwlmvm mac80211 kvm libarc4 iwlwifi snd_hda_codec_hdmi intel_cstate intel_rapl_perf snd_hda_codec_realtek snd_hda_codec_generic snd_seq_midi snd_seq_midi_event snd_hda_intel snd_intel_dspcfg snd_hda_codec joydev input_leds snd_hda_core snd_hwdep serio_raw snd_pcm snd_rawmidi cfg80211 wmi_bmof thinkpad_acpi nvram ledtrig_audio snd_seq snd_seq_device snd_timer snd soundcore mac_hid binfmt_misc sch_fq_codel cuse parport_pc ppdev lp parport ip_tables x_tables autofs4 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel i915 aesni_intel crypto_simd cryptd glue_helper psmouse i2c_algo_bit ahci drm_kms_helper sdhci_pci libahci i2c_i801 cqhci
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549370] syscopyarea sdhci lpc_ich sysfillrect sysimgblt fb_sys_fops e1000e drm wmi video
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549381] CPU: 2 PID: 24 Comm: ksoftirqd/2 Tainted: G OE 5.4.0-42-lowlatency #46-Ubuntu
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549382] Hardware name: LENOVO 2344BZU/2344BZU, BIOS G1ETC2WW (2.82 ) 08/07/2019
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549396] RIP: 0010:iwl_trans_pcie_grab_nic_access+0x1f9/0x230 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549400] Code: 26 d7 49 8d 57 08 bf 00 20 00 00 e8 51 13 ae d5 e9 30 ff ff ff 89 c6 48 c7 c7 30 a1 a0 c0 c6 05 25 f0 02 00 01 e8 62 0a ac d5 <0f> 0b e9 eb fe ff ff 49 8b 7c 24 38 48 c7 c1 98 a1 a0 c0 31 d2 31
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549402] RSP: 0018:ffffb5714013fca0 EFLAGS: 00010086
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549404] RAX: 0000000000000000 RBX: ffffb5714013fcd8 RCX: 0000000000000006
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549406] RDX: 0000000000000007 RSI: 0000000000000082 RDI: ffff9717564978c0
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549407] RBP: ffffb5714013fcc8 R08: 0000000000000001 R09: 00000000000003f4
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549409] R10: 0000000000014674 R11: 0000000000000004 R12: ffff971748138018
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549410] R13: 0000000000000000 R14: ffff971748139e4c R15: 00000000ffffffff
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549413] FS: 0000000000000000(0000) GS:ffff971756480000(0000) knlGS:0000000000000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549414] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549416] CR2: 00007f5fa2462000 CR3: 00000001c600a004 CR4: 00000000001606e0
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549418] Call Trace:
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549434] iwl_read_prph+0x39/0x90 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549448] iwl_trans_pcie_log_scd_error+0x14c/0x220 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549461] iwl_pcie_txq_stuck_timer+0x49/0x70 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549473] ? iwl_pcie_txq_inc_wr_ptr+0x110/0x110 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549481] call_timer_fn+0x32/0x160
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549486] run_timer_softirq+0x19c/0x4f0
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549497] ? iwl_pcie_txq_inc_wr_ptr+0x110/0x110 [iwlwifi]
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549503] ? __switch_to_asm+0x34/0x70
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549506] ? __switch_to_asm+0x40/0x70
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549509] ? __switch_to_asm+0x34/0x70
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549512] ? __switch_to_asm+0x40/0x70
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549515] ? __switch_to_asm+0x34/0x70
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549518] ? __switch_to_asm+0x40/0x70
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549522] ? __switch_to+0x7f/0x490
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549526] __do_softirq+0xe1/0x308
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549533] run_ksoftirqd+0x2b/0x40
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549539] smpboot_thread_fn+0xfc/0x1f0
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549542] kthread+0x104/0x140
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549546] ? sort_range+0x30/0x30
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549548] ? kthread_park+0x90/0x90
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549552] ret_from_fork+0x35/0x40
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549556] ---[ end trace 3b3350bf6ae75ff1 ]---
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549563] iwlwifi 0000:03:00.0: iwlwifi transaction failed, dumping registers
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549569] iwlwifi 0000:03:00.0: iwlwifi device config registers:
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549907] iwlwifi 0000:03:00.0: 00000000: 08b18086 00100000 028000bb 00000000 00000004 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549912] iwlwifi 0000:03:00.0: 00000020: 00000000 00000000 00000000 44708086 00000000 000000c8 00000000 00000100
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549917] iwlwifi 0000:03:00.0: 00000040: 00020010 10008ec0 001b0c10 0006ec11 10110000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549921] iwlwifi 0000:03:00.0: 00000060: 00000000 00080812 00000005 00000000 00010001 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549925] iwlwifi 0000:03:00.0: 00000080: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549928] iwlwifi 0000:03:00.0: 000000a0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549933] iwlwifi 0000:03:00.0: 000000c0: 00000000 00000000 c823d001 0d000000 00804005 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549936] iwlwifi 0000:03:00.0: 000000e0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549941] iwlwifi 0000:03:00.0: 00000100: 14010001 00100000 00000000 00462031 000030c1 00002000 00000014 40000001
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549945] iwlwifi 0000:03:00.0: 00000120: 0000000f f1c00024 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549949] iwlwifi 0000:03:00.0: 00000140: 14c10003 ffdcf4f1 7c5cf8ff 15410018 00000000 0001000b 0141cafe 00f01e1f
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549952] iwlwifi 0000:03:00.0: iwlwifi device memory mapped registers:
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.549998] iwlwifi 0000:03:00.0: 00000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550002] iwlwifi 0000:03:00.0: 00000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550009] iwlwifi 0000:03:00.0: iwlwifi device AER capability structure:
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550047] iwlwifi 0000:03:00.0: 00000000: 14010001 00100000 00000000 00462031 000030c1 00002000 00000014 40000001
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550050] iwlwifi 0000:03:00.0: 00000020: 0000000f f1c00024 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550054] iwlwifi 0000:03:00.0: iwlwifi parent port (0000:00:1c.1) config registers:
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550244] iwlwifi 0000:00:1c.1: 00000000: 1e128086 00100407 060400c4 00810010 00000000 00000000 00030300 200000f0
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550248] iwlwifi 0000:00:1c.1: 00000020: f1c0f1c0 0001fff1 00000000 00000000 00000000 00000040 00000000 00020207
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550252] iwlwifi 0000:00:1c.1: 00000040: 01428010 00008000 00110000 02123c12 70110042 000cb200 01480000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550256] iwlwifi 0000:00:1c.1: 00000060: 00000000 00000016 00000000 00000000 00010002 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550260] iwlwifi 0000:00:1c.1: 00000080: 00019005 fee00258 00000000 00000000 0000a00d 21f317aa 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550264] iwlwifi 0000:00:1c.1: 000000a0: c8020001 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550268] iwlwifi 0000:00:1c.1: 000000c0: 00000000 00000000 00000000 00000000 01000000 00000b02 81118000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550272] iwlwifi 0000:00:1c.1: 000000e0: 00000300 00000000 00000001 00000000 00000000 00000000 08050f87 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550276] iwlwifi 0000:00:1c.1: 00000100: 00000000 00000000 00000000 00060011 000011c1 00002000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550280] iwlwifi 0000:00:1c.1: 00000120: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550284] iwlwifi 0000:00:1c.1: 00000140: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550288] iwlwifi 0000:00:1c.1: 00000160: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550291] iwlwifi 0000:00:1c.1: 00000180: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550295] iwlwifi 0000:00:1c.1: 000001a0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550299] iwlwifi 0000:00:1c.1: 000001c0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550303] iwlwifi 0000:00:1c.1: 000001e0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.550306] iwlwifi 0000:00:1c.1: 00000200: 00000000 00000000 00000000
Jul 30 11:05:22 ENCOM-T430 kernel: [ 2519.607070] iwlwifi 0000:03:00.0: Queue 10 is active on fifo 2 and stuck for 10000 ms. SW [204, 217] HW [90, 90] FH TRB=0x05a5a5a5a
Jul 30 11:05:24 ENCOM-T430 kernel: [ 2521.456338] iwlwifi 0000:03:00.0: Failed to wake NIC for hcmd
现在又要根据这些新信息搜索一些东西了。如果此时有任何人有任何想法、意见或善意的鼓励,我将不胜感激。此外,如果有人能推荐一款真正好的半 pci wifi 卡,我可以用它来替换这个,并且还具有 Kali 所需的所有功能,我也会非常欢迎!
答案1
英特尔-7260-WiFi-修复
注意:根据互联网上的线索以及个人经验,似乎某些 Intel 7260 WIFI PCI 卡实际上工作正常,而其他卡则存在本文所述的问题。很多比下面描述的方法更好的解决方法是简单地购买正确的卡,因为即使使用下面的修复方法,您的 wifi 连接仍然会偶尔打开和关闭,这当然不是理想的,即使下面的修复确实会使其自动重新连接。
我原来买的这个wifi卡:https://www.amazon.com/gp/product/B00MV3N7UO/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1 如果你看一下卡的图片,你可以看到型号是 7260HMW BN。我拿到卡后,它工作得很好什么时候它起作用了,并且对于它停止工作的情况,我设计了下面描述的修复方法。
几周后我购买了这张卡:https://www.amazon.com/gp/product/B01E85QIFI/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 如果您查看该卡的图片,您会发现型号是 7260HMN。拿到这张卡后,我从笔记本电脑中移除了修复程序,然后让它运行以查看会发生什么。它运行完美!
我的建议是,如果您想在机器中安装 Intel 7260 WIFI PCI 卡,请谨慎购买型号 7260HMW - 而不是 7260HMW BN,也可能不是 7260HMW NB 或 7260HMW AC。以下是这些不同卡和 3160HMW 的比较:https://www.legitreviews.com/intel-7260hmwg-802-11ac-versus-intel-7260hmw-bn-802-11n_135541 可以看出,7260HMW 的功能最齐全,而且它也是在 Linux 上真正完美运行的一款!
如果有人看到这篇文章,请发表评论与他人分享您的经验,并仔细记下您拥有的卡。如果您可以亲自查看您的卡(这需要打开您的机器),请报告卡上印刷的型号。此外,sudo lshw -C network
(wifi 部分)的输出也可能有用,特别是“版本”。
这是我对第一张卡(有问题的卡)的输出:
*-network
description: Wireless interface
product: Wireless 7260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: bb
serial: 7c:5c:f8:dc:f4:f1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-40-lowlatency firmware=17.3216344376.0 ip=172.20.20.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:34 memory:f1c00000-f1c01fff
下面是第二张卡的输出,它工作得很好:
*-network
description: Wireless interface
product: Wireless 7260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: 73
serial: a0:a8:cd:2c:f3:da
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-42-lowlatency firmware=17.3216344376.0 ip=172.20.20.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:33 memory:f1c00000-f1c01fff
唯一的区别是版本和系列,我认为这实际上是版本这与此相关。
我已经做了很多故障排除工作。如果能得到一些反馈就好了,这样这个问题就可以为社区彻底解决。
而且...如果您现在被一个行为失常的 Intel 7260 困住了...下面是我为此想出的解决方案:
修复了 Intel 7260 WIFI PCI 卡在 Linux 上间歇性且不可预测地停止工作的问题。
(只要掌握一点技巧,这可能很容易适应以支持其他芯片组。)
Intel 7260 WIFI PCI 卡具有出色的 wifi 功能,但在 Linux 上却因间歇性且不可预测地关闭以及完全无响应而臭名昭著,除了重新启动系统外,没有其他方法可以重新启动卡。
经过大量搜索,我找到了几个可以运行并重启卡的脚本。虽然这很好,但卡肯定会时不时地出现故障,然后需要用户手动运行脚本。这是一个改进,但不太方便,我想要一种方法来自动化这个过程,这样我就可以忘掉它,让它正常工作。
我拿来这个脚本,稍作修改,还在脚本开头添加了一些检查,这些检查将以各种方式检查 wifi 卡是否正常工作。(起初,我所做的唯一检查是基于和,nmcli
但ifconfig
似乎有些故障是这些检查无法发现的。然后我又添加了一个基于输出的检查lshw
,因为在调试和解决这个问题的过程中,我注意到lshw
根据卡是否正常工作,输出会有所不同;具体来说,当卡正常工作时,我会看到“bus_master”列在设备功能下,但是当卡出现故障或刚开始出现故障时,这个功能就会消失。)无论如何,一旦这些检查到位,一旦脚本运行,就会发生以下情况:
(1)如果发现 wifi 正在运行,则脚本会退出。
(2)如果发现 wifi 无法工作,则脚本将继续并执行 wifi 重置。
然后我设置了一些 cron 任务,每 20 秒运行一次我修改过的脚本。设置完成后,我的 wifi 问题就解决了!
如何设置
设置确实需要几分钟和一些准备,但它非常值得,我会一步一步指导您!
首先,您需要在系统上安装。我认为修改脚本以改用,甚至检测系统中可用的脚本ifconfig
相对容易,但我尚未实现这一点。无论如何,就目前而言,您需要确保已安装,因此首先只需运行: 现在您已经安装,现在可以继续将这两个文件下载到您的主目录中:ip
ifconfig
sudo apt install net-tools
ifconfig
https://raw.githubusercontent.com/John-Vision/Intel-7260-Wifi-Fix/master/fixwifi
https://raw.githubusercontent.com/John-Vision/Intel-7260-Wifi-Fix/master/fixwifi-force
要从终端下载它们,请复制/粘贴/运行以下行
cd ~
wget https://raw.githubusercontent.com/John-Vision/Intel-7260-Wifi-Fix/master/fixwifi
wget https://raw.githubusercontent.com/John-Vision/Intel-7260-Wifi-Fix/master/fixwifi-force
现在您的主目录中有了这两个文件,您需要使它们可执行。
chmod +x ~/fixwifi
chmod +x ~/fixwifi-force
这两个文件本质上是相同的,但有一个区别:fixwifi
首先检查你的 wifi 是否启动并正在运行;如果是,它就退出,但如果不是,它就继续并重置你的 wifi。另一方面,'fixwifi-force' 不会费心执行任何检查,并且无论你的 wifi 是否已经在运行,它都会重置它。
这两个文件都有一些可以手动更改的设置。假设您有 Intel 7260(这就是本文的主题!),您不需要更改任何内容,除了可能每个文件中的行(每个文件中大约第 19 行)都显示interface="wlp3s0"
。您的接口可能不同:典型值是 wlan0、wlp2s0 等。您可以通过执行 来检查您的接口sudo lshw -C network | grep "logical name: w"
,只要您在 wifi 工作时运行此操作即可。因此,如果需要,只需在这两个文件中将接口设置更改为适合您的任何设置即可。
完成所有这些操作后,请尝试~/fixwifi-force
。如果一切正常,您应该会看到 wifi 断开连接(如果已连接),然后重新上线。如果没有发生这种情况,则需要检查输出,看看是否有任何错误。最常见的(也是最容易修复的)错误是接口设置错误。(请参阅上文。)另一种可能性是您没有 Intel 7260,在这种情况下,您还必须更改“wirelessPCI”设置中引号之间的部分,可能还需要更改“voodoo”的设置。(我不知道如何帮助您进行 voodoo 设置。这部分对我来说几乎是个谜。)
一旦启动~/fixwifi-force
并运行,您就真的很幸运了!只需确保您在fixwifi
中的设置与 中的设置相同fixwifi-force
。现在您需要做的就是设置一些 cron 作业以fixwifi
在后台定期运行,这样您就不必再考虑它了!
如果这是您第一次使用 cron,以下命令可确保它可以在后台运行:
sudo systemctl enable cron
现在是时候继续以 root 身份设置 crontab 了:
sudo crontab -e
它会询问您要使用什么编辑器。选择您想要的那个。(提示会告诉您,nano 是最简单的。)
现在您需要添加以下三行,将路径替换为 .fixwifi 文件的实际路径。(不要以“~/fixwifi”之类的快捷方式输入路径,而是直接输入完整路径。)
* * * * * /path/to/.fixwifi
* * * * * sleep 20; /path/to/.fixwifi
* * * * * sleep 40; /path/to/.fixwifi
添加这三行并修改以反映实际路径后,保存文件就完成了!(如果您选择 nano,请按 Ctrl-X 完成编辑,然后按“y”响应“保存修改后的缓冲区?”,然后按“Enter”接受要将其发送到的文件的名称。)
就这样!尽情享受全新、无压力的 Intel 7260 Wifi 吧!
答案2
Giovanni_Visione 提供的出色脚本对我来说不太适用(即使在配置了变量之后),但经过更多搜索和尝试不同方法后,我将其简化为:
#!/bin/bash
# You need to know the designations for your wifi interface.
# You can find these out by running: sudo lshw -C network
# interface name
interface="wlp1s0"
# ssid for your wifi
ssid="NETGEAR47"
# If this script works, then update cron by:
# "sudo crontab -e" and # add the following, without the initial hash (#) in each line.
#* * * * * /home/<user>/fixwifi >> /home/<user>/fixwifi.log 2>&1
###########################################################################################################
echo "OKAY ------ $(date) ------"
rfkiller=$(sudo rfkill list | grep "yes")
if [[ $rfkiller != "" ]] ; then
echo -e "rfkill - something is blocked"
sudo rfkill list | sed 's/^/ /'
echo -e "FIXING - running: rfkill unblock all"
sudo rfkill unblock all
sleep 2
fi
# Check if wifi is okay using: nmcli networking connectivity
# "unknown" and "none" indicate a problem.
connectivity=$(nmcli networking connectivity)
if [ $connectivity = "unknown" ] || [ $connectivity = "none" ] ; then
echo "nmcli networking connectivity: $connectivity"
echo -e "FIXING - running: nmcli radio wifi on"
nmcli radio wifi on | sed 's/^/ /'
sleep 2
echo -e "FIXING - running: nmcli c up $ssid"
nmcli c up $ssid | sed 's/^/ /'
sleep 5
echo ""
nmcli radio | sed 's/^/ /'
ping -c 1 google.com > /dev/null
SUCCESS=$?
if [ $SUCCESS -eq 0 ]
then
echo "FIXED - successfully pinged google"
else
ping -c 1 google.com
echo "FAILED"
fi
fi
# other things I was experimenting with that did nothing
#echo "FIXING - running: nmcli radio wifi off"
#nmcli radio wifi off
#sleep 2
#echo "FIXING - running: modprobe -r"
#sudo modprobe -r iwlwifi
#sleep 2
#echo "FIXING - running: modprobe -a"
#sudo modprobe -a iwlwifi
#sleep 2
#echo "FIXING - running: networking restart"
#sudo service network-manager restart
#sleep 2