ACPI 唤醒脚本使 LID0 在 Ubuntu 20.10 上保持启用状态

ACPI 唤醒脚本使 LID0 在 Ubuntu 20.10 上保持启用状态

我在使用 Ubuntu 20.10。它运行在 2012 年中期的 MacBook Pro 上。它运行得很好,但我仍然在电源管理方面遇到一个小问题。当我合上盖子时,MacBook 会挂起。但当我打开它时,它不会唤醒。我知道我可以通过回显 /proc/acpi/wakeup 来设置 LID0 和 XHC1。当您回显这些时,它就会切换。所以可能我把它关掉了,而我想让它启用。因此,我在 askubuntu 上找到了一个脚本,它可以很好地与 1 台设备配合使用,但不能与 2 台设备配合使用。但该脚本是为多台设备制作的。

这是原始脚本:

#!/bin/bash
declare -a devices=("EHC1 EHC2 XHCI") # <-- Add your entries here
for device in "${devices[@]}"; do
    if grep -qw ^$device.*enabled /proc/acpi/wakeup; then
        sudo sh -c "echo $device > /proc/acpi/wakeup"
    fi
done

由用户 Hrishikesh Kadam 在 [AskUbuntu][1] 上制作或转发。

在:“cat /proc/acpi/wakeup”中,这些是 XHC1 和 LID0 项目:

XHC1      S3    *disabled   pci:0000:00:14.0 
LID0      S4    *disabled  platform:PNP0C0D:00

我改变了我找到的脚本如下:

declare -a devices=("XHC1 LID0")
for device in "${devices[@]}"; do
    if grep -qw ^$device.*disabled /proc/acpi/wakeup; then
        sudo sh -c "echo $device > /proc/acpi/wakeup"
    fi
done ```

Which does not look wrong to me. But than I get this error: 

    grep: LID0.*disabled: File or folder does not exist

When I change the code like this: 

    declare -a devices=("XHC1")
so by removing 1 device, then the code works.

Why does this not work anymore? What changed in the way this is working? And how do I fix this script for Ubuntu 20.10? Please advise.
Anyone? 


  [1]: https://askubuntu.com/questions/1146264/apply-the-proc-acpi-wakeup-settings-permanently/1331422#1331422

答案1

看来我已经找到了解决方案,方法是删除行中的引号:declare -a devices=("XHC1 LID0")

然后我的脚本如下所示:

#!/bin/bash
declare -a devices=( LID0 XHC1 )
for device in "${devices[@]}"; do
    if grep -qw ^$device.*disabled /proc/acpi/wakeup; then
        sudo sh -c "echo $device > /proc/acpi/wakeup"
    fi
done

这样就成功了。就这么简单吗?

相关内容