Suspend
筆記型電腦在掛起後立即喚醒
我的筆記型電腦在掛起後立即喚醒(或者掛起失敗?它們是兩種不同的情況嗎?)。它是舊的東芝 Satellite C855D-S5105,8Gb RAM。它有一個最近安裝的 bodhi Linux(一個 Ubuntu 衍生產品,所以在很多事情上它的工作方式與 Ubuntu 相同)。我找到的解決方案都不起作用。BIOS 中的兩個候選項被禁用(Wake on LAN和Wake on Keyboard)。還有一個觸摸板,沒有滑鼠或藍牙接收器。下面我發布相關資訊,並附有來源。
$ uname -a Linux Orion 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
試圖辨識喚醒的候選者(假設它掛起並喚醒)。
這裡似乎有一些啟用喚醒的設備(請參閱this)。
$ cat /proc/acpi/wakeup | grep enabled Device S-stateStatus Sysfs node OHC1 S3 *enabled pci:0000:00:12.0 <- ? OHC3 S3 *enabled pci:0000:00:16.0 <- ? EHC1 S3 *enabled pci:0000:00:12.2 <- ? EHC3 S3 *enabled pci:0000:00:16.2 <- ? LID0 S4 *enabled platform:PNP0C0D:00 <- Lid $ lspci | grep "00:1[2,6]." 00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11) 00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 11) 00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11) 00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 11)
這裡似乎沒有啟用喚醒的設備(source)。
$ cat /sys/bus/usb/devices/*/power/wakeup disabled disabled disabled disabled disabled disabled disabled $ ll /sys/bus/usb/devices/*/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/1-3/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/usb1/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/usb2/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/usb3/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/usb4/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/usb5/power/wakeup -rw-r--r-- 1 root root 4,0K abr 6 07:33 /sys/bus/usb/devices/usb6/power/wakeup
試圖找出掛起失敗的原因。看起來沒有失敗(如此處),但我不確定它是否真的掛起並醒來,或者它退出掛起(如果它們是兩個不同的東西)。
$ journalctl -b | grep -nH suspend (standard input):1576:abr 06 07:28:55 Orion sudo[1196]: root : TTY=unknown ; PWD=/home/santiago ; USER=root ; COMMAND=/usr/sbin/pm-suspend (standard input):1578:abr 06 07:28:58 Orion kernel: PM: suspend entry (deep) (standard input):1583:abr 06 07:29:04 Orion kernel: printk: Suspending console(s) (use no_console_suspend to debug) (standard input):1627:abr 06 07:29:04 Orion kernel: PM: suspend exit
添加可能有用的行。看起來在第 1591 行和第 1592 行之間發生了喚醒。
$ journalctl -b | grep -nH -A 40 -B 40 suspend ... (standard input):1578:abr 06 07:28:58 Orion kernel: PM: suspend entry (deep) (standard input)-1579-abr 06 07:28:58 Orion kernel: Filesystems sync: 0.191 seconds (standard input)-1580-abr 06 07:29:04 Orion kernel: Freezing user space processes ... (elapsed 0.004 seconds) done. (standard input)-1581-abr 06 07:29:04 Orion kernel: OOM killer disabled. (standard input)-1582-abr 06 07:29:04 Orion kernel: Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. (standard input):1583:abr 06 07:29:04 Orion kernel: printk: Suspending console(s) (use no_console_suspend to debug) (standard input)-1584-abr 06 07:29:04 Orion kernel: wlp2s0: deauthenticating from d0:6e:de:8e:25:f6 by local choice (Reason: 3=DEAUTH_LEAVING) (standard input)-1585-abr 06 07:29:04 Orion kernel: sd 0:0:0:0: [sda] Synchronizing SCSI cache (standard input)-1586-abr 06 07:29:04 Orion kernel: sd 0:0:0:0: [sda] Stopping disk (standard input)-1587-abr 06 07:29:04 Orion kernel: ACPI: Preparing to enter system sleep state S3 (standard input)-1588-abr 06 07:29:04 Orion kernel: PM: Saving platform NVS memory (standard input)-1589-abr 06 07:29:04 Orion kernel: Disabling non-boot CPUs ... (standard input)-1590-abr 06 07:29:04 Orion kernel: IRQ 30: no longer affine to CPU1 (standard input)-1591-abr 06 07:29:04 Orion kernel: smpboot: CPU 1 is now offline (standard input)-1592-abr 06 07:29:04 Orion kernel: ACPI: Low-level resume complete (standard input)-1593-abr 06 07:29:04 Orion kernel: PM: Restoring platform NVS memory (standard input)-1594-abr 06 07:29:04 Orion kernel: LVT offset 0 assigned for vector 0x400 (standard input)-1595-abr 06 07:29:04 Orion kernel: microcode: reload patch_level=0x05000119 (standard input)-1596-abr 06 07:29:04 Orion kernel: Enabling non-boot CPUs ... (standard input)-1597-abr 06 07:29:04 Orion kernel: x86: Booting SMP configuration: (standard input)-1598-abr 06 07:29:04 Orion kernel: smpboot: Booting Node 0 Processor 1 APIC 0x1 (standard input)-1599-abr 06 07:29:04 Orion kernel: microcode: CPU1: patch_level=0x05000119 (standard input)-1600-abr 06 07:29:04 Orion kernel: CPU1 is up (standard input)-1601-abr 06 07:29:04 Orion kernel: ACPI: Waking up from system sleep state S3 (standard input)-1602-abr 06 07:29:04 Orion kernel: [drm] Found smc ucode version: 0x00010601 (standard input)-1603-abr 06 07:29:04 Orion kernel: rtlwifi: rtlwifi: wireless switch is on (standard input)-1604-abr 06 07:29:04 Orion kernel: [drm] PCIE GART of 1024M enabled (table at 0x0000000000162000). (standard input)-1605-abr 06 07:29:04 Orion kernel: radeon 0000:00:01.0: WB enabled ...
這裡沒有 Nvidia 驅動程序。顯卡是 ATI Radeon。
$ dpkg -l | grep nvidia ii bodhi-background-invidia 0.01 all Bodhi Sunshine Invidia
有關的
我設法通過以下方式避免喚醒。我整理了一個包含以下內容的腳本(受此
disable_devices_from_wakeup.sh
啟發)#!/bin/bash declare -a devices=(EHC1 EHC3 OHC1 OHC3) for device in "${devices[@]}" ; do sudo sh -c "echo $device > /proc/acpi/wakeup" done
將其設置為執行檔,然後執行它。現在我將所有 4 台設備都設置為
disabled
,並且筆記型電腦只能通過蓋子或電源按鈕喚醒。因此,在不確切知道負責喚醒的設備的情況下,問題就消失了。在進一步的測試中,僅 4 個設備中的任何一個
enabled
都足以防止掛起。這對我來說看起來很奇怪,但我沒有花時間分別理解每一個。全部:
- 使更改永久化。這是相關的問題。