Как отладить приостановить?

29

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

Мне нужна помощь.

Где я могу найти проблему? Что мне сделать, чтобы это исправить? Я возлагаю на это награду, потому что буквально потерял часы своей жизни из-за этой проблемы, и оставив свой компьютер ВСЕМ, время ужасное.

Симптомы:

  • Нажатие приостановки приводит мой компьютер в состояние, в котором мигает курсор, вентиляторы работают, кажется, что HD выключен (я думаю), и я ничего не могу сделать, чтобы вывести его из этого состояния (если не считать жесткая перезагрузка).
  • Возможно, это связано с тем, что мои вентиляторы остаются включенными даже после выключения, и даже в этом случае мне приходится нажимать кнопку питания в течение пяти секунд, прежде чем я смогу запустить ее снова.
  • Я не знаю, какие журналы нужно искать для устранения проблемы, и я думаю, что они все равно будут очищены при перезагрузке.

Пожалуйста, пожалуйста, помогите. Это сводит меня с ума, и я живу с этим больше года.

mlissner
источник
Вам повезло с этим? Я лично застрял инициализации графического оборудования. Я мог бы, вероятно, запрограммировать свой выход из него, если бы у меня было достаточно времени ... но было бы намного проще, если бы у меня был какой-то метод прямого решения проблемы.
Хенрик
Да не повезло Видимо, нет способа отладки suspend, что немного шокирует.
mlissner
1
Как вы приостановили? Ты бежишь из командной строки pm-suspend? Вы используете клавишу приостановки на клавиатуре? Вы звоните в acpi (например, /etc/acpi/sleep.sh или /etc/acpi/sleepbtn.sh) ??
М. Тиббитс
1
Для охотников за головами: я ищу в основном общие рецепты отладки, т.е. сбор информации, для более поздних установок Ubuntu с использованием systemd. Я надеюсь, что мы сможем использовать этот вопрос в качестве канонического дубликата для широкого круга проблемных вопросов неопытных пользователей.
Дэвид Фёрстер
2
@pbhj: В любом случае нужно правильно диагностировать проблему как первый шаг на пути к решению.
Дэвид Фёрстер

Ответы:

22

