一時停止後、ノートパソコンはすぐに目覚めます。

一時停止後、ノートパソコンはすぐに目覚めます。

一時停止後すぐにラップトップが起動します(または一時停止が失敗しますか?2つの状況が異なりますか?)。古い東芝Satellite C855D-S5105、8GBのRAM。最近、bodhi Linux(Ubuntuの派生バージョンなので、多くの点でUbuntuと同じように動作します)をインストールしました。私が見つけた解決策のどれもうまくいきませんでした。 BIOSの2つの候補が無効になっています(LANで目覚めるそしてキーボードウェイク)。タッチパッドもあり、マウスやBluetooth受信機はありません。以下は、ソースと関連情報を投稿します。

$ 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

覚醒の候補を特定してみてください(停止して起きると仮定)。
ここに覚醒が有効になっているいくつかのデバイスがあるようです(参照これ)。

$ 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)

ここには覚醒支援装置がないようです(源泉)。

$ 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

停止が失敗した理由を見つけてください。それそうだないと思います。失敗する(良いここ)、しかし実際に停止して起きるのか、それとも静止状態で終了するのか(2つが異なる場合)は確かではありません。

$ 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

関連

  1. https://bbs.archlinux.org/viewtopic.php?id=263268

答え1

以下のようにウェイクアップを避けることができました。私は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状態にある場合は、停止を防ぐのに十分です。私の目には奇妙に見えますが、各項目を個別に理解するのに時間がかかりませんでした。

やること項目:

  1. 変更を永久に適用します。これ関連する質問です。

答え2

この質問に対する多くの答えは、PCを中断状態で覚醒させるために使用される特定のデバイスを無効にしますが、常に新しいデバイス、アップデート、その他の状況があるため、問題が再び発生します。代わりに、このスクリプトは、カバー(LID)とスリープボタン(SLPB)を除いて、PCをスリープモードから起動するために使用されるすべてのデバイスを無効にします。

#! /bin/bash
case $1 in
    pre)
        declare -a keep_devices=(SLPB LID) # <-- Add entries to keep activated here
        # Get the currently active devices in 
        readarray -t enabled_devices < <( grep enabled /proc/acpi/wakeup | awk '{print $1}' )
        # if it's enabled and not in our whitelist, disable it
        for device in "${enabled_devices[@]}"; do
            if [[ ! " ${keep_devices[*]} " =~ " ${device} " ]]; then
                echo ${device} > /proc/acpi/wakeup
            fi
        done
    ;;
esac

アドバイスに従うここUbuntuの場合、スリープモードの開始時に実行されるようにこのスクリプトをコピーしました。

sudo cp disable-wakeup-devices /usr/lib/systemd/system-sleep/
sudo chmod 755 /usr/lib/systemd/system-sleep/disable-wakeup-devices

関連情報