Força a hibernação usando o hibernate em vez do pm-hibernate

11

Estou executando o 18.04 e tentando fazer com que meu sistema use o modo de hibernação em vez de hibernar quando a tampa do laptop fecha.

Eu tenho uma partição swap de 20GB em 16GB de RAM, portanto, muito espaço.

Quando uso o pm-hibernate, recebo um pequeno erro apci que aparece muito rapidamente quando hibernando e restaurando que não consigo ler. Embora o hibernate funcione no sentido de que ele despeja em disco e restaure a partir do disco, parece ser um estado de suspensão em que ele usa a bateria em uma taxa normal, em vez de desligá-lo completamente e interromper o uso da bateria.

No entanto, quando eu uso o hibernate instalado por:

sudo apt-get install hibernate

E corra:

sudo hibernate

E restaure a partir disso, noto que a minha máquina está de fato desligada - os LEDs param de pulsar, etc - e o uso da bateria vai para zero. Esse é o comportamento que gostaria de ver quando minha tampa se fecha, não o comportamento do sono que usa a bateria como se eu estivesse fazendo uso ativo do computador.

Eu segui estes guias:

modificado

/etc/systemd/logind.conf

para incluir:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

E adicionei minha alteração na partição swap em:

/etc/default/grub

Para incluir o currículo correto = link e solicitou o s2disk especificamente com:

sudo cat /etc/pm/config.d/00sleep_module
SLEEP_MODULE="swsusp"

Li os seguintes askubuntus relacionados:

Eu também li esses links nos fóruns da Lenovo e do Arch:

Como posso ter certeza de que o hibernate chamado por lid-close está em hibernação e não em pm-hibernate?

Atualizar

Isso ainda é um problema e ainda torna a 6ª geração do Carbon X1 fundamentalmente inútil para o Ubuntu. Qualquer solução que possa consertar isso e talvez adicionar um prompt de login pode ser quase tão boa quanto uma máquina Windows de 4 anos atrás ...;)

    
por Mittenchops 09.04.2018 / 00:23

2 respostas

1

Eu também odeio ter que passar um URL, então vou copiar e colar as informações e anexar a página da web ao final. Eu não vejo isso no seu link.

Ao ler isso, notei que a hibernação pode não funcionar se você formatou com o sistema de arquivos btrfs? Então, como a hibernação está permanentemente habilitada no Ubuntu 16.04?

Para tornar o processo de hibernação do Ubuntu permanente, você precisa criar um novo arquivo usando um editor de texto na linha de comando:

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

O sistema requer privilégios de root para habilitar a opção de hibernação, portanto, o comando sudo deve ser adicionado. Você pode usar outros editores de texto como o vi, gedit, emacs, etc.

Agora, copie e cole o texto a seguir em um arquivo (use o mouse; os atalhos de teclado não funcionarão):

