Не могу возобновить после спящего режима


9

Я использовал Hibernate с Ubuntu 16.04 без проблем, но вдруг он перестал работать правильно. Будь я в спящем режиме из меню питания или с помощью sudo pm-hibernate, он выключает компьютер, но когда я снова включаю его и выбираю Ubuntu из меню Grub, он просто дает черный экран. Я пробовал некоторые решения (перечисленные ниже), но ни одно не помогло.

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

PS: У меня двойная загрузка с Windows 10, но hibernate долгое время прекрасно с ней работал.

Не работал:


У меня та же проблема с моим ноутбуком - когда я возвращаюсь из спящего режима - черный экран. Для меня это никогда не работало. «Обходной путь» для моего ноутбука - нажать ALT + CTRL + F1, затем подождать несколько секунд, затем нажать ALT + CTRL + F7. Это возвращает его к жизни (на моем ноутбуке).
Ванесса Диган

Спасибо за предложение, у меня не получилось.
Карим Сонбол

Как насчет просто закрыть крышку и открыть ее снова? (стоит попробовать!)
Ванесса Диган

Еще раз спасибо @VanessaDeagan, но все равно ничего не произошло.
Карим Сонбол

1
Если вы еще этого не видели: bugs.launchpad.net/bugs/1743094
Стив

Ответы:


9

У меня были такие же проблемы. В последнем ядре 16.04 есть ошибка. Вот явные шаги, которые я сделал. Сделайте первый и, если это решит проблему для вас, остановитесь на этом. Если нет, продолжайте.

1. Установите компьютер для загрузки с предыдущим ядром

Начните с:

uname -r

Мой говорит 4.13 ... Тогда сделайте:

grep -i "menuentry" /boot/grub/grub.cfg

Вы увидите различные пункты меню в grub. В моем случае вместе с «Ubuntu, с Linux 4.13 ...» была опция меню для загрузки с предыдущим ядром. Там сказано Ubuntu, с Linux 4.10.0-28-generic . В той же строке у вас есть что-то вроде 'gnulinux-4.10.0-28-generic-advanced ... (куча символов здесь)'. Скопируйте этот текст, а затем мы должны указать grub2 загрузиться с этим ядром по умолчанию:

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

Затем я вставил эту строку:

GRUB_DEFAULT = "gnulinux продвинутого-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-родовой продвинутый-4a50e1e8-56d9-413e-9954-55648888a31d"

Пожалуйста, не копируйте эту строку буквально, а используйте вывод предыдущей команды grep, как сказано. Затем сохраните и,

sudo update-grub

Затем перезагрузите компьютер и проверьте, что вывод «uname -r» - это старое ядро ​​(4.10 ... в моем случае). Вы можете быть в состоянии гибернации сейчас или нет. Если нет, перейдите к следующему шагу.

2. Установите другие вещи в спящий режим, чем по умолчанию:

В моем случае использование более старого ядра избавило от черного экрана смерти и позволило мне возобновить работу после спящего режима, но содержимое образа диска было уничтожено, т. Е. Оно было идентично перезагрузке, а не гибернации. Поэтому я установил немного дерьма, которое по-другому зимует:

sudo apt-get установить uswsusp

Затем закройте терминал, снова откройте его и введите:

sudo s2disk

Это должно привести компьютер в спящий режим. Если после возобновления все так, как вы его оставили, значит, вы решили проблему. Но вам все равно нужно перейти к шагу 4, чтобы сообщить Ubuntu, что вы хотите использовать новый материал по умолчанию, а также что у вас должны быть варианты перехода в спящий режим в приложениях.

3. Скажите grub 2, где находится раздел подкачки:

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

кошка / etc / fstab

Я мог прочитать там "# swap был на / dev / sda2 во время установки", поэтому я снова отредактировал grub:

sudo gedit / etc / default / grub

И добавил:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = отключить резюме = / dev / sda2"

Важной частью является "resume = / dev / sda2", но предыдущая вещь (intel blablabla) есть по другим причинам. Ну, следующий шаг:

