Ноутбук не зависает при закрытой крышке

24

Я новый пользователь Ubuntu 13.10. Закрытие крышки моего ноутбука не приводит к переходу компьютера в режим ожидания, то есть каждый раз, когда я закрываю крышку без ручного подвешивания компьютера, батарея умирает.

В Power Management установлены правильные настройки - приостановите работу ноутбука на закрытой крышке для переменного и постоянного тока, но они не влияют на реальное поведение.

Похоже, что это распространенная проблема для многих пользователей, начиная с Ubuntu 11 - единственное решение, которое я смог найти, это ниже. Однако, как новый пользователь Linux, я не знаю, как на самом деле выполнить инструкции. Если бы кто-то мог предоставить дополнительную информацию, это было бы чрезвычайно полезно.

Заранее спасибо.

/etc/acpi/events/lidbtn triggers /etc/acpi/lid.sh which triggers
 /etc/acpi/local/lid.sh.post at the end of the script.
 /etc/acpi/local/* allows you to add your own config (e.g. required for
 wmii).

 generate /etc/acpi/local/lid.sh.post
 make it executable and add:

 \#!/bin/bash
 grep -q closed /proc/acpi/button/lid/*/state
 if [ $? = 0 ]
 then
 /usr/sbin/pm-suspend
 fi

 wmii will now go to suspend mode when closing the lid. It'll
 automatically wake up when opening the lid.
    #!/bin/bash

    load=$(cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0/capacity)
    min_load=20
    if [ $load <= min_load ]; then
        pm-suspend
    fi
Кайл Чадха
источник

Ответы:

20