[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

Pressione CTRL + O para salvar, e CTRL + X para sair do editor nano. p>

Agora, faça logout do seu sistema e faça login novamente. Agora você verá uma opção de hibernação, juntamente com as opções Desligar e Suspender.

O link para sua conveniência é: link

    
por plutesci 17.07.2018 / 03:40
1

Duas opções

A primeira opção (listada em segundo lugar) é revisar journalctl para possíveis mensagens de erro relacionadas à hibernação. Se a primeira opção não produzir resultados, a segunda opção é criar um script wrapper que substitua pm-hibernate por 'hibernate.

Criar script de wrapper

A criação de um script de wrapper permite que hibernate substitua pm-hibernate .

Encontrar comandos de diretórios localizados em

Antes de criar o script de wrapper, você precisa saber quais diretórios os comandos hibernate e pm-hibernate residem. Use estes dois comandos:

$ locate bin/hibernate
/mnt/c/Program Files (x86)/CyberPower PowerPanel Business Edition/bin/hibernate.dll

$ locate bin/pm-hibernate
/mnt/clone/usr/sbin/pm-hibernate
/mnt/old/usr/sbin/pm-hibernate
/usr/sbin/pm-hibernate

O script de wrapper que você deseja criar será /usr/sbin/pm-hibernate . Eu não tenho o pacote hibernate instalado, então a primeira busca só encontra um utilitário do Windows. De acordo com a listagem de arquivos do pacote , ele deve revelar /usr/sbin/hibernate junto com alguns outros arquivos. p>

Backup do arquivo original

Primeiramente, queremos fazer uma cópia de backup on-line do arquivo original:

sudo cp -a /usr/sbin/pm-hibernate /usr/sbin/pm-hibernate.bak

Em seguida, exclua o arquivo original:

sudo rm -f /usr/sbin/pm-hibernate

Criar script de wrapper

Observação: em vez de um script de wrapper, muitos acham mais fácil criar um link simbólico para pm-hibernate to hibernate : Como criar um link simbólico ou flexível?

Eu gosto de usar gedit para edição, mas você pode substituí-lo por nano ou vim ou qualquer editor que você preferir:

sudo -H gedit /usr/sbin/pm-hibernate

Um arquivo vazio aparecerá. Cole nas seguintes linhas

#!/bin/bash
# Wrapper script to replace pm-hibernate with hibernate package
/usr/sbin/hibernate "$@"

Converter script de wrapper para executável

Atualmente, o script wrapper é um arquivo normal. Precisamos convertê-lo em um objeto executável:

sudo chmod a+x /usr/sbin/pm-hibernate

Agora temos um script wrapper operacional, então toda vez que pm-hibernate for chamado hibernate runs. Como mencionado na parte superior, você deve revisar journalctl primeiro (descrito a seguir) antes de criar um script de wrapper.

Rever journalctl

Você pode grep as mensagens de hibernação em journalctl para possíveis problemas.

Eu não uso o hibernate, mas uso suspender. O comando a seguir me permite ver todas as mensagens relativas a suspend que você substituiria por hibernate :

$ journalctl -b | grep -i suspend
Oct 09 22:26:33 alien eyesome[21740]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 09 22:26:48 alien systemd[1]: Starting TLP suspend/resume...
Oct 09 22:26:48 alien systemd[1]: Started TLP suspend/resume.
Oct 09 22:26:48 alien systemd[1]: Starting Suspend...
Oct 09 22:26:48 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 09 22:26:48 alien eyesome[22952]: Wakeup: Going to suspend.  Creating: /tmp/eyesome-is-suspending
Oct 09 22:26:49 alien systemd-sleep[22938]: Suspending system...
Oct 10 04:26:38 alien kernel: PM: Suspending system (mem)
Oct 10 04:26:38 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 04:26:38 alien kernel: PM: suspend of devices complete after 1142.044 msecs
Oct 10 04:26:38 alien kernel: PM: late suspend of devices complete after 19.766 msecs
Oct 10 04:26:38 alien kernel: PM: noirq suspend of devices complete after 61.505 msecs
Oct 10 04:26:38 alien kernel: Suspended for 21583.011 seconds
Oct 10 04:26:38 alien eyesome[23137]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 04:26:38 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 04:26:38 alien eyesome[23168]: Wakeup: Called from suspend.
Oct 10 04:26:41 alien systemd[1]: Started Suspend.
Oct 10 04:26:41 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 04:26:41 alien systemd[1]: Reached target Suspend.
Oct 10 04:26:41 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 04:26:41 alien systemd[1]: Stopped target Suspend.
Oct 10 04:26:42 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 04:26:52 alien eyesome[24459]: Daemon: Removed file: /tmp/eyesome-is-suspending
Oct 10 05:47:09 alien eyesome[12434]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 05:51:43 alien systemd[1]: Starting TLP suspend/resume...
Oct 10 05:51:44 alien systemd[1]: Started TLP suspend/resume.
Oct 10 05:51:44 alien systemd[1]: Starting Suspend...
Oct 10 05:51:44 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 10 05:51:44 alien eyesome[28367]: Wakeup: Suspending.  Creating /tmp/eyesome-is-suspending
Oct 10 05:51:45 alien systemd-sleep[28353]: Suspending system...
Oct 10 16:30:59 alien kernel: PM: Suspending system (mem)
Oct 10 16:30:59 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 16:30:59 alien kernel: PM: suspend of devices complete after 623.519 msecs
Oct 10 16:30:59 alien kernel: PM: late suspend of devices complete after 19.654 msecs
Oct 10 16:30:59 alien kernel: PM: noirq suspend of devices complete after 61.549 msecs
Oct 10 16:30:59 alien kernel: Suspended for 38348.943 seconds
Oct 10 16:30:59 alien eyesome[28563]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 16:30:59 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 16:30:59 alien eyesome[28599]: Wakeup: Called from suspend.
Oct 10 16:31:02 alien systemd[1]: Started Suspend.
Oct 10 16:31:02 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 16:31:02 alien systemd[1]: Reached target Suspend.
Oct 10 16:31:02 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 16:31:02 alien systemd[1]: Stopped target Suspend.
Oct 10 16:31:03 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 16:31:13 alien eyesome[30020]: Daemon: Removed file: /tmp/eyesome-is-suspending
    
por WinEunuuchs2Unix 11.10.2018 / 04:08