ACPI скрипт пробуждения, чтобы сохранить LID0 включен на Ubuntu 20.10

Я на Убунту 20.10. Он работает на макбуке про середину 2012 года. Он работает очень хорошо, но у меня все еще есть небольшая проблема с управлением электропитанием. Когда я закрываю крышку, макбук приостанавливается. Но когда я открываю его, он не просыпается. Я знаю, что я могу установить LID0 и XHC1 с эхом в /proc/acpi/wakeup. Когда вы эхо, то оно переключается. Так что, возможно, я выключу его, когда захочу, чтобы он был включен. Для этого я нашел скрипт на 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

Сделан, или репостирован пользователем: Хришикеш Кадам на: [AskUbuntu][1].

In: "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
0
задан 15 April 2021 в 12:29

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

Таким образом, он работает. Это так просто?

0
ответ дан 23 April 2021 в 23:22

Другие вопросы по тегам:

Похожие вопросы: