我在使用 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
这样就成功了。就这么简单吗?