Как зависает мой компьютер?

Попытка понять, как работает suspend в 10.10.

http://git.webconverger.org/?p=home.git;a=blob;f=.bashrc;h=8ba57b877e31a03c5f0b1675b42f747d81dd31ad;hb=HEAD

Я использую alias suspend='sudo /etc/acpi/sleep.sh && sudo alsactl init 0

alsactl немного, чтобы заново запустить мою звуковую карту, которая иногда не выходит из режима ожидания правильно.

А потом:

/etc/acpi/sleep.sh -> /usr/sbin/pm-suspend -> /usr/lib/pm-utils/bin/pm-action -> /usr/lib/pm-utils/pm-functions

Ирония это /usr/lib/pm-utils/bin/pm-action утверждает, что "Простой сценарий приостановки".

До сих пор не знаю, как это работает. Я думаю, что я непосредственно использовал s2ram до.

1 ответ

Решение

gnome-power-manager инструмент прослушивает события кнопки приостановки и порождает pm-suspend, Обширная деталь о том, как pm-suspend работает можно найти в man pm-suspend вывод команды. Быстрая версия:

  1. /etc/pm/config.d проверяется на наличие файлов, которые определяют переменные среды.
  2. Каждый из сценариев в /etc/pm/sleep.d а также /usr/lib/pm-utils/sleep.d вызываются по порядку с аргументом "приостановить".
  3. Система переводится в спящий режим через определенный интерфейсный модуль. По умолчанию это интерфейс приостановки ядра: echo -n "mem" >/sys/power/state, Увидеть /usr/lib/pm-utils/pm-functions где do_suspend определено.
  4. Система просыпается.
  5. Каждый из сценариев в /etc/pm/sleep.d а также /usr/lib/pm-utils/sleep.d вызываются в обратном порядке с аргументом "резюме".

Если вам нужно добавить скрипт в стек, я бы предложил добавить его в /etc/pm/sleep.d и назовите его так, чтобы он не конфликтовал с другими скриптами, и убедитесь, что он обрабатывает аргумент "suspend" / "resume".

Для отладки см. /var/log/pm-suspend.log а также справочную страницу, которая содержит больше информации о том, как проводить тестирование.

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