Как получить спящий режим на Dell Inspiron 15 7000? [dубликат]

Как я должен успешно спящий Ubuntu 16.04?

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

66
задан 13 April 2017 в 15:24

81 ответ

Для меня он работает, чтобы установить пакет hibernate, перезагрузить компьютер и затем запустить sudo hibernate-disk. Я уверен, что это можно добавить в меню, но не стоит времени для меня.

1
ответ дан 17 July 2018 в 21:58

Я думаю, как включить спящий режим для ответа 16.04, известно всем, как описано в Ubuntu Wiki (см. ниже, если вам нужны этапы). Но вещи, которые нуждаются в проверке, не являются тщательными, я думаю. По крайней мере, это то, что я нашел.

Что проверить

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

Вот некоторые проверки -

Убедитесь, что вы не используете какие-либо разделы btrfs. Да. Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools. sudo apt-get purge btrfs-tools Возможно, вы захотите проверить другие типы разделов, которые недостаточно хорошо протестированы. Без удаления пакета черный список драйверов также может работать, но я не тестировал это. Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

Шаги по включению спящего режима

Он включает в себя следующие шаги

Убедитесь, что вы не используете какие-либо разделы btrfs. Да. Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools. sudo apt-get purge btrfs-tools Возможно, вы захотите проверить другие типы разделов, которые недостаточно хорошо протестированы. Без удаления пакета черный список драйверов также может работать, но я не тестировал это.

Убедитесь, что вы не используете какие-либо разделы btrfs. Да. Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools.