(Обратите внимание , что #перед тем, как команда указывает , что она должна быть запущена суперпользователем, поэтому заменить #с sudo.)

Откройте logind.confкак root: # vim /etc/systemd/logind.confи удалите #ранее HandleLidSwitch=suspend. Вы также можете изменить опцию suspendна hibernateилиpoweroff

Исправление из ошибки панели запуска № 863834, комментарий № 30 :

  1. Откройте терминал: Ctrl+ Alt+t
  2. # mkdir /etc/acpi/local
  3. # vim /etc/acpi/local/lid.sh.post
  4. Скопируйте этот короткий скрипт:

     #!/bin/bash
     if grep -q closed /proc/acpi/button/lid/*/state
     then
         /usr/sbin/pm-suspend
     fi
    

    ... и вставьте его в vim, набрав: "+p

  5. Сохранить, набрав ZZ(прописными буквами)
  6. # chmod 755 /etc/acpi/local/lid.sh.post (так что он работает, даже если управление питанием обрабатывается вошедшим в систему пользователем, а не root)
мяу
источник
PS: если вы не уверены, как использовать vim, замените его на gedit, а sudo на gksu
Мяу
Мяу, спасибо за быстрый ответ. К сожалению, я до сих пор не уверен на 100%. Я ввожу эти команды в терминал? Когда я набираю «sudo vim /etc/systemd/logind.conf», я получаю ошибку «sudo: vim: команда не найдена». Я также на ПК под управлением Linux, если это имеет значение.
Кайл Чадха
используйте sudo gedit /etc/systemd/logind.conf, если vim не установлен, и да, вам нужно ввести их в терминал
Мяу
Хрм до сих пор не работает. Никаких изменений в закрытии крышки после перезапуска. '# HandlePowerKey = poweroff # HandleSuspendKey = suspend # HandleHibernateKey = hibernate HandleLidSwitch = suspend'
Кайл Чадха
1
Это сработало для меня, но я должен был добавить следующее:sudo chmod 755 /etc/acpi/local/lid.sh.post
qbert220
5

В ответ на это сообщение у меня возникла та же проблема с этим на моем Toshiba Satellite a305-s6902 (который я приобрел исключительно для практики на Linux), и обнаружил, что это работает для меня:

sudo vim /etc/systemd/logind.conf

затем, как указано выше, удалите #before HandleLidSwitch=suspendи сохраните ( ESC :wq).

ОДНАКО ---> Я считаю, что я должен сначала перевести компьютер в режим ожидания вручную, а после каждой перезагрузки включать триггер. Я не знаю почему, но это работало последовательно для меня.

Мистер Мальболгия
источник
1

Я решил это, раскомментировав переменную LID_SLEEP=trueиз /etc/default/acpi-support.

user284372
источник
2
эта переменная недоступна в 16.04
Джефф Пукетт
1

У меня была такая же проблема с Linux Mint Cinnamon 17.2. Так как он основан на Ubuntu 14.04, я ожидаю, что многое во многом совпадает.

Обыскав проблему с приостановкой на закрытой крышке, я обнаружил себя здесь и до тех пор, лучшее, что я придумал, - это ручная приостановка в первый раз после загрузки, а после этого приостановка с закрытой крышкой. Прочитав эти посты и комментарии, я думаю, что решил проблему.

Вот что я сделал:

  1. Открыл терминальную сессию и, используя nano вместо vim, набрал;

    sudo nano /etc/systemd/logind.conf
    
  2. Как и предполагалось, я удалил # раньше HandleLidSwitch=suspend . Тогда я сохранил это.

  3. Затем я набрал ...

    mkdir /etc/acpi/local
    sudo nano /etc/acpi/local/lid.sh.post
    

    ... и скопировал и вставил следующие 5 строк, ранее опубликованных

    #!/bin/bash
    if grep -q closed /proc/acpi/button/lid/*/state
    then
        sudo /usr/sbin/pm-suspend
    fi
    

    ПРИМЕЧАНИЕ: чтобы сделать эту работу, я добавил sudoв строку /usr/sbin/pm-suspend. В противном случае это не будет работать.

  4. Наконец, я сохранил его и, как было ранее опубликовано, набрал; вошедший в систему пользователь вместо root набрал;

    sudo chmod 755 /etc/acpi/local/lid.sh.post
    

К сожалению, это не сработало. Однако я выполнил несколько тестов команд в сценарии, и они сработали, поэтому я решил, что что-то другое не вызывает их. Далее в постах я натолкнулся на ссылку на ошибку менеджера питания Gnome:

https://bugs.launchpad.net/ubuntu/+source/upower/+bug/863834

Особенно интересным было сообщение Майкла Бэкхауса 2012-06-09, в котором он писал:

/etc/acpi/events/lidbtnтриггеры, /etc/acpi/lid.shкоторые запускают /etc/acpi/local/lid.sh.post.

После этого была почти идентичная версия вышеописанного скрипта bash, lid.sh.post .

В этой версии Mint /etc/acpi/events/lidbtnи /etc/acpi/lid.shне существовало. Однако /etc/acpi/events/powerbtnи/etc/acpi/powerbtn.sh сделал. Взгляд на "powerbtn" дал ответ

Это мой обходной путь:

  1. Для создания пользовательского "lidbtn", набрал;

    sudo nano /etc/acpi/events/powerbtn
    

    и изменил это, чтобы это понравилось для lidbtn;

    # /etc/acpi/events/lidbtn
    # This is called when the user closes the lid and calls
    # /etc/acpi/lidbtn.sh for further processing.
    
    # Optionally you can specify the placeholder %e. It will pass
    # through the whole kernel event message to the program you've
    # specified.
    
    # We need to react on "button lid.*" and "button/lid.*" because
    # of kernel changes.
    
    event=button[ /]lid
    action=/etc/acpi/lidbtn.sh
    
  2. Я сохранил это. Затем копируется /etc/acpi/local/lid.sh.postв /etc/acpi/и переименовал его lidbtn.sh.

Я перезагрузился и теперь закрытие крышки всегда приостанавливает работу моего ноутбука. Тем не менее, я должен вручную разбудить его при открытии крышки. Следующий проект для работы.

ДОБАВЛЕНИЕ: Я должен добавить, что у меня нет второго монитора. Для меня проблема была в том, что приостановка просто не работала, когда крышка была закрыта.

Боб-Эл
источник
Это сработало для Linux Mint 18 "Sarah"? И, @ bob-el, ты тоже нашел обходной путь для пробуждения?
Кисанме
0

Для меня проблема была в том, что закрытие крышки обрабатывается по-разному, когда подключен внешний монитор . Таким образом, изменение этого параметра как пользователя dconf-editorрешило проблему для меня:

Схема:

org.cinnamon.settings-daemon.plugins.power

или (в зависимости от того, какую среду рабочего стола вы используете)

org.gnome.settings-daemon.plugins.power

Название:

lid-close-suspend-with-external-monitor

Установлен в:

true

Описание:

Если внешние мониторы не подключены, закрытие крышки ноутбука приостановит работу машины (как задано с помощью клавиш действия крышки: крышки аккумулятора и действия крышки). Однако по умолчанию закрытие крышки при наличии внешнего монитора не приведет к подвешиванию аппарата, чтобы можно было продолжать работу на этом мониторе (например, для док-станций или средств просмотра мультимедиа). Установите для этого ключа значение False, чтобы сохранить поведение по умолчанию, или значение True, чтобы приостановить работу ноутбука, когда крышка закрыта, и независимо от внешних мониторов.

телеграфный ключ
источник
0

Я использую Mint 18.1 на Macbook Air 6,2. Вот решение, которое у меня есть, и оно работает почти идеально.

Я использую mba6x_bl, чтобы исправить черный экран MBA при пробуждении. Следуйте их инструкциям .

Тогда используйте решение Боб-Эля выше, чтобы решить проблему приостановки.

  • резервное копирование и открытие / etc / acpi / events / powerbtn
    sudo cp / etc / acpi / events / powerbtn / etc / acpi / events / powerbtn_bak
    sudo nano / etc / acpi / events / powerbtn
  • заменить содержимое powerbtn текстом ниже

    # /etc/acpi/events/lidbtn
    # This is called when the user closes the lid and calls  
    # /etc/acpi/lidbtn.sh for further processing.  
    # Optionally you can specify the placeholder %e. It will pass  
    # through the whole kernel event message to the program you've  
    # specified.  
    # We need to react on "button lid.*" and "button/lid.*" because  
    # of kernel changes.  
    event=button[ /]lid  
    action=/etc/acpi/lidbtn.sh
    
  • Создайте /etc/acpi/lidbtn.sh

    sudo nano /etc/acpi/lidbtn.sh
    
  • поместите в него следующий текст

    #!/bin/bash
    if grep -q closed /proc/acpi/button/lid/*/state
      then
      /usr/sbin/pm-suspend
    fi
    
  • Откройте Управление питанием -> Включение переменного тока -> Действия -> Когда крышка ноутбука закрыта , выберите Пустой экран . Это позволит приостановить MBA при подключении к источнику питания.

Единственная проблема, которую я заметил, - когда MBA приостановлен с подключенным питанием , его подсветка клавиатуры будет автоматически включена. Но кроме этого все работает хорошо.

Vinc
источник