sudo update-grub

Перезагрузитесь и попробуйте снова перейти в режим гибернации с некоторыми событиями (например, открыть фильм с помощью vlc) с помощью:

sudo s2disk

Если после того, как вы возобновите работу, материал все еще там, вы решили проблему.

4. Говоря Ubuntu, что вы используете новую версию Hibernation вместо установленной по умолчанию:

Теперь вы должны указать Ubuntu использовать s2disk для перехода в спящий режим вместо того, что поставляется по умолчанию:

sudo gedit /etc/pm/config.d/00sleep_module

И вставьте туда:

SLEEP_MODULE = "uswsusp"

Сохраните и закройте файл. Затем:

sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

И вставьте туда:

[Повторно включить спящий режим по умолчанию в upower]

Идентичность = Unix-пользователь: *

Действие = org.freedesktop.upower.hibernate

ResultActive = да

[Включить спящий режим по умолчанию в logind]

Идентичность = Unix-пользователь: *

Действие = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-зимуют ключ; org.freedesktop.login1; org.freedesktop.login1.hibernate многодисковых сессий; org.freedesktop.login1.hibernate-ignore- Блокировка

ResultActive = да

Перезагрузитесь и попробуйте снова.

5. Если после выполнения шага 4 вы не можете использовать спящий режим, sudo systemctl hibernateвыполните следующие действия.

Шаг 4 недостаточно, чтобы перейти на uswsusp в Ubuntu 18.10.

Изменить сервис гибернации

sudo systemctl edit systemd-hibernate.service

И добавьте следующее

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Обновление systemd

sudo systemctl daemon-reload

Проверьте настройки, выполнив следующие

sudo systemctl hibernate


Спасибо, я выбрал старое ядро ​​из меню загрузки и с ним работает hibernate. Я проверю другие шаги обновления grub позже, но я надеюсь, что они исправят текущее ядро ​​в ближайшее время.
Карим Сонбол

На самом деле, я выбрал старое ядро ​​один раз из меню Grub, а затем в спящем режиме. Когда я снова открываю его и выбираю обычную опцию «Ubuntu» без расширенных опций, он как бы запоминает мой выбор и использует старое ядро, и, к счастью, все мои открытые приложения на месте.
Карим Сонбол

есть ли какая-то особая причина не просто удалить новое ядро ​​и придерживаться старого?
lrkwz

3

@karim У меня была такая же проблема, вот как это исправить:

Используйте UUID раздела подкачки вместо его точки монтирования в параметре RESUME resume=UUID=#в обоих /etc/default/grubи/etc/initramfs-tools/conf.d/resume

Создайте запись для раздела подкачки /etc/fstab без точки монтирования примерно так

# Entry for Swap : 
UUID=# none  swap    sw              0       0

В /etc/default/grubя использовал отдельный вход для возобновления Гибернации

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Создайте policykit в местном органе власти (pkla), как объяснено @Mephisto

Обновите initramfs и GRUB

sudo update-initramfs -u -k all
sudo update-grub

Перезагрузитесь, откройте некоторые приложения и используйте systemctl hibernate(без sudo), чтобы увидеть, работает ли он


У меня все настроено, кроме «sudo update-initramfs -u -k all», похоже, исправило мою проблему. Спасибо.
Zamicol

2

Спасибо всем за ваши ответы. Проблема была решена в ядре 4.15. Я только что попробовал сейчас, и это работает. Очевидно ядро ​​HWE исправило это ( linux-generic-hwe-16.04 package).

Если вы используете Ubuntu 16.04, вам просто нужно установить последние обновления для обновления ядра. Вы можете прочитать более подробную информацию об этом здесь .

Моя текущая версия ядра 4.15.0-33-generic.


2

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

Возможно, именно sudo add-apt-repository ppa:graphics-driversppa установил «Extra» Stuff и / или драйвер 396, который испортил гибернацию моего ноутбука. В любом случае, он работает безупречно во время написания с протестированным драйвером NVidia 390. До перехода на нуво водитель работал.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.