[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

sudo systemctl restart polkitd.service

Поместите это содержимое в этот файл

16
ответ дан 17 July 2018 в 21:58

Secure Boot

(я задал один и тот же вопрос с просьбой сосредоточиться на ответах на основе systemd, поделившись своим решением здесь для людей, следующих за этим вопросом)

Это решение исходит из похожие вопросы (они сделали переход к systemd некоторое время назад, поэтому там больше материала).

В моем случае (новая версия 16.04.1 устанавливается на машине, которая всегда поддерживала спящий режим) , вызов устаревшего sudo pm-hibernate, похоже, ничего не сделал, и обновленный метод systemd systemctl hibernate вернется:

Failed to hibernate system via logind: Sleep verb not supported

Оказывается, что безопасная загрузка была виновницей: установка 16.04 вас спрашивают, что вы хотите с ним делать (что, насколько я помню, это новая вещь), и я сохранил ее, не задумываясь.

На моей машине с безопасной загрузкой ON, cat /sys/power/disk ответил:

[disabled]

После перезагрузки и отключения безопасной загрузки в настройках BIOS (это зависит от машины, но обычно довольно просто), я попробовал cat /sys/power/disk и получил:

[platform] shutdown reboot suspend

, который выглядит лучше. И действительно, вызов systemctl hibernate приводит к успешной последовательности спящего / оттаивания.

Кроме того, после этого я мог видеть, что спящий режим доступен в качестве опции в разных местах графического интерфейса, без необходимости взлома polkit. Таким образом, кажется, что systemd фактически угадывал из /sys/power/disk, что система не могла спячки.

3
ответ дан 17 July 2018 в 21:58

Расширяя свой собственный комментарий к ответу kelvinelove, файл, который он предлагает, редактирование не существует в моей системе (свежий Ubuntu 16.04). Вместо этого я сделал это:

sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla Ищите эти разделы (они правы друг с другом): [Отключить спящий режим по умолчанию в upower] Identity = unix-user: * Action = org.freedesktop. upower.hibernate ResultActive = нет [Отключить спящий режим по умолчанию в логине] Identity = unix-user: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; ResultActive = no Change ResultActive = no to ResultActive = yes для обоих из них. Нажмите Ctrl + O, чтобы сохранить файл. Перезагрузите компьютер. Опция Hibernate теперь доступна в ваших меню питания.

EDIT: Gunnar отметил, что этот файл перезаписывается, если определенный пакет обновляется, поэтому в зависимости от ваших намерений это скорее всего не лучшее решение.

Источник: http: / /www.zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04/

2
ответ дан 17 July 2018 в 21:58

Вы можете использовать

sudo pm-hibernate

, чтобы проверить, работает ли спящий режим в вашей системе (это приведет к спячке на вашем компьютере).

Если это не сработает, проверьте, по крайней мере такой же, как ваша оперативная память.

Чтобы добавить опцию в меню настроек, вы можете создать файл конфигурации. Откройте окно терминала и запустите эту команду:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Он открывает nano с пустым файлом. Скопируйте приведенные ниже строки и вставьте их в окно nano.

[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes

Затем сохраните изменения и закройте nano и перезагрузите систему, чтобы сделать доступным Hibernate в разделе «Параметры питания».

Ссылка: Как спящий режим на моем компьютере? в официальной документации для Ubuntu 16.04.

Надеюсь, что это сработает. Это работало для меня после того, как вы пробовали все другие варианты.

42
ответ дан 17 July 2018 в 21:58

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Протестируйте машину, открыв терминал (Ctrl + Alt + T), а затем введите sudo pm-hibernate

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

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

Отредактируйте открытый файл и добавьте следующие строки:

[Re-enable hibernation] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes

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

2
ответ дан 17 July 2018 в 21:58

Вы должны вручную включить его с небольшими усилиями. По умолчанию он отключен.

http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/

Тогда, если это не работает, это может быть проблема с ядром 4.4.0, и вам, возможно, придется обновить ядро.

0
ответ дан 17 July 2018 в 21:58

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

В моем случае, запуская Ubuntu 16.10 на Lenovo u300s, чтобы спящий режим работал Я должен был сделать следующее:

Создайте файл подкачки соответствующего размера (обычно я устанавливаю размер ~ 1x, но я слышал до 1.6x и 2x) Edit /etc/default/grub, чтобы включить следующая строка: GRUB_CMDLINE_LINUX_DEFAULT = "splash quiet pci = nomsi RESUME = UUID = 92781adb-f2a6-4f15-88fc-e1ce801291dd"

RESUME ссылается на ваш UUID файла подкачки. В частности, на моей машине настройка pci=nomsi была ключом.

Удачи!

2
ответ дан 17 July 2018 в 21:58

Спящий режим с использованием systemctl и его работа в трудных случаях

Для меня pm-hibernate всегда терпит неудачу. После некоторых настроек я смог спящий режим использовать интерфейс systemd (init system в 16.04 и выше). Мне также удалось заставить его работать с 17.04 с файлом подкачки. Это будет полезно для других с проблемами.

Первая попытка:

sudo systemctl hibernate

Если это не удается, начните поиск неисправностей: в состоянии спящего режима (HTD или ACPI S4) машина состояние записывается на диск, поэтому для его сохранения не требуется никакой энергии. Состояние записывается либо в раздел подкачки, либо в файл подкачки. Примечание: если вы используете BTRFS, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы

. Ваш раздел подкачки или файл подкачки, возможно, должен быть того же размера, что и RAM, чтобы разрешить спящий режим, но есть хорошая Вероятно, вы сможете спящий режим, если он равен по меньшей мере 2/5 размерам ОЗУ, согласно странице вики Arch, поэтому сначала попробуйте выполнить другие шаги, прежде чем увеличивать размер свопинга.

Примечание: если вы используете BTRFS, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы

Найти свой раздел подкачки:

grep swap /etc/fstab

для меня это возвращает (частичный вывод)

# swap was on /dev/mmcblk0p3 during installation

, где /dev/mmcblk0p3 является разделом для указания

Добавить параметр загрузки:

sudoedit /etc/default/grub

В начало строки GRUB_CMDLINE_LINUX_DEFAULT добавьте resume=/dev/YourSwapPartition в раздел в кавычках (замените на раздел, который вы определили ранее). Используя мой пример:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mmcblk0p3"

При каждом изменении этого файла вы должны запустить sudo update-grub или изменения не будут иметь эффекта.

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

sudo systemctl hibernate

. Для возобновления нажмите кнопку питания и система загрузится.

Если у вас все еще есть проблемы, начните отладку ,

В качестве примера я приведу пример, приведенный ниже, но подробную информацию о состояниях отладки S можно найти на странице вики Arch , а также на этом.

Set еще несколько параметров загрузки для сбора дополнительной информации. Удалите quiet и splash и добавьте initcall_debug и no_console_suspend, которые вызовут системные вызовы init, которые будут напечатаны на консоли, чтобы вы могли смотреть, что происходит неправильно. Я установил это:

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/mmcblk0p3 no_console_suspend initcall_debug"

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

В моем случае после возобновления я потерял WiFi, и ядро ​​явно расстроилось как большинство команд (например, прочитав что-нибудь из /sys, перезагружая модули или любую команду systemctl), не получилось бы - процесс, похоже, начнется и просто повесит (все это будет возвращено в нормальное состояние после перезагрузки, конечно). Наблюдая за тем, как система очень медленно закрывается и читает все отладочные сообщения, я заметил, что проблем с «brcm» было много, поэтому я догадался, что мой модуль беспроводной связи Broadcom виноват. Разумеется, я скорректировал процедуру спящего режима, чтобы сначала выгрузить модуль:

sudo modprobe -r brcmfmac sudo systemctl hibernate

в возобновлении I снова вставить модуль

sudo modprobe brcmfmac

И все работает отлично. Мне также нужно загладить модуль btsdio, который кажется несовместимым с brcmfmac

Обновление: спящий режим с использованием файла подкачки 17.04.

Еще раз с помощью страницы с вики-версией Arch и некоторых дополнительных мастерингов мне удалось спящий режим работать с 17.04 с помощью файла подкачки. Для этого потребовался дополнительный параметр загрузки, resume_offset=n, где n - первое число под physical_offset в выводе sudo filefrag -v /swapfile:

$ sudo filefrag -v /swapfile Filesystem type is: ef53 File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 32767: 34816.. 67583: 32768: 1: 32768.. 63487: 67584.. 98303: 30720: ....

Поэтому дополнительный параметр загрузки в моем случае - resume_offset=34816. Вам все равно нужно установить параметр загрузки для возобновления раздела. Это будет корневой раздел (или какой-либо раздел, в котором находится ваш файл подкачки). Мои параметры:

GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=/dev/mmcblk1p2 resume_offset=34816"

Где /dev/mmcblk1p2 - мой корневой раздел (у вас более вероятно что-то вроде /dev/sda2).

Во время возобновления я видел, что загрузка изображения прошла успешно, но в моем случае (просто пример - YMMVAPD) тогда еще несколько драйверов (i2c_designware) забросали некоторые ошибки, и я получил полное зависание системы на резюме. Спящий режим работает, если я выгружаю эти модули в дополнение к brcmfmac, но система быстро становится непригодной для использования без этих модулей. Поэтому я сделал своего рода сценарий, чтобы выгрузить багги-модули и сразу же вставить их в резюме:

# remove buggy modules modprobe -r brcmfmac i2c_designware_platform i2c_designware_core && # hibernate echo disk > /sys/power/state # reinsert modprobe i2c_designware_core i2c_designware_platform brcmfmac

Когда я хочу спящий режим, я запускаю sudo bash script.

TL; DR

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

31
ответ дан 17 July 2018 в 21:58

Для меня он работает, чтобы установить пакет hibernate, перезагрузить компьютер и затем запустить sudo hibernate-disk. Я уверен, что это можно добавить в меню, но не стоит времени для меня.

1
ответ дан 23 July 2018 в 22:34

Я думаю, как включить спящий режим для ответа 16.04, известно всем, как описано в Ubuntu Wiki (см. ниже, если вам нужны этапы). Но вещи, которые нуждаются в проверке, не являются тщательными, я думаю. По крайней мере, это то, что я нашел.

Что проверить

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

Вот некоторые проверки -

Убедитесь, что вы не используете какие-либо разделы btrfs. Да. Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools. sudo apt-get purge btrfs-tools Возможно, вы захотите проверить другие типы разделов, которые недостаточно хорошо протестированы. Без удаления пакета черный список драйверов также может работать, но я не тестировал это. Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

Шаги по включению спящего режима

Он включает в себя следующие шаги

Убедитесь, что вы не используете какие-либо разделы btrfs. Да. Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools. sudo apt-get purge btrfs-tools Возможно, вы захотите проверить другие типы разделов, которые недостаточно хорошо протестированы. Без удаления пакета черный список драйверов также может работать, но я не тестировал это.

Убедитесь, что вы не используете какие-либо разделы btrfs. Да. Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools.

[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

sudo systemctl restart polkitd.service

Поместите это содержимое в этот файл

16
ответ дан 23 July 2018 в 22:34
  • 1
    Спасибо, Анвар. Я подал ошибку # 1619846 и передал вам ваш ответ выше. Вы можете предложить более точные изменения / дополнения к этой странице в официальной документации? – Gunnar Hjalmarsson 3 September 2016 в 07:57
  • 2
    @GunnarHjalmarsson Я бы предложил это предостережение. Но мне нужно больше тестеров, проверяющих это. Позволю вам узнать позже – Anwar 3 September 2016 в 08:54
  • 3
    Хорошо, давайте поговорим больше. – Gunnar Hjalmarsson 3 September 2016 в 09:00
  • 4
    Я установил на раздел btrfs и очистил btrfs-tools в соответствии с вашими инструкциями. Все еще не может спячки. – Oxwivi 4 September 2016 в 12:04
  • 5
    На диске есть только vfat для UEFI, btrfs и swap. Я на самом деле подозреваю, что это связано с аппаратным обеспечением (ноутбук AMD). Я собираюсь проверить это на другой системе с помощью btrfs и вернуться к вам. – Oxwivi 4 September 2016 в 14:03

Secure Boot

(я задал один и тот же вопрос с просьбой сосредоточиться на ответах на основе systemd, поделившись своим решением здесь для людей, следующих за этим вопросом)

Это решение исходит из похожие вопросы (они сделали переход к systemd некоторое время назад, поэтому там больше материала).

В моем случае (новая версия 16.04.1 устанавливается на машине, которая всегда поддерживала спящий режим) , вызов устаревшего sudo pm-hibernate, похоже, ничего не сделал, и обновленный метод systemd systemctl hibernate вернется:

Failed to hibernate system via logind: Sleep verb not supported

Оказывается, что безопасная загрузка была виновницей: установка 16.04 вас спрашивают, что вы хотите с ним делать (что, насколько я помню, это новая вещь), и я сохранил ее, не задумываясь.

На моей машине с безопасной загрузкой ON, cat /sys/power/disk ответил:

[disabled]

После перезагрузки и отключения безопасной загрузки в настройках BIOS (это зависит от машины, но обычно довольно просто), я попробовал cat /sys/power/disk и получил:

[platform] shutdown reboot suspend

, который выглядит лучше. И действительно, вызов systemctl hibernate приводит к успешной последовательности спящего / оттаивания.

Кроме того, после этого я мог видеть, что спящий режим доступен в качестве опции в разных местах графического интерфейса, без необходимости взлома polkit. Таким образом, кажется, что systemd фактически угадывал из /sys/power/disk, что система не могла спячки.

3
ответ дан 23 July 2018 в 22:34
  • 1
    Я сделал именно то, что вы здесь объяснили. Но после того, как я выполнил "systemctl hibernate" чтобы экран стал черным в течение 3 секунд, тогда рабочий стол вернулся со всеми моими открытыми программами, как до того, как я выполнил команду. Когда я выполнил команду «cat / sys / power / disk» ... он показал мне этот текст: «[платформа] shutdown reboot suspend test_resume & quot; что похоже на результат, когда вы выполняли то же самое со своей стороны, но с последним текстом: «test_resume». У вас есть идея, что я могу попытаться решить мою проблему? – foxhard 6 May 2018 в 19:58
  • 2
    Не слишком уверен, похоже, что спящий режим не работает из коробки на вашем оборудовании, поэтому он по умолчанию отключен, как указывали другие. Вы можете задать отдельный вопрос о своей конкретной проблеме. – Marc 14 May 2018 в 12:04
  • 3
    Только половина работы для меня. Спящий режим, но вместо того, чтобы просыпаться от спящего режима, переходит в обычную загрузку, а затем застревает навсегда до жесткого физического отключения. – matt 1 July 2018 в 23:11

Расширяя свой собственный комментарий к ответу kelvinelove, файл, который он предлагает, редактирование не существует в моей системе (свежий Ubuntu 16.04). Вместо этого я сделал это:

sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla Ищите эти разделы (они правы друг с другом): [Отключить спящий режим по умолчанию в upower] Identity = unix-user: * Action = org.freedesktop. upower.hibernate ResultActive = нет [Отключить спящий режим по умолчанию в логине] Identity = unix-user: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; ResultActive = no Change ResultActive = no to ResultActive = yes для обоих из них. Нажмите Ctrl + O, чтобы сохранить файл. Перезагрузите компьютер. Опция Hibernate теперь доступна в ваших меню питания.

EDIT: Gunnar отметил, что этот файл перезаписывается, если определенный пакет обновляется, поэтому в зависимости от ваших намерений это скорее всего не лучшее решение.

Источник: http: / /www.zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04/

2
ответ дан 23 July 2018 в 22:34
  • 1
    Файл в /etc не должен существовать по умолчанию. Это файл конфигурации, который вы создаете. Редактирование пакета, принадлежащего файлу, как вы предлагаете выше, является плохим советом, поскольку он будет перезаписан при следующем обновлении пакета. – Gunnar Hjalmarsson 2 September 2016 в 09:11
  • 2
    @GunnarHjalmarsson Если это так, я бы сказал, что следует сказать, что это может не существовать. Я ожидаю большего от наивысшего ответа Ask Ubuntu, чем «копировать / вставлять эту команду» - & gt; »& quot; type this & quot; который не имеет какой-либо проверки того, поступаете ли вы правильно (кроме проверки, если это сработало). Что, если кто-то найдет этот ответ через пару лет, но боится попробовать его, так как файл пуст, и инструкции явно указывают на добавление в файл, подразумевая, что он существует? Тем не менее, я ценю информацию, добавлю ее в ответ для завершения. – fgblomqvist 3 September 2016 в 04:05
  • 3
    Честная оценка; Я отредактировал ответ NirajW с этим разъяснением. Следует отметить, что исходный источник информации на этой странице рассказывает о создании . – Gunnar Hjalmarsson 3 September 2016 в 08:16

Вы можете использовать

sudo pm-hibernate

, чтобы проверить, работает ли спящий режим в вашей системе (это приведет к спячке на вашем компьютере).

Если это не сработает, проверьте, по крайней мере такой же, как ваша оперативная память.

Чтобы добавить опцию в меню настроек, вы можете создать файл конфигурации. Откройте окно терминала и запустите эту команду:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Он открывает nano с пустым файлом. Скопируйте приведенные ниже строки и вставьте их в окно nano.

[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes

Затем сохраните изменения и закройте nano и перезагрузите систему, чтобы сделать доступным Hibernate в разделе «Параметры питания».

Ссылка: Как спящий режим на моем компьютере? в официальной документации для Ubuntu 16.04.

Надеюсь, что это сработает. Это работало для меня после того, как вы пробовали все другие варианты.

42
ответ дан 23 July 2018 в 22:34
  • 1
    После редактирования файла нам потребуется перезагрузка, чтобы сделать доступным Hibernate в разделе «Параметры питания». – Jus12 15 January 2017 в 11:30
  • 2
    «sudo pm-hibernate» немедленно убил мою систему без предупреждения. Вы должны сказать людям, что это произойдет. – Yair Daon 9 June 2017 в 04:27
  • 3
    лучший ответ . Это также работает и с 17.4 и 17.10. – Saurabh Bhandari 23 September 2017 в 14:40
  • 4
    Этот ответ в сочетании с тем, который говорит, чтобы добавить & quot; resume = & quot; для GRUB_CMDLINE_LINUX_DEFAULT это решило для меня - thx! – Christoph 3 November 2017 в 19:21
  • 5
    У меня 17 ГБ в моем разделе подкачки и 16 ГБ ОЗУ, почему он не работает? Кажется, это спящий режим, потому что навсегда требуется выключить компьютер, тогда как если я сделаю & quot; shutdown & quot; он отключается почти сразу. Но когда я снова включу свой компьютер, все закрыто, и я должен начать все заново. Это совсем не спячка. Почему это не так просто, как в Windows? Мне нужна помощь, если у кого-то есть идеи о том, как я могу заставить его спящий режим. – user1271772 3 April 2018 в 09:38

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Протестируйте машину, открыв терминал (Ctrl + Alt + T), а затем введите sudo pm-hibernate

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

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

Отредактируйте открытый файл и добавьте следующие строки:

[Re-enable hibernation] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes

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

2
ответ дан 23 July 2018 в 22:34
  • 1
    У меня есть thinkpad -E550, и у меня нет проблем с спящим режимом, когда моя ОС - ubuntu 15.1 или windows8.1. но используя ubuntu 16.04, когда я использую команду «sudo pm-hibernate», , он не полностью переходит в спящий режим, и только экран становится черным, и машина все еще включена. – Mahyar 6 May 2016 в 21:14
  • 2
    В моем случае команда ничего не делает. Терминал переходит к новой строке и ожидает следующую команду, то есть предыдущая команда была выполнена. Но он ничего не делает at all – Aalok 17 July 2016 в 21:01
  • 3
    Это не работает для меня. Ubuntu 16.04. Опция Hibernate не появляется и отключается в настройках - & gt; Сила, что-нибудь еще? – Daniele Segato 7 August 2016 в 20:02
  • 4
    Редактирование уже существующей политики лучше: zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04 – fgblomqvist 24 August 2016 в 04:41
  • 5
    Неполное содержимое в com.ubuntu.enable-hibernate.pkla. См. Ответ, отправленный NirajW. – Gunnar Hjalmarsson 2 September 2016 в 09:31

Вы должны вручную включить его с небольшими усилиями. По умолчанию он отключен.

http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/

Тогда, если это не работает, это может быть проблема с ядром 4.4.0, и вам, возможно, придется обновить ядро.

0
ответ дан 23 July 2018 в 22:34
  • 1
    Ответ относится к 14.04, тогда как вопрос о 16.04. – Gunnar Hjalmarsson 2 September 2016 в 09:08

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

В моем случае, запуская Ubuntu 16.10 на Lenovo u300s, чтобы спящий режим работал Я должен был сделать следующее:

Создайте файл подкачки соответствующего размера (обычно я устанавливаю размер ~ 1x, но я слышал до 1.6x и 2x) Edit /etc/default/grub, чтобы включить следующая строка: GRUB_CMDLINE_LINUX_DEFAULT = "splash quiet pci = nomsi RESUME = UUID = 92781adb-f2a6-4f15-88fc-e1ce801291dd"

RESUME ссылается на ваш UUID файла подкачки. В частности, на моей машине настройка pci=nomsi была ключом.

Удачи!

2
ответ дан 23 July 2018 в 22:34

Спящий режим с использованием systemctl и его работа в трудных случаях

Для меня pm-hibernate всегда терпит неудачу. После некоторых настроек я смог спящий режим использовать интерфейс systemd (init system в 16.04 и выше). Мне также удалось заставить его работать с 17.04 с файлом подкачки. Это будет полезно для других с проблемами.

Первая попытка:

sudo systemctl hibernate

Если это не удается, начните поиск неисправностей: в состоянии спящего режима (HTD или ACPI S4) машина состояние записывается на диск, поэтому для его сохранения не требуется никакой энергии. Состояние записывается либо в раздел подкачки, либо в файл подкачки. Примечание: если вы используете BTRFS, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы

. Ваш раздел подкачки или файл подкачки, возможно, должен быть того же размера, что и RAM, чтобы разрешить спящий режим, но есть хорошая Вероятно, вы сможете спящий режим, если он равен по меньшей мере 2/5 размерам ОЗУ, согласно странице вики Arch, поэтому сначала попробуйте выполнить другие шаги, прежде чем увеличивать размер свопинга.

Примечание: если вы используете BTRFS, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы

Найти свой раздел подкачки:

grep swap /etc/fstab

для меня это возвращает (частичный вывод)

# swap was on /dev/mmcblk0p3 during installation

, где /dev/mmcblk0p3 является разделом для указания

Добавить параметр загрузки:

sudoedit /etc/default/grub

В начало строки GRUB_CMDLINE_LINUX_DEFAULT добавьте resume=/dev/YourSwapPartition в раздел в кавычках (замените на раздел, который вы определили ранее). Используя мой пример:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mmcblk0p3"

При каждом изменении этого файла вы должны запустить sudo update-grub или изменения не будут иметь эффекта.

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

sudo systemctl hibernate

. Для возобновления нажмите кнопку питания и система загрузится.

Если у вас все еще есть проблемы, начните отладку ,

В качестве примера я приведу пример, приведенный ниже, но подробную информацию о состояниях отладки S можно найти на странице вики Arch , а также на этом.

Set еще несколько параметров загрузки для сбора дополнительной информации. Удалите quiet и splash и добавьте initcall_debug и no_console_suspend, которые вызовут системные вызовы init, которые будут напечатаны на консоли, чтобы вы могли смотреть, что происходит неправильно. Я установил это:

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/mmcblk0p3 no_console_suspend initcall_debug"

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

В моем случае после возобновления я потерял WiFi, и ядро ​​явно расстроилось как большинство команд (например, прочитав что-нибудь из /sys, перезагружая модули или любую команду systemctl), не получилось бы - процесс, похоже, начнется и просто повесит (все это будет возвращено в нормальное состояние после перезагрузки, конечно). Наблюдая за тем, как система очень медленно закрывается и читает все отладочные сообщения, я заметил, что проблем с «brcm» было много, поэтому я догадался, что мой модуль беспроводной связи Broadcom виноват. Разумеется, я скорректировал процедуру спящего режима, чтобы сначала выгрузить модуль:

sudo modprobe -r brcmfmac sudo systemctl hibernate

в возобновлении I снова вставить модуль

sudo modprobe brcmfmac

И все работает отлично. Мне также нужно загладить модуль btsdio, который кажется несовместимым с brcmfmac

Обновление: спящий режим с использованием файла подкачки 17.04.

Еще раз с помощью страницы с вики-версией Arch и некоторых дополнительных мастерингов мне удалось спящий режим работать с 17.04 с помощью файла подкачки. Для этого потребовался дополнительный параметр загрузки, resume_offset=n, где n - первое число под physical_offset в выводе sudo filefrag -v /swapfile:

$ sudo filefrag -v /swapfile Filesystem type is: ef53 File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 32767: 34816.. 67583: 32768: 1: 32768.. 63487: 67584.. 98303: 30720: ....

Поэтому дополнительный параметр загрузки в моем случае - resume_offset=34816. Вам все равно нужно установить параметр загрузки для возобновления раздела. Это будет корневой раздел (или какой-либо раздел, в котором находится ваш файл подкачки). Мои параметры:

GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=/dev/mmcblk1p2 resume_offset=34816"

Где /dev/mmcblk1p2 - мой корневой раздел (у вас более вероятно что-то вроде /dev/sda2).

Во время возобновления я видел, что загрузка изображения прошла успешно, но в моем случае (просто пример - YMMVAPD) тогда еще несколько драйверов (i2c_designware) забросали некоторые ошибки, и я получил полное зависание системы на резюме. Спящий режим работает, если я выгружаю эти модули в дополнение к brcmfmac, но система быстро становится непригодной для использования без этих модулей. Поэтому я сделал своего рода сценарий, чтобы выгрузить багги-модули и сразу же вставить их в резюме:

# remove buggy modules modprobe -r brcmfmac i2c_designware_platform i2c_designware_core && # hibernate echo disk > /sys/power/state # reinsert modprobe i2c_designware_core i2c_designware_platform brcmfmac

Когда я хочу спящий режим, я запускаю sudo bash script.

TL; DR

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

31
ответ дан 23 July 2018 в 22:34
  • 1
    Откуда эта информация, что может быть достаточно 2/5 размера ОЗУ и при каких обстоятельствах? У меня есть опция пользователя в Gnome, «Hibernate», и похоже, что он спящий, но при пробуждении он работает неправильно. У меня есть своп-раздел размером 8 ГБ и 32 ГБ. Это не 2/5, но перед созданием файла подкачки (или раздела) объемом 32 ГБ было бы неплохо узнать. – cslotty 13 December 2016 в 19:11
  • 2
    @cslotty Я получил эту информацию из Archiki wiki IIRC - сообщите мне, если вы справитесь с этим, пожалуйста – Zanna 13 December 2016 в 19:52
  • 3
    Спасибо, @ Занне. Я узнал, что на самом деле это не спящий режим, чего я хочу, но приостановить (S3 / STR) - sry. – cslotty 13 December 2016 в 20:36
  • 4
    @cslotty вообще не беспокоится. В этом случае обмен не является вашей проблемой, поскольку это не связано. – Zanna 13 December 2016 в 20:53
  • 5
    Спасибо, мне нужен был синтез этого ответа, а также совет по отключению SecureBoot, чтобы он работал в конце. – oligofren 18 December 2017 в 16:55

Я думаю, что как включить спящий режим для ответа 16.04, известно всем, как описано в Ubuntu Wiki (см. ниже, если вам нужны этапы). Но вещи, которые нуждаются в проверке, не являются тщательными, я думаю. По крайней мере, это то, что я нашел.

Что проверить

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

Вот некоторые проверки -

  1. Убедитесь, что вы не используете какие-либо разделы btrfs. Да . Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools.
    sudo apt-get purge btrfs-tools
    
    Возможно, вы захотите проверить другие типы разделов, которые недостаточно хорошо протестированы. Без удаления пакета черный список драйверов также может работать, но я не тестировал это.
  2. Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

Шаги для включения спящего режима

Он включает в себя следующие этапы

  1. Создайте файл с правами root в /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
    sudo -i nano /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
    
  2. Поместите это содержимое в этот файл
    [Re-enable hibernate by default in upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.hibernate
    ResultActive=yes
    
    [Re-enable hibernate by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
    ResultActive=yes
    
  3. Сохраните файл, нажав Ctrl-O. Выйти с помощью Ctrl-X
  4. Перезапустить демона polkitd
    sudo systemctl restart polkitd.service
    

Он должен включить спящий режим.

16
ответ дан 31 July 2018 в 19:37

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

1
ответ дан 31 July 2018 в 19:37

Secure Boot

(я задал аналогичный вопрос с просьбой сосредоточиться на ответах на основе systemd, поделившись своим решением здесь для людей, следующих за этим вопросом)

Это решение происходит из тем Fedora (они сделали переход на systemd некоторое время назад, поэтому там больше материала).

В моем случае (новый 16.04.1 установить на машина, которая всегда поддерживала спящий режим), вызов устаревшего sudo pm-hibernate, похоже, ничего не сделал, и обновленный метод systemd systemctl hibernate вернется:

Failed to hibernate system via logind: Sleep verb not supported

Оказывается, что безопасный boot был виновником: установив 16.04, вас спросят, что вы хотите с ним сделать (что, насколько я помню, это новая вещь), и я сохранил ее, не задумываясь.

На моем машина с защищенной загрузкой включена, cat /sys/power/disk ответил:

 [disabled]

После перезагрузки и отключения безопасной загрузки в настройках BIOS (они зависят от машины, но обычно довольно просто), я попробовал cat /sys/power/disk и получил:

 [platform] shutdown reboot suspend 

, который выглядит лучше. И действительно, вызов systemctl hibernate приводит к успешной последовательности спящего / оттаивания.

Кроме того, после этого я мог видеть, что спящий режим доступен в качестве опции в разных местах графического интерфейса, без необходимости взлома polkit. Похоже, что systemd на самом деле догадывался из /sys/power/disk, что система не могла спячки.

3
ответ дан 31 July 2018 в 19:37

Расширение моего собственного комментария к ответу kelvinelove, файл, который он предлагает, редактирование не существует в моей системе (свежий Ubuntu 16.04). Вместо этого я сделал это:

  1. sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
  2. Ищите эти разделы (они правы друг с другом): [Отключить спящий режим по умолчанию в upower] Identity = unix -user: * Action = org.freedesktop.upower.hibernate ResultActive = no [Отключить спящий режим по умолчанию в логине] Identity = unix-user: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate -key; ResultActive = no
  3. Изменить ResultActive = no для ResultActive = yes для обоих из них.
  4. Нажмите Ctrl + O , чтобы сохранить файл.
  5. Перезагрузите компьютер
  6. Теперь опция Hibernate доступна в ваших меню питания.

EDIT: Gunnar отметил, что этот файл перезаписывается, если определенный пакет обновляется, поэтому в зависимости от ваших намерений это скорее всего не лучшее решение.

Источник: http://www.zedt.eu/tech/ Linux / включить-гибернации-Xubuntu-16-04 /

2
ответ дан 31 July 2018 в 19:37

Вы можете использовать

sudo pm-hibernate 

, чтобы проверить, работает ли спящий режим в вашей системе (это приведет к спячке на вашем компьютере).

Если это не сработает, проверьте, по крайней мере такой же, как ваша оперативная память.

Чтобы добавить опцию в меню настроек, вы можете создать файл конфигурации. Откройте окно терминала и запустите эту команду:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Он открывает nano с пустым файлом. Скопируйте приведенные ниже строки и вставьте их в окно nano.

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Затем сохраните изменения и закройте nano и перезагрузите систему, чтобы сделать доступным Hibernate в «Power options».

Ссылка: Как спящий режим моего компьютера? в официальной документации для Ubuntu 16.04.

Надеюсь, что это сработает. Это работало для меня после того, как вы пробовали все другие варианты.

44
ответ дан 31 July 2018 в 19:37

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Проверьте свою машину, открыв терминал (Ctrl + Alt + T), а затем введите sudo pm-hibernate

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

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

Отредактируйте открытый файл и добавьте следующие строки:

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

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

2
ответ дан 31 July 2018 в 19:37

Вы должны вручную включить его с небольшими усилиями. По умолчанию он отключен.

http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/

Тогда, если это не сработает, это может быть проблема ядра 4.4.0, и вам, возможно, придется обновить ядро.

0
ответ дан 31 July 2018 в 19:37

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

В моем случае, запуская Ubuntu 16.10 на Lenovo u300s, чтобы спящий режим работал Я должен был сделать следующее:

  • Создайте файл подкачки соответствующего размера (обычно я устанавливаю размер ~ 1x, но я слышал до 1.6x и 2x)
  • Измените /etc/default/grub, чтобы включить следующую строку: GRUB_CMDLINE_LINUX_DEFAULT = "splash quiet pci = nomsi RESUME = UUID = 92781adb-f2a6-4f15-88fc-e1ce801291dd"

RESUME ссылается к вашему UUID файла свопинга. В частности, на моей машине настройка pci=nomsi была ключом.

Удачи!

2
ответ дан 31 July 2018 в 19:37

Спящий режим с использованием systemctl и его работа в трудных случаях

Для меня pm-hibernate всегда терпит неудачу. После некоторых настроек я смог спящий режим использовать интерфейс systemd (init system в 16.04 и выше). Мне также удалось заставить его работать с 17.04 с файлом подкачки. Данное исследование может быть полезно для других с проблемами.

Первая попытка:

sudo systemctl hibernate

Если это не удается, начните устранение неполадок: в состоянии спящего режима (HTD или ACPI S4) машина состояние записывается на диск, поэтому для его сохранения не требуется никакой энергии. Состояние записывается либо в раздел подкачки, либо в файл подкачки. Примечание: если вы используете BTRFS, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы

. Ваш раздел подкачки или файл подкачки, возможно, должен быть того же размера, что и RAM, чтобы разрешить спящий режим, но есть хорошая Вероятно, вы сможете спящий режим, если он равен по меньшей мере 2/5 размерам ОЗУ, согласно странице вики-арки , поэтому сначала попробуйте выполнить другие шаги, прежде чем увеличивать размер свопинга.

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

Найти свой своп partition:

grep swap /etc/fstab

для меня это возвращает (частичный вывод)

# swap was on /dev/mmcblk0p3 during installation

где /dev/mmcblk0p3 - это раздел для указания

Добавить параметр загрузки :

sudoedit /etc/default/grub

В начало строки GRUB_CMDLINE_LINUX_DEFAULT добавьте resume=/dev/YourSwapPartition в раздел в кавычках (замените раздел, который вы определили ранее). Используя мой пример:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mmcblk0p3" 

При каждом изменении этого файла вы должны запустить sudo update-grub или изменения не будут иметь эффекта.

Теперь вам нужно перезагрузиться. Затем вы можете попытаться спящий режим, выполнив команду:

sudo systemctl hibernate

. Для возобновления нажмите кнопку питания и система загрузится.

Если у вас все еще есть проблемы, начните отладку ,

В качестве примера я приведу пример, приведенный ниже, но подробную информацию о состояниях отладки S можно найти в этом блоге и также в этом .

Задайте еще несколько параметров загрузки, чтобы получить дополнительную информацию. Удалите quiet и splash и добавьте initcall_debug и no_console_suspend, которые вызовут системные вызовы init, которые будут напечатаны на консоли, чтобы вы могли смотреть, что происходит неправильно. Я установил это:

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/mmcblk0p3 no_console_suspend initcall_debug"

Который помог мне понять, что происходит не так, как возобновить спящий режим.

В моем случае после возобновления я потерял WiFi, и ядро ​​явно расстроилось как большинство команд (например, прочитав что-либо из /sys, перезагружая модули или любую команду systemctl), не будет работать - процесс, похоже, начнется и просто повесит (все это будет возвращено в нормальное состояние после перезагрузки, конечно). Наблюдая за тем, как система очень медленно закрывается и читает все отладочные сообщения, я заметил, что проблем с «brcm» было много, поэтому я догадался, что мой модуль беспроводной связи Broadcom виноват. Разумеется, я скорректировал свою процедуру гибернации, чтобы сначала выгрузить модуль:

sudo modprobe -r brcmfmac
sudo systemctl hibernate

в возобновлении I снова вставить модуль

sudo modprobe brcmfmac

И все работает отлично. Мне также нужно занести в черный список модуль btsdio, который кажется несовместимым с brcmfmac


Update: спящий режим с использованием файла подкачки 17.04.

Еще раз с помощью с вики-страницы Arch и некоторые дополнительные манипуляции, мне удалось спящий режим работать с 17.04 с помощью файла подкачки. Для этого потребовался дополнительный параметр загрузки, resume_offset=n, где n - первое число под physical_offset на выходе sudo filefrag -v /swapfile:

$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..   32767:      34816..     67583:  32768:            
   1:    32768..   63487:      67584..     98303:  30720:            
   .... 

Поэтому дополнительный параметр загрузки в моем случае - resume_offset=34816. Вам все равно нужно установить параметр загрузки для возобновления раздела. Это будет корневой раздел (или какой-либо раздел, в котором находится ваш файл подкачки). Мои параметры теперь:

GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=/dev/mmcblk1p2 resume_offset=34816"

Где /dev/mmcblk1p2 - мой корневой раздел (у вас более вероятно что-то вроде /dev/sda2).

Во время возобновления я видел загрузку изображения успешно, но в моем случае (просто пример - YMMVAPD), тогда еще несколько драйверов (i2c_designware) забросали некоторые ошибки, и я получил полное зависание системы на резюме. Спящий режим работает, если я выгружаю эти модули в дополнение к brcmfmac, но система быстро становится непригодной для использования без этих модулей. Поэтому я сделал своего рода сценарий, чтобы выгрузить багги-модули и сразу же вставить их в резюме:

# remove buggy modules
modprobe -r brcmfmac i2c_designware_platform i2c_designware_core &&
# hibernate
echo disk > /sys/power/state
# reinsert
modprobe i2c_designware_core i2c_designware_platform brcmfmac

Когда я хочу спящий режим, я запускаю sudo bash script. Это отлично работает.


TL; DR

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

33
ответ дан 31 July 2018 в 19:37

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

1
ответ дан 2 August 2018 в 12:40

Я думаю, что как включить спящий режим для ответа 16.04, известно всем, как описано в Ubuntu Wiki (см. ниже, если вам нужны этапы). Но вещи, которые нуждаются в проверке, не являются тщательными, я думаю. По крайней мере, это то, что я нашел.

Что проверить

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

Вот некоторые проверки -

  1. Убедитесь, что вы не используете какие-либо разделы btrfs. Да . Из моего теста я обнаружил, что если у вас есть разделы btrfs, спящий режим не будет работать. Удаление или изменение типа раздела на ext4 мне не помогло. Мне нужно было удалить пакет btrfs-tools.
    sudo apt-get purge btrfs-tools
    
    Возможно, вы захотите проверить другие типы разделов, которые недостаточно хорошо протестированы. Без удаления пакета черный список драйверов также может работать, но я не тестировал это.
  2. Также вам нужно проверить, что у вас есть раздел подкачки, достаточно большой для хранения содержимого ОЗУ. Если ваша оперативная память составляет 4 ГБ, своп должен быть не менее 4 ГБ (вы должны выделить несколько МБ для обеспечения безопасности).

Шаги для включения спящего режима

Он включает в себя следующие этапы

  1. Создайте файл с правами root в /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
    sudo -i nano /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
    
  2. Поместите это содержимое в этот файл
    [Re-enable hibernate by default in upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.hibernate
    ResultActive=yes
    
    [Re-enable hibernate by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
    ResultActive=yes
    
  3. Сохраните файл, нажав Ctrl-O. Выйти с помощью Ctrl-X
  4. Перезапустить демона polkitd
    sudo systemctl restart polkitd.service
    

Он должен включить спящий режим.

16
ответ дан 2 August 2018 в 12:40

Secure Boot

(я задал аналогичный вопрос с просьбой сосредоточиться на ответах на основе systemd, поделившись своим решением здесь для людей, следующих за этим вопросом)

Это решение происходит из тем Fedora (они сделали переход на systemd некоторое время назад, поэтому там больше материала).

В моем случае (новый 16.04.1 установить на машина, которая всегда поддерживала спящий режим), вызов устаревшего sudo pm-hibernate, похоже, ничего не сделал, и обновленный метод systemd systemctl hibernate вернется:

Failed to hibernate system via logind: Sleep verb not supported

Оказывается, что безопасный boot был виновником: установив 16.04, вас спросят, что вы хотите с ним сделать (что, насколько я помню, это новая вещь), и я сохранил ее, не задумываясь.

На моем машина с защищенной загрузкой включена, cat /sys/power/disk ответил:

 [disabled]

После перезагрузки и отключения безопасной загрузки в настройках BIOS (они зависят от машины, но обычно довольно просто), я попробовал cat /sys/power/disk и получил:

 [platform] shutdown reboot suspend 

, который выглядит лучше. И действительно, вызов systemctl hibernate приводит к успешной последовательности спящего / оттаивания.

Кроме того, после этого я мог видеть, что спящий режим доступен в качестве опции в разных местах графического интерфейса, без необходимости взлома polkit. Похоже, что systemd на самом деле догадывался из /sys/power/disk, что система не могла спячки.

3
ответ дан 2 August 2018 в 12:40

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

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