笔记本电脑在挂起或盖子关闭后几秒钟自行唤醒

Mos*_*afa 6 network-manager suspend power-management wakeup

我正在运行18.04.1带有内核的 Ubuntu 4.15.0-29-generic,我的笔记本电脑(Macbookpro 视网膜 15 英寸,2015 年年中MacBookPro11,5)在睡眠几秒钟后自动唤醒。当我看到在日志中\var\log\syslogs唤醒事件显示为:Aug 6 15:51:53 Shire NetworkManager[7444]: <info> [1533595913.5200] manager: sleep: wake requested (sleeping: yes enabled: yes)

我已经查看了所有其他问题和答案,但我的问题仍然如下:

这个问题及其答案之后,输出cat /proc/acpi/wakeup

Device  S-state   Status   Sysfs node
PEG0      S3    *disabled  pci:0000:00:01.0
GFX0      S3    *disabled  pci:0000:01:00.0
PEG1      S3    *disabled  pci:0000:00:01.1
PEG2      S3    *disabled  pci:0000:00:01.2
EC        S4    *disabled  platform:PNP0C09:00
GMUX      S3    *disabled  pnp:00:03
HDEF      S3    *disabled  pci:0000:00:1b.0
RP03      S3    *disabled  pci:0000:00:1c.2
ARPT      S4    *enabled   pci:0000:04:00.0
RP04      S3    *disabled  pci:0000:00:1c.3
XHC1      S3    *enabled   pci:0000:00:14.0
ADP1      S4    *disabled  platform:ACPI0003:00
LID0      S4    *enabled   platform:PNP0C0D:00
Run Code Online (Sandbox Code Playgroud)

我已经将问题隔离为ARPT条目。如果我通过lspciI get查找此条目的 pci 04:00.0 Network controller: Broadcom Limited BCM43602 802.11ac Wireless LAN SoC (rev 01),它将匹配唤醒由网络引起的日志信息。

这是奇怪的部分:我sudo sh -c "echo ARPT > /proc/acpi/wakeup"用来禁用 的唤醒功能ARPT,它正确地将状态更改为禁用,但是当我将笔记本电脑置于睡眠状态时,它仍然会在几秒钟后唤醒!更令人惊讶的是,当它醒来时,我检查了/proc/acpi/wakeup我看到该ARPT条目已自行恢复为启用状态!请注意,这不会在重新启动后发生,而是在禁用唤醒条目并挂起后立即发生。当笔记本电脑处于睡眠状态时,似乎其他一些脚本会不断更改此设置。

我尝试过的其他事情没有结果:

  • 通过 停止网络管理器sudo service netwrok-manager stop,但笔记本电脑仍然唤醒。
  • 通过使用禁用wifi的电源管理 sudo iwconfig wlan0 power off
  • 按照这篇文章确保 WLAN 唤醒 (WoWLAN) 已关闭
  • 设为\proc\acpi\wakeup只读。

更新:

我试图禁用这两个ARPTXHC1和只留下LID0启用(笔记本电脑的盖子),几秒钟后,系统仍然醒来。但是这次当它唤醒时,中的设置/proc/acpi/wakeup保持原样,不会自动恢复。

2018 年 8 月 17 日更新:

使用新内核时4.15.0-32,笔记本电脑在盖子合上时不再唤醒,但当盖子打开并进入睡眠状态时,它仍会自行唤醒。至少现在我可以把我的笔记本电脑放在我的背包里而不必担心电池耗尽,而且显然这是一个内核问题,我怀疑我可以在不花费大量时间的情况下解决它。

Win*_*nix 1

2018 年 8 月 8 日更新

内核4.15.0-30已经发布。挂起后立即恢复问题仍然存在。内核4.13.0-36仍然可靠地工作。

要尝试的其他步骤

我在 上也有同样的问题4.15.0-29-generic。我刚刚安装了 nVidia 驱动程序 384.130,并假设它与此相关。我完成了您的所有步骤并进行了修改:

$ paste <(ls /sys/bus/usb/devices/*/power/wakeup) <(cat /sys/bus/usb/devices/*/power/wakeup) | column -s $'\t' -t
/sys/bus/usb/devices/1-1.4.3/power/wakeup  disabled
/sys/bus/usb/devices/1-1.4/power/wakeup    disabled
/sys/bus/usb/devices/1-1/power/wakeup      disabled
/sys/bus/usb/devices/1-4/power/wakeup      disabled
/sys/bus/usb/devices/1-5/power/wakeup      enabled
/sys/bus/usb/devices/1-9/power/wakeup      disabled
/sys/bus/usb/devices/usb1/power/wakeup     disabled
/sys/bus/usb/devices/usb2/power/wakeup     disabled
/sys/bus/usb/devices/usb3/power/wakeup     disabled
/sys/bus/usb/devices/usb4/power/wakeup     disabled
Run Code Online (Sandbox Code Playgroud)

USB 1-5是WiFi/蓝牙卡:

$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 009: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 007: ID 1bcf:2b8c Sunplus Innovation Technology Inc. 
Bus 001 Device 005: ID 0cf3:e301 Atheros Communications, Inc. 
Bus 001 Device 003: ID 187c:0528 Alienware Corporation 
Bus 001 Device 008: ID 413c:9016 Dell Computer Corp. 
Bus 001 Device 006: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 004: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
Bus 001 Device 002: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Run Code Online (Sandbox Code Playgroud)

您也可以检查一下。

拔掉一切插头

英特尔建议拔掉所有东西——所有 USB、网络电缆等以调试挂起。英特尔的文章中还列出了其他可以尝试的方法。

内核4.13.0-36工作了!

我重新编译了我的nvhda.ko底层内核4.13.0-36-generic,发现通过菜单挂起至少现在可以工作了。

  • 如果您有旧的内核版本,例如4.15.0-24在高级 Grub 菜单中使用它启动。
  • 如果你有4.13.0-36启动的话。
  • 如果您没有旧版本,可以使用以下命令安装sudo apt install linux-image-4.15.0-24*
  • 如果您使用 DKMS,您还需要使用sudo apt install linux-headers-4.15.0-24*
  • 我在存储库4.15.0-25中看不到可用的内核。4.15.0-28