С https://wiki.ubuntu.com/UnderstandingSuspend

  • Самая большая проблема - графическое оборудование
  • попробуй приостановить без ограничений устройства (nvidia, fglrx)
  • Ядро не знает, как обращаться с графическими устройствами
  • BIOS знает, как восстановить графическое состояние
    • через 16-битный сегментированный режим C000: xxxx содержит видимое 64 Кб видеопамяти.
    • начиная выполнение с C000: 0003, обычно повторно отправляет видео BIOS (сообщение / usr / sbin / vbetool)
      • сложнее в 64-битном режиме, так как необходимо эмулировать 16-битные вызовы.
      • некоторая память находится в диапазоне 3-4G, что требует повторного отображения при эмуляции, чтобы избежать попадания в ядро, отображаемое в том же пространстве. o видео BIOS может выгружать POST-код из окна C000 o nvidia BIOS перезаписывает ПЗУ, чтобы просто вернуться, чтобы остановить повторную POSTing, попытаться приостановить работу с консоли (через /etc/acpi/sleep.sh)
    • убедитесь, что вы вышли из Xorg (или запустите sleep.sh с аргументом force)
    • если видео BIOS не осталось в нормальном состоянии, возврат в Xorg может привести к зависанию оборудования
    • тестирует capslock при возобновлении (если нет capslock, ядро ​​зависло)
    • если подсветка не включается, видео BIOS, вероятно, не инициализируется повторно
    • Если экран пуст, но имеет подсветку, попробуйте нажать Enter или переключиться между виртуальными терминалами.
    • попробуйте в однопользовательском режиме (добавив «single» в параметры загрузки ядра grub)
    • для получения подробной информации о действиях, попробуйте bash -x /etc/acpi/sleep.sh> /root/sleep.log 2> & 1
    • посмотрите информацию о dmidecode, которая соответствует настройкам в /usr/share/acpi-support/*.config
    • если консоль однопользовательского режима приостановить или возобновить не удалось
    • Трассировка PM (echo "1"> / sys / power / pm_trace), которая записывает хэши устройства в системный таймер
    • попытка приостановить
    • после сбоя при перезагрузке проверьте вывод dmesg на предмет записей "хеш устройства", чтобы отследить устройство, которое зависло в системе во время возобновления.
    • знайте, что это сбросит системные часы, и fsck выйдет из себя («ушел без fsck в течение 31337 дней»). рассмотрим tune2fs -c 0 / dev / your / filesystems.
Хенрик
источник
2
Как отключить ограниченные устройства?
Оуэн
1
какие-либо ссылки на рабочие скрипты для проверки работоспособности флажок, когда приостановить не удается? ... этот вид проблемы - бич linux и блокирует массовое использование ...
Скотт
4

Вы можете найти много рекомендаций / советов здесь и здесь .

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

евгений
источник
2
Я перечитал их, но в них не хватает действительно полезной информации для моей проблемы. Нужна дополнительная помощь и лучшие подробности. Я создал награду за этот вопрос.
mlissner
4
Плохой ответ - просто ссылки. Суть стека * -сайтов заключается в том, чтобы предоставить место для ответов на все вопросы, а не отправлять пользователей в бесконечную погоню за гусей или говорить «просто поиграйте в Google». Пожалуйста, вставьте свой ответ в вопрос и обновите его в соответствии с комментарием mlissner.
Хенрик
Спасибо: иногда полезно прочитать оригинальную домашнюю страницу!
abu_bua
4

Симптомы:

  • Нажатие приостановки приводит мой компьютер в состояние, в котором мигает курсор, вентиляторы работают, кажется, что HD выключен (я думаю), и я ничего не могу сделать, чтобы вывести его из этого состояния (если не считать жесткая перезагрузка).
  • Возможно, это связано с тем, что мои вентиляторы остаются включенными даже после выключения, и даже в этом случае мне приходится нажимать кнопку питания в течение пяти секунд, прежде чем я смогу запустить ее снова.
  • Я не знаю, какие журналы нужно искать для устранения проблемы, и я думаю, что они все равно будут очищены при перезагрузке.

Я захожу на сайт по многим проблемам с Linux - это Arch Linux. Вот что написано о проблемах приостановки / возобновления, аналогичных вашим:

Мгновенные пробуждения от приостановки

Для некоторых систем Intel Haswell с набором микросхем LynxPoint и LynxPoint-LP сообщается о мгновенных пробуждениях после приостановки. Они связаны с ошибочными реализациями BIOS ACPI и тем, как xhci_hcdмодуль интерпретирует их во время загрузки. В качестве обходного пути сообщаемые уязвимые системы добавляются в черный список (именуемый XHCI_SPURIOUS_WAKEUP) ядром в каждом конкретном случае. [ 2 ]

Мгновенное возобновление может произойти, например, если USB-устройство подключено во время ожидания и активированы триггеры активации ACPI. Жизнеспособным обходным решением для такой системы, если она еще не находится в черном списке, является отключение триггеров пробуждения. Пример отключения пробуждения через USB описан ниже. [ 3 ]

Для просмотра текущей конфигурации:

$ cat /proc/acpi/wakeup

Device  S-state   Status   Sysfs node
...
EHC1      S3    *enabled  pci:0000:00:1d.0
EHC2      S3    *enabled  pci:0000:00:1a.0
XHC       S3    *enabled  pci:0000:00:14.0

...

Соответствующие устройства EHC1, EHC2и XHC(для USB 3.0). Чтобы изменить их состояние, вы должны отобразить имя устройства в файле как root.

# echo EHC1 > /proc/acpi/wakeup
# echo EHC2 > /proc/acpi/wakeup
# echo XHC > /proc/acpi/wakeup

Это должно привести к тому, что подвеска снова заработает. Тем не менее, эти настройки являются только временными и должны быть установлены при каждой перезагрузке. Чтобы автоматизировать это, взгляните на systemd # Запись файлов модулей . Посмотрите ветку BBS для возможного решения и дополнительной информации.


Вся статья Arch Linux выше о Suspend / Resume является отличным справочником для многих областей:

1 Low level interfaces
    1.1 kernel (swsusp)
    1.2 uswsusp
2 High level interfaces
    2.1 systemd
3 Hibernation
    3.1 About swap partition/file size
    3.2 Required kernel parameters
        3.2.1 Hibernation into swap file
    3.3 Configure the initramfs
4 Troubleshooting
    4.1 ACPI_OS_NAME
    4.2 VAIO Users
    4.3 Suspend/hibernate doesn't work, or not consistently
    4.4 Wake-on-LAN
    4.5 Instantaneous wakeups from suspend
WinEunuuchs2Unix
источник
Выглядит хорошо! Я подожду еще день или два, чтобы дать другим возможность ответить. Может быть, кто-то будет чувствовать себя вдохновленным вашим :-)
Дэвид Фёрстер
@DavidFoerster Спасибо. Сложно ответить на 8-летний вопрос. Существует также проблема приостановки / возобновления работы с твердотельными накопителями NVMe M.2 PCIe, которые я добавлю сегодня вечером. Эти типы SSD не существовали в 2010 году и требуют специального аргумента ядра grub.
WinEunuuchs2Unix
Я меньше искал решения для конкретных проблем с приостановкой и больше для общих рецептов отладки для более поздних установок Ubuntu с использованием systemd.
Дэвид Фёрстер
@DavidFoerster. В таком случае я оставлю ответ таким, какой он есть :)
WinEunuuchs2Unix