Приостановка не работает на моем ноутбуке. Когда ноутбук пытается приостановиться, экран на короткое время отключается, на некоторое время появляется какой-то системный текст, экран снова выключается, затем экран снова включается, и я получаю запрос на заблокированный экран.
Я пытался:
sudo pm-suspend
sudo acpitool -s
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
/etc/pm/sleep.d
(как предложено здесь ) sudo modprobe -r tpm_tis
/etc/pm/sleep.d/20_custom-ehci_hcd
(ответ @ Sushantp606 ниже) sudo s2ram
Это ядро не имеет поддержки KMS. Машина неизвестна. Эта машина может быть идентифицирована с помощью: sys_vendor = "Hewlett-Packard" sys_product = "Ноутбук HP Pavilion dv4" sys_version = "F.24" bios_version = "F.24"
Ни один из них не решил проблему. # 9 немного изменил поведение (он быстрее переключался между попытками уснуть и просыпаться).
Какие-нибудь предложения, на что я могу смотреть, делая дальше?
Эта страница может помочь: https://help.ubuntu.com/community/SwapFaq
Гибернация (приостановка на диск) Функция гибернации (приостановка на диск) ) записывает содержимое оперативной памяти в раздел подкачки перед выключением машины. Следовательно, ваш раздел подкачки должен быть не меньше размера вашей оперативной памяти. Реализация спящего режима, используемая в настоящее время в Ubuntu, swsusp, требует раздела подкачки или приостановки. Он не может использовать файл подкачки в активной файловой системе.
проверьте ваше ядро, есть ли ошибка в ядрах ( https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1133835 ) до того, как я думаю, что это 3.11, что вызывает Эта проблема. Вы можете обновить ядро, не обновляя систему Как обновить ядро до последней основной версии без какого-либо Distro-обновления?
Modify / proc / acpi / wakeup
Измените все на отключенные, кроме PWRB (или эквивалентного), чтобы единственное, что может разбудить ваш компьютер, это кнопка питания.
Наслаждайтесь
Создайте файл модулей в /etc/pm/config.d с помощью -
sudo gedit /etc/pm/config.d/modules
и вставьте в него следующую команду -
SUSPEND_MODULES="alx"
Это заставит модуль alx быть выгруженным и перезагруженным с помощью suspend, и ваша проблема будет решена этим, если не удалить эту строку и перейти к следующей части.
Этот будет работать точно. так как он заставляет графическую карту перезагружаться, используя старый добрый удар из chvt1 и chvt7.So, давайте начнем с 20_custom-ehci_hcd, как показано ниже -
gksudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd
предоставит вам пароль и вставит следующее в gedit
#!/bin/sh
VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1
unbindDev() {
echo -n > $DEV_LIST 2>/dev/null
for driver in $DRIVERS; do
DDIR=$DRIVERS_DIR/${driver}_hcd
for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
echo -n "$dev" > $DDIR/unbind
echo "$driver $dev" >> $DEV_LIST
done
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
# done
done
}
bindDev() {
if [ -s $DEV_LIST ]; then
while read driver dev; do
DDIR=$DRIVERS_DIR/${driver}_hcd
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
#done
while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
echo -n "$dev" > $DDIR/bind
if [ ! -L "$DDIR/$dev" ]; then
sleep $BIND_WAIT
else
break
fi
MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
done
done < $DEV_LIST
fi
rm $DEV_LIST 2>/dev/null
chvt 1
chvt 7
}
EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "$1" in
hibernate|suspend)
unbindDev;;
resume|thaw)
bindDev;;
esac
Сохраните его и затем предоставьте разрешение с помощью -
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
Перезагрузитесь с помощью -
sudo reboot
и теперь проверьте. он будет работать наверняка, но если ваше ядро откажется от этого сценария, то замените весь код следующим:
#!/bin/sh
# File: "/etc/pm/sleep.d/20_custom-ehci_hcd".
TMPLIST=/tmp/ehci-dev-list
case "${1}" in
hibernate|suspend)
;;
resume|thaw)
chvt 1
chvt 7
;;
esac
ваша приостановка уже будет работать, этот ответ взят из UbuntuForum.
Last Work Arround , для этого вам нужно установить небольшое приложение uswsusp, установите его, выполнив команду-
sudo apt-get install uswsusp
После завершения установки проверьте, что она приостановлена, выполнив следующие действия:
sudo s2ram
Ваш ПК должен перейти в режим ожидания.
А для гибернации -
sudo s2disk
Теперь, если это работает, удалите ранее созданные по умолчанию сценарии и команды, выполнив следующие действия, но прежде чем что-либо делать, сделайте резервную копию с помощью -
sudo cp /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux.bak
sudo cp /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux.bak
Теперь давайте заменим старые файлы и команды: -
hal-system-power-suspend-linux
hal-system-power-hibernate-linux
, затем
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
и вставьте в него следующее -
#!/bin/sh
/sbin/s2ram –force
и для спящего режима-
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux
и вставьте в него следующее -
#!/bin/sh
/sbin/s2disk
Надеюсь, на этот раз это помогло вам.
На странице помощи сообщества Ubuntu предлагается следующее, чтобы включили спящий режим с зашифрованным разделом подкачки :
Ваш компьютер уже должен быть настроен для шифрования. Если нет, сначала следуйте инструкциям в Шифрование после установки .
Придумайте пароль (или пароль) для вашего раздела подкачки. Вы можете использовать то же самое, что и вход в систему, но не делайте этого, если у других людей есть учетные записи на вашем компьютере!
Узнайте, какой у вас зашифрованный раздел подкачки.
swapon --summary
Вы должны увидеть вывод, похожий на:
Filename Type Size Used Priority
/dev/mapper/cryptswap1 partition 1998844 0 -1
Если вы не видите cryptswap1, раздел либо не зашифрован, либо не зашифрован по стандарту Ubuntu,
Теперь
sudo cryptsetup status cryptswap1
Вывод должен быть похож на
/dev/mapper/cryptswap1 is active and is in use.
type: PLAIN
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
device: /dev/sda1
offset: 0 sectors
size: 3997696 sectors
mode: read/write
Запишите устройство . Тот, что в примере, говорит /dev/sda1
- , но у вас может быть что-то еще , например. /dev/sdb3
.
Резервное копирование .
Отключить своп.
sudo swapoff /dev/mapper/cryptswap1
Отменить существующее отображение.
sudo cryptsetup luksClose /dev/mapper/cryptswap1
Установите своп снова, но на этот раз с выбранной парольной фразой. Команда дважды запросит у вас пароль. Замените /dev/sdXN
устройством из Точка подготовки 4 . (Следующая команда переносится на экран браузера, но это одна команда, которую вам нужно ввести.)
sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --verify-passphrase --key-size 256 /dev/sdXN
Вывод должен быть:
WARNING!
========
This will overwrite data on /dev/sda1 irrevocably.
Are you sure? (Type uppercase yes):
Enter LUKS passphrase:
Verify passphrase:
Введите YES и введите ваш парольная фраза в два раза.
Переназначить своп. Замените /dev/sdXN
устройством из пункта 4 подготовки.
sudo cryptsetup luksOpen /dev/sdXN cryptswap1
Установите раздел как swap.
sudo mkswap /dev/mapper/cryptswap1
Включите своп (чтобы он снова начал работать).
sudo swapon --all
Проверьте, работает ли он.
swapon --summary
Вы должны увидеть вывод, похожий на этот (цифры могут отличаться).
Filename Type Size Used Priority
/dev/mapper/cryptswap1 partition 1996796 0 -1
Используя gksudo
с вашим любимым редактором (по умолчанию для Ubuntu - gedit
), отредактируйте файл /etc/crypttab
(например, запустите gksudo gedit /etc/crypttab
). Закомментируйте существующую строку, добавив #
вперед (или просто удалите строку), и добавьте следующую строку. Замените /dev/sdXN
устройством из пункта 4 подготовки.
cryptswap1 /dev/sdXN none luks
Редактировать файл /usr/share/initramfs-tools/scripts/local-top/cryptroot
. Найдите следующую строку (это должна быть строка 288, но она может измениться со временем):
message "cryptsetup: unknown error setting up device mapping"
Перейти к следующей пустой строке (должно быть 291, перед FSTYPE = '') и вставить следующую линия. Замените /dev/sdXN
устройством из пункта 4 подготовки.
/sbin/cryptsetup luksOpen /dev/sdXN cryptswap1
Редактировать файл /etc/acpi/hibernate.sh
. В первую пустую строку вставьте следующую строку.
DEVICE='/dev/mapper/cryptswap1'
Редактировать файл /etc/initramfs-tools/conf.d/resume
. Замените существующую строку RESUME следующей строкой.
RESUME=/dev/mapper/cryptswap1
Зарегистрируйте эти изменения.
sudo update-initramfs -u -k all
Ubuntu отключает опцию Hibernate в меню. Восстановите его следующим образом. Создайте (используя gksudo с вашим любимым редактором) файл: /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
(например, запустите gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
)
Заполните файл следующим текстом и сохраните.
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
Перезагрузите машину.