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

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

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

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

81 ответ

Расширение моего собственного комментария к ответу 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
ответ дан 2 August 2018 в 12:40

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

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
ответ дан 2 August 2018 в 12:40

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Проверьте свою машину, открыв терминал (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
ответ дан 2 August 2018 в 12:40

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

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

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

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

Здесь есть несколько очень хороших ресурсов, которые помогут вам разобраться с некоторыми более распространенными проблемами спящего режима в 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
ответ дан 2 August 2018 в 12:40

Спящий режим с использованием 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
ответ дан 2 August 2018 в 12:40

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

1
ответ дан 3 August 2018 в 17:03

Я думаю, что как включить спящий режим для ответа 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
ответ дан 3 August 2018 в 17:03

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, что система не могла спячки.

4
ответ дан 3 August 2018 в 17:03

Расширение моего собственного комментария к ответу 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
ответ дан 3 August 2018 в 17:03

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

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
ответ дан 3 August 2018 в 17:03

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Проверьте свою машину, открыв терминал (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
ответ дан 3 August 2018 в 17:03

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

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

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

0
ответ дан 3 August 2018 в 17:03

Здесь есть несколько очень хороших ресурсов, которые помогут вам разобраться с некоторыми более распространенными проблемами спящего режима в 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
ответ дан 3 August 2018 в 17:03

Спящий режим с использованием 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
ответ дан 3 August 2018 в 17:03

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

1
ответ дан 5 August 2018 в 02:20

Я думаю, что как включить спящий режим для ответа 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
    

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

17
ответ дан 5 August 2018 в 02:20

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, что система не могла спячки.

4
ответ дан 5 August 2018 в 02:20

Расширение моего собственного комментария к ответу 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
ответ дан 5 August 2018 в 02:20

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

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.

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

45
ответ дан 5 August 2018 в 02:20

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Проверьте свою машину, открыв терминал (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
ответ дан 5 August 2018 в 02:20

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

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

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

0
ответ дан 5 August 2018 в 02:20

Здесь есть несколько очень хороших ресурсов, которые помогут вам разобраться с некоторыми более распространенными проблемами спящего режима в 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
ответ дан 5 August 2018 в 02:20

Спящий режим с использованием 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, задайте параметр загрузки для возобновления смены, определите багги-драйверы и выгрузите их перед началом спящего режима. Если система не может работать долго без этих модулей или вам нужно выгрузить несколько, может быть проще использовать простой скрипт для запуска спящего режима.

34
ответ дан 5 August 2018 в 02:20

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

1
ответ дан 6 August 2018 в 19:01

Я думаю, что как включить спящий режим для ответа 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
    

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

17
ответ дан 6 August 2018 в 19:01

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, что система не могла спячки.

4
ответ дан 6 August 2018 в 19:01

Расширение моего собственного комментария к ответу 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
ответ дан 6 August 2018 в 19:01

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

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.

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

45
ответ дан 6 August 2018 в 19:01

Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина спящий режим, потому что причина, по которой гибернация отключена по умолчанию, связана с тем, что она иногда имеет неприятные результаты на некоторых машинах. Проверьте свою машину, открыв терминал (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
ответ дан 6 August 2018 в 19:01

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

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