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

9

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

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

Я использую 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раньше.

Хендри
источник
Я знаю, что я мало что объясняю, но вы могли бы вставить свою alsactlкоманду в свой собственный скрипт, /etc/acpi/resume.d/и она будет работать сразу после запуска.
Оли
Обновление: я просто использую sudo systemctl suspendсейчас.
Хендри

Ответы:

10

В 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Также справочную страницу, которая содержит больше информации о том, как проводить тестирование.

Кис Кук
источник
Спасибо, но что из интереса, что именно является командой для запуска «приостановки ядра» на шаге 3?
Хендри
Я обновил, чтобы включить эту деталь тоже сейчас.
Кис Кук