Итак, насколько я могу судить, здесь уже сотни и сотни вопросов "нельзя приостановить", но я копался в них, и ни одно из предложенных решений не работает, так что вот он я.
У меня есть HP Envy x360, который работает под управлением Ubuntu 18.04 уже год. На прошлой неделе у него возникла проблема, из-за которой устройство перестало корректно приостанавливаться. В частности, когда я приостанавливаю работу устройства, а затем пытаюсь снова его разбудить, все, что оно показывает, это черный экран (без курсора или чего-либо еще), и ничто не влияет на дисплей, кроме отключения питания и перезапуска устройства. Приостановка любым из следующих способов дает тот же результат
Устройство действительно приостанавливается неправильно; это не просто проблема с видео, так как CTRL+ALT+F1 и т.д. не имеют никакого эффекта, и я также не могу войти в устройство после неудачного пробуждения. Светодиод питания устройства остается включенным, даже когда устройство якобы приостановлено.
/sys/power/mem_sleep
содержимое:
[s2idle]
Соответствующие записи из /var/log/kern.log
:
Mar 27 15:51:33 silvenvius kernel: [ 1580.034024] wlo1: deauthenticating from 08:02:8e:d1:5f:90 by local choice (Reason: 3=DEAUTH_LEAVING)
Mar 27 15:51:33 silvenvius kernel: [ 1580.178236] PM: suspend entry (s2idle)
(Да, это оно. Следующие записи сделаны после перезагрузки после принудительного выключения устройства)
Я также должен отметить, что в ходе устранения этой проблемы я отформатировал диск и переустановил Ubuntu с USB, безрезультатно. Так что сейчас я запускаю свежий Ubuntu, который демонстрирует эту проблему, на устройстве, которое раньше не имело этой проблемы.
Что я пробовал, что не работает:
gdm3
на lightdm
. xscreensaver
or gnome-screensaver
. nouveau.modeset=0
в /etc/default/grub
(хотя у меня графика Intel, так что я не думал, что это что-то даст). amdgpu
. echo deep >/sys/power/mem_sleep
(с соответствующими правами sudo, конечно). light-locker
(он не был установлен с самого начала). Однако, если я загружаюсь с LiveUSB Ubuntu 18.04.4, приостановка работает.
У меня немного не хватает вариантов, и мой ядерный вариант "переустановить с нуля" уже провалился, поэтому любые дальнейшие советы о том, как отладить и в идеале исправить это, будут очень признательны.
Мучаюсь теми же проблемами, пока еще не решил их, сузил проблему. Я надеюсь, что это объяснение и содержащиеся в нем технические ключевые слова помогут большему количеству людей понять, что происходит.
TL;DR: на некоторых «современных» аппаратных средствах BIOS больше не сообщает о классическом состоянии питания «S3/suspend-to-ram» в пользу новой функции Microsoft « Modern Suspend » (также известной как «S0ix» или «s2idle»).
Кроме того: в графическом драйвере AMDGPU есть проблемы с возобновлением работы
Для первой проблемы (отсутствие поддержки S3) единственное правильное решение этой проблемы заключается в том, что производитель ноутбука выпускает обновленный BIOS. , что позволяет переключать режимы приостановки между «современной Windows 10» и «классической S3».(То, как Microsoft указала, что современная приостановка является взаимоисключающей с классическим глубоким сном, BIOS не может объявить оба одновременно)
Физические симптомы этой проблемы заключаются в том, что после входа в приостановку ваш индикатор питания никогда не начинает мигать. , он просто остается включенным.
Возможны обходные пути путем предоставления обновленных таблиц BIOS во время загрузки. Однако это нетривиальный процесс, который может привести к необратимому повреждению оборудования, если он будет выполнен неправильно. (В настоящее время я обсуждаю вопрос о возврате ноутбука или попытке сделать это)
Вторая проблема заключается в том, что в некоторых/во многих случаях AMDGPU зависает при возобновлении работы.
Если ваш ноутбук успешно входит в режим ожидания (мигает светодиод питания), но экран не включается после пробуждения компьютера, у вас возникла эта проблема.
В этой ситуации вы должны по-прежнему иметь возможность подключиться к машине по протоколу SSH.
Если вы можете подключиться к машине по SSH, журнал dmesg
будет заполнен десятками ошибок, подобных
[ 746.326429] [drm:amdgpu_job_run [amdgpu]] *ERROR* Error scheduling IBs (-22)
[ 746.326444] amdgpu 0000:04:00.0: couldn't schedule ib on ring <sdma0>
. Вы можете определить, является ли отсутствие поддержки S3 проблемой, с помощью следующих команд, которые запрашивают ядро, которое режимы приостановки, которые он определил во время загрузки:
dmesg | grep -i acpi | grep supports
[ 0.417055] ACPI: (supports S0)
Как вы можете видеть, на моем Envy x360 отсутствует «S3»/suspend-to-ram. (Как и S4/suspend-to-disk)
cat /sys/power/mem_sleep
[s2idle]
Мы надеемся, что запись «deep
» также присутствует.
[]
указывает, какое состояние является значением по умолчанию.
Здесь вы найдете дополнительную информацию, включая обходные пути, которые включают принудительное переопределение ваших таблиц ACPI при загрузке.