Как заставить работать hibernate на 14.04?
У меня Ubuntu 14.04 на Thinkpad T400.
Я пытаюсь запустить следующую команду для спящего режима:
sudo pm-hibernate
Он мигает, а затем возвращается в нормальное состояние. Бег pm-suspend-hybrid
также мигает и возвращается в нормальное состояние. только sudo pm-suspend
буду работать. Как я тогда впаду в спячку?
pm-is-supported --hibernate
а также pm-is-supported --suspend-hybrid
ничего не возвращать, что, как я предполагаю, означает, что моя система поддерживает оба?
Есть ли выход pm-is-supported
также подразумевается, что BIOS разрешает все спящие режимы?
Вот вывод /proc/acpi/wakeup
,
Device S-state Status Sysfs node
LID S3 *enabled platform:PNP0C0D:00
SLPB S3 *enabled platform:PNP0C0E:00
UART S3 *disabled
IGBE S4 *enabled pci:0000:00:19.0
EXP0 S4 *disabled pci:0000:00:1c.0
EXP1 S4 *disabled pci:0000:00:1c.1
EXP2 S4 *disabled
EXP3 S4 *disabled pci:0000:00:1c.3
EXP4 S4 *disabled pci:0000:00:1c.4
PCI1 S4 *disabled pci:0000:00:1e.0
USB0 S3 *enabled pci:0000:00:1d.0
USB3 S3 *enabled pci:0000:00:1a.0
USB5 S3 *enabled pci:0000:00:1a.2
EHC0 S3 *enabled pci:0000:00:1d.7
EHC1 S3 *enabled pci:0000:00:1a.7
HDEF S4 *disabled pci:0000:00:1b.0
Применяется ли файл пробуждения одинаково как для режима ожидания, так и для режима гибернации? Если да, то ваш метод решает проблему для спящего режима, учитывая, что я могу приостановить, но не могу спящий режим?
Означают ли "включен" и "отключен", если устройство может или не может разбудить ОС?
Как мне попытаться изменить файл пробуждения, чтобы увидеть, делает ли он возможным переход в спящий режим?
2 ответа
Некоторые устройства сразу же просыпаются.
Вы можете показать все устройства, которые могут активироваться и те состояния с cat /proc/acpi/wakeup
# cat /proc/acpi/wakeup
Device S-state Status Sysfs node
PS2K S4 *disabled
PS2M S4 *disabled
UAR1 S4 *disabled pnp:00:06
P0P1 S4 *disabled
RP01 S4 *disabled pci:0000:00:1c.0
PXSX S4 *disabled
RP02 S4 *disabled
PXSX S4 *disabled
RP03 S4 *disabled
PXSX S4 *disabled
RP04 S4 *disabled
PXSX S4 *disabled
RP07 S4 *disabled pci:0000:00:1c.6
PXSX S4 *enabled pci:0000:06:00.0
RP08 S4 *disabled
PXSX S4 *disabled
PEG0 S4 *disabled pci:0000:00:01.0
PEGP S4 *disabled
PEG1 S4 *disabled
PEG2 S4 *disabled
PEG3 S4 *disabled
RP05 S4 *disabled pci:0000:00:1c.4
PXSX S4 *disabled pci:0000:03:00.0
RP06 S4 *disabled pci:0000:00:1c.5
PXSX S4 *disabled pci:0000:04:00.0
GLAN S4 *disabled
EHC1 S4 *disabled pci:0000:00:1d.0
EHC2 S4 *disabled pci:0000:00:1a.0
XHC S4 *disabled pci:0000:00:14.0
HDEF S4 *disabled pci:0000:00:1b.0
PWRB S4 *enabled platform:PNP0C0C:00
В моем случае оказалось, что USB (EHC1
а также EHC2
) был ответственным за пробуждение. Вы можете переключать каждое устройство с echo <DEVICE> | sudo tee /proc/acpi/wakeup
где <DEVICE>
это имя устройства из списка выше.
Попробуйте отключить все кроме PWRB
а также PXSX
и проверьте, помогает ли это. Если это так, вы можете повторно включить один за другим, пока не найдете устройство, которое просыпается.
РЕДАКТИРОВАТЬ
скопируйте этот скрипт в gedit
#!/bin/sh
#Prevent USB and Ethernet from waking up
for i in "IGBE" "USB0" "USB3" "USB5" "EHC0" "EHC1"; do
echo $i | sudo tee /proc/acpi/wakeup
done
сохранить его в ~/prev_wakeup
а потом беги chmod 755 ~/prev_wakeup
а также ~/prev_wakeup
, Далее попробуйте зайти в спящий режим и проверить, помогло ли это.
Если это так, вы можете добавить это к вашему /etc/rc.local
#Prevent USB and Ethernet from waking up
for i in "IGBE" "USB0" "USB3" "USB5" "EHC0" "EHC1"; do
echo $i > /proc/acpi/wakeup
done
- Если у вас нет
swap partition
Создай. С помощью любого gparted(для linux) или любых инструментов aomei/mini для Windows(если у вас двойная загрузка). - Сделать этот раздел в
ext2
файловая система. - После создания раздела вы должны отформатировать его.
- Перед форматированием мы узнаем, что это метка типа sda1, sda2 и т. Д. Для этого типа в терминале.
sudo blkid
или жеsudo lsblk
, Это дает UUID и тип раздела. - Зная тип раздела
sudo mkswap /dev/sdxx
это форматирует раздел. - Затем вы должны смонтировать раздел
sudo swapon -U UUID
- Тогда открой
gedit /etc/fstab
и добавьте эту строку в этот файлUUID=XXX none swap sw 0 0
- Если вы хотите использовать свой своп для гибернации, вам нужно обновить UUID в
/etc/initramfs-tools/conf.d/resume
с этим содержаниемRESUME=UUID=xxx
,
Не забудьsudo update-initramfs -u
Чтобы включить режим гибернации в меню питания -
sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Введите это-
[Повторно включить спящий режим по умолчанию в upower]
Идентичность = Unix-пользователь:*
Действие = org.freedesktop.upower.hibernate
ResultActive= да
[Повторно включить спящий режим по умолчанию в logind]
Идентичность = Unix-пользователь:*
Действие = org.freedesktop.login1.hibernate
ResultActive= даТип
sudo killall unity-panel-service
- Опция гибернации включена в меню питания