暂停后显示“Wifi已被硬件开关禁用”

暂停后显示“Wifi已被硬件开关禁用”

我在 HP 15-P234TX 笔记本电脑上运行 Ubuntu 14.04。每次我合上盖子或挂起它时,无线都会停止工作,直到我重新启动整个电脑。我无法点击启用 wifi,因为它显示“wifi 被硬件开关禁用”。据我所知,机箱上任何地方都没有开关。我尝试运行 rfkill list all 并得到以下结果

rfkill list all

1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: yes

rfkill unblock all 无效

__

请参阅lspci-knn| grep Net-A2

08:00.0 Network controller [0280]: Intel Corporation Wireless 3160 [8086:08b3] (
rev 83)
Subsystem: Intel Corporation Dual Band Wireless-AC 3160 [8086:0070]
Kernel driver in use: iwlwifi

我该如何解决?

答案1

systemd脚本在从挂起状态恢复时重新加载 WiFi 内核模块。它来自这个答案:Wi-Fi 可用网络突然不显示

此脚本是为 iwlwifi` 编写的,这是常见的英特尔驱动程序名称。如果您的名称不同,请在下面更改该名称:

#!/bin/sh

# NAME: /lib/systemd/system-sleep/iwlwifi-reset
# DESC: Resets Intel WiFi which can be flakey after a long suspend.
# DATE: Apr 1, 2017. Modified August 30, 2017.

MYNAME=$0

exit

restart_wifi() {
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'
    /sbin/modprobe -v -r iwldvm # This removes iwlwifi too
    /sbin/modprobe -v iwlwifi   # This starts iwldvm too
#    systemctl restart NetworkManager.service
    /usr/bin/logger 'systemctl restart NetworkManager.service (SUPPRESSED)'
    /usr/bin/logger $MYNAME 'restart_wifi END'
}

/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
    hibernate|suspend|pre*)
      ;;
    resume|thaw|post*)
      restart_wifi;;
esac

笔记:有时只需重置网络管理器即可。在这种情况下,通过删除 取消注释上面的行。然后通过在这两行的开头#添加 来注释掉上面的两行。#

您需要创建名为 的脚本iwlwifi-reset,并sudo赋予其权限,然后将其保存到目录 中/lib/systemd/system-sleep。然后使用以下命令将其标记为可执行文件:

chmod a+x /lib/systemd/system-sleep/iwlwifi-reset

相关内容