Как отладить проблему приостановки?

11

Я имел обыкновение устанавливать Fedora 14 на этом HP Compaq 610, и функция приостановки работала отлично. Теперь, когда я установил Scientific Linux 6.1, приостановка больше не работает. Как мне отладить / исправить это?

LanceBaynes
источник
Это приостановка оболочки (<kbd> Cntl-z </ kbd>) или ОС (спящая или спящая)?
Arcege
@Arcege: Я полагаю, он имел в виду приостановку ACPI, так как в наши дни это стало такой распространенной проблемой.
JM Becker

Ответы:

9

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

Метод, рекомендуемый в настоящее время и поддерживаемый по адресу http://pm-utils.freedesktop.org/wiki/ , должен быть доступен для большинства последних дистрибутивов. Сначала я проверил бы, pm-utilsустановлены ли вы , и работают ли включенные команды, как ожидалось.

Посмотрите, установлен ли пакет, введите эту команду в терминале

rpm -qa | grep pm-utils

Это должно вывести версию, которую вы установили. Если вы не получили ожидаемый результат, вам нужно установить пакет.

sudo yum install pm-utils

Как только вы это подтвердите, проверьте свою способность приостановить.

sudo pm-suspend

Если вы не приостановили и не получили вывод, почему, проверьте ваш недавний вывод dmesg

dmesg | tail -50

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

Дж. М. Беккер
источник
Я даже установил pm-utils-devel. pm-suspend с пользователем root делает то же самое, что и с обычным пользователем, когда он щелкает в GNOME / menu-> suspend-> ничего, машина просто говорит «сеть выключена», затем просто ждет и ждет и т. д. я могу ничего не начинать после того, как я пытаюсь приостановить. Я увижу dmesg позже, спасибо!
LanceBaynes
dmesgВыход покажет вам , что происходит за сценой. Что еще более важно, что, в частности, может быть неудачным. O и кстати, вам не нужен пакет devel. Они нужны только при компиляции кода, поэтому не стесняйтесь очищать. Отсюда много путей, я просто не хочу, чтобы ты лаял не на то дерево.
JM Becker
1
@LanceBaynes вы пробовали запускать pm-suspendкоманды из оболочки, а не через меню GNOME? Попробуй echo -n "mem" >/sys/power/stateкак root. Также, если вы используете, acpiвы можете acpi_listenпосмотреть, какие события генерируются, например, при закрытии крышки.
WOW, WTF? Я "echo -n" mem "> / sys / power / state" с пользователем root, и мой фактически приостановлен !!!! ВАУ. Единственная проблема заключается в том, что когда я делаю такой вид приостановки, gnome-screensaver не запускается и оставляет мне незаблокированный ПК. Как обойти это? Как я могу сделать скрипт / что-нибудь, чтобы обычный пользователь тоже мог использовать этот вид приостановки? не только пользователь root? - и еще одна вещь: СПАСИБО!
LanceBaynes
2
@LanceBaynes: это сейчас работает? ... Раньше я верил, что такие "неожиданные" поломки / ремонт произошли только с Widoze. К сожалению, я на некоторое время перестал верить в это. Но ... с другой стороны, это случается реже! И ваша приостановка работает, так что это отличные новости!
JM Becker
8

Попробуйте это как root:

PM_DEBUG=true pm-suspend

Затем проверьте /var/log/pm-suspend.logнамеки на то, что может пойти не так.

Если вы можете приостановить, но не возобновить, в вики Ubuntu есть хорошая статья о том, как отладить эту проблему.

Мика Фишер
источник
2

Если вы хотите получить только когда вы приостановили / возобновили работу системы, вы можете попробовать это:

cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb  7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb  7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb  7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb  7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb  7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb  7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.
dmatej
источник
1

Как предполагает Мика, от имени root:

PM_DEBUG=true pm-suspend

Подробности в:

/var/log/pm-suspend.log

В этом случае вы ищете где

[...] service [servicename] suspend suspend success

заканчивается, и

[...] service [servicename] suspend resume success

начинается. Где-то посередине вы можете найти вызовы, возвращающие ошибку, в этот момент приостановка запрещена. В этом случае вы можете приостановить внесение изменений. Выясните, какой сервисный вызов вызывает ошибку, откройте ее в vi и посмотрите на нее.

У меня возникла та же проблема, когда после установки xboxdrvна Ubuntu 12.04 при выполнении правила в вызове /etc/pm/sleep.d/была попытка остановить службу, которая никогда не запускалась или вообще не существовала, в данном случае xboxdrv. Оказывается, он никогда не мог быть запущен, потому что не было /lib/modules/uinput.koмодуля, потому что этот модуль объединен с ядром. Это привело к тому, что оператор case /etc/pm/sleep.d/xboxdrvвыдает ошибку, когда регистр соответствует «suspend» вызову service xboxdrv stop. Предварительная строка с #пропуском оператора, за счет необходимости отсоединить и снова подключить контроллер при приостановке, а затем возобновить.

SYANiDE
источник
У меня нет ошибок в журнале отладки после запуска этого, но волшебным образом он снова начал работать ;-) Мне интересно, если это постоянное исправление ...
Wirone