HP Envy x360 не может приостановить работу

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

У меня есть HP Envy x360, который работает под управлением Ubuntu 18.04 уже год. На прошлой неделе у него возникла проблема, из-за которой устройство перестало корректно приостанавливаться. В частности, когда я приостанавливаю работу устройства, а затем пытаюсь снова его разбудить, все, что оно показывает, это черный экран (без курсора или чего-либо еще), и ничто не влияет на дисплей, кроме отключения питания и перезапуска устройства. Приостановка любым из следующих способов дает тот же результат

  • Использование опции "Suspend" в главном меню
  • Закрытие крышки ноутбука
  • Простое ожидание в течение получаса, пока устройство не приостановится само по себе

Устройство действительно приостанавливается неправильно; это не просто проблема с видео, так как 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.
  • Installing xscreensaver or gnome-screensaver.
  • nouveau.modeset=0 в /etc/default/grub (хотя у меня графика Intel, так что я не думал, что это что-то даст).
  • Blacklisting amdgpu.
  • Обновление до Ubuntu 19.10.
  • Требуем от устройства использовать "глубокую" приостановку с помощью echo deep >/sys/power/mem_sleep (с соответствующими правами sudo, конечно).
  • Удаление light-locker (он не был установлен с самого начала).
  • Обновление ядра (мое было уже обновлено).
  • Переформатирование диска и повторная установка Ubuntu 18.04.

Однако, если я загружаюсь с LiveUSB Ubuntu 18.04.4, приостановка работает.

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

1
задан 27 March 2020 в 23:38

1 ответ

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

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 при загрузке.

3
ответ дан 19 September 2020 в 10:44

Другие вопросы по тегам:

Похожие вопросы: