일시 중지 후 노트북이 즉시 깨어납니다.

일시 중지 후 노트북이 즉시 깨어납니다.

일시 중지 후 즉시 노트북이 깨어납니다(또는 일시 중지가 실패합니까? 두 가지 상황이 다른가요?). 오래된 Toshiba Satellite C855D-S5105, 8GB RAM입니다. 최근에 bodhi Linux(Ubuntu의 파생 버전이므로 여러 면에서 Ubuntu와 동일하게 작동함)를 설치했습니다. 내가 찾은 솔루션 중 어느 것도 효과가 없었습니다. BIOS의 두 후보가 비활성화되었습니다(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

정지가 실패한 이유를 찾아보십시오. 그것것 같다없는거같은데실패하다(좋다여기), 그러나 실제로 정지했다가 깨어나는지, 아니면 정지 상태에서 종료되는지(두 가지가 다른 경우)는 확실하지 않습니다.

$ 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행 사이에서 wakeup이 발생하는 것으로 보입니다.

$ 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 라데온입니다.

$ 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

관련 정보