Ubuntu 12.10 зависает после перехода в режим ожидания
После того, как я очень долго страдал от этой проблемы, я решил "спросить убунту". Я знаю, что есть достаточно информации об этой проблеме, но ни одна из них не сработала для меня до сих пор.
Симптомы:
При нажатии кнопки приостановки в Ubuntu (время от времени) экран становится черным, и через несколько секунд вентиляторы начинают работать быстро (очевидно, из-за использования процессора). У меня была эта проблема как в Ubuntu 12.04, так и в 12.10 (после обновления).
Много решений было предложено для этой проблемы, но ни одно, кажется, не работает для меня. Например, есть этот пост:
Вся система зависает после нажатия "Приостановить" [закрыто]
Подсказки для причины этой проблемы, и что я выяснил:
Прежде всего я должен отметить, что у меня есть графический процессор AMD Radeon HD 6470M и установлены драйверы AMD (я не использую проприетарные драйверы, потому что они не обрабатывают GPU так же, как драйверы AMD). Вероятно, это ключ к этой проблеме.
Я где-то нашел предложение (но сейчас не могу найти ссылку на форум), что Ubuntu нужно отправлять в спящий режим с помощью команд оболочки:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Я не могу вспомнить, требует ли это для установки какого-либо пакета или нет. Как бы то ни было, вначале мне это казалось работающим, но вскоре после того, как я начал использовать эту команду, проблема вернулась.
Тогда у меня возникла идея:
Мне показалось, что проблема возникает из-за использования драйверов AMD и что при приостановке ЦП застревает в каком-то бесконечном цикле, поэтому я решил отслеживать свои процессы и отправлять компьютер в спящий режим (используя скрипт) только после того, как процесс "compiz" не использует процессор (мониторинг с помощью "системного монитора"). Это может показаться странной идеей, но, похоже, она работает почти полностью.
В настоящее время я отправляю Ubuntu для приостановки с помощью приведенного выше сценария, когда вижу, что все процессы бездействуют (загрузка ЦП отсутствует), и он работает без проблем почти каждый раз. К сожалению, каждый второй раз Ubuntu зависает, как и раньше. Но эти случаи встречаются реже, чем раньше.
Обновление (от 26 октября 2013 г.) - А (хлипкое) решение:
Кажется, что после еще нескольких тестов работает следующий метод:
- Откройте "Системный монитор" и выберите вкладку "Процессы". Обязательно выберите опцию Просмотр->Все процессы.
- Прежде чем отправлять запрос на приостановку, подождите, пока процессы "compiz" и "Xorg" дойдут до простоя при использовании процессора.
Запрос приостановки с помощью команд (в терминале):
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
(Использование ярлыка Ubuntu "suspend" также может работать. Я еще не проверял его).
Очевидно, это не идеальное решение, но оно выполняет свою работу. Это самое большее, что я могу сделать со своими знаниями о Linux.
Итак, призыв о помощи все еще включен. Если у кого-то есть идеи, как окончательно решить эту проблему или продолжить ее отладку, любая помощь будет принята с благодарностью.