Ubuntu 16.04 não desliga após suspender ou hibernar

14

Na verdade, minha pergunta pode parecer idêntica a esta neste fórum (e também em outro lugar ); na verdade, a pergunta é a mesma, mas estou perguntando assim mesmo, porque posso fornecer mais informações e porque tentei alguma solução encontrada na Web (possivelmente piorando as coisas).

Eu costumava hibernar o Ubuntu 15.10 (fechando a tampa). Agora que atualizei para a versão 16.04 (achei uma coisa boa, já que esta versão é LTS, ao contrário da 15.10), não posso mais usar a hibernação (nem a suspensão!): Se eu tentar usá-la, o Ubuntu não t desligar, apenas a tela fica preta, o led de energia está aceso e não posso fazer outra coisa senão desligá-lo manualmente (pressão longa no botão liga / desliga). Quando ligo novamente, vejo as seguintes linhas

insira a descrição da imagem aqui

então o Ubuntu inicializa.

A partir daqui eu tentei com

sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state

e

sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state

Apenas o primeiro funcionou parcialmente e apenas uma vez: por meio, quero dizer que, após o encerramento brutal, a sessão foi recuperada.

Então eu tentei seguir essa sugestão . Como não entendi os comentários escritos após os comandos, inseri literalmente os comandos como estão (pensando que algum erro como "este comando / pasta não existe" teria ocorrido se houvesse algo para substituir nos comandos ):

EDITAR

cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon

mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u

Talvez tenha sido uma péssima ideia, já que agora entendi isso.

IMG:

No final, encontrei a pergunta acima e fui para aqui , mas não sei o que fazer.

EDIT 2 No momento, se eu entrar

...$ sudo swapon -s

Não obtenho absolutamente nada

...$
Enrico Maria De Angelis
fonte
Talvez seja por causa do BIOS. No meu BIOS, vou para Gerenciamento de energia e deve haver uma opção sobre o que fazer ao suspender. Normalmente o meu é S1, mas S3 é o ideal.
dat tutbrus
Facada no escuro aqui, mas você deve investigar as configurações do BIOS e examiná-las. Pegue o seu manual e verifique-o. Eu tive inúmeros problemas no passado que tiveram uma opção de BIOS como solução.
31516 Jonathan
1
Desfaça a péssima idéia. Esta foi uma prova de conceito de como fazer o Ubuntu usar o espaço de troca para hibernação. Como root no sudo, remova a última linha adicionada de /etc/initramfs-tools/conf.d/resumee as duas estrofes de resumo adicionadas de etc/default/grub, execute as duas últimas linhas para atualizar o grub e o initrd. Excluir / trocar arquivo. Corra sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target. Tente qualquer um desses destinos com sudo systemctl suspend. O que acontece?
Emk2203 16/05
No final, decidi reinstalar o ubuntu 15.10. Agora a hibernação funciona novamente. Talvez eu instale o 16.04 em outra partição. Quando eu fizer isso, vou me referir a esta pergunta e respostas.
Enrico Maria De Angelis

Respostas:

6

Forçando a hibernação a desligar a máquina:

Depois de procurar por um longo tempo uma resposta para isso que realmente resolvesse o problema (não relacionados), encontrei uma dica aqui que fez o trabalho por mim:

Crie um arquivo no pmdiretório de configuração:

sudo vim /etc/pm/config.d/hibernate_mode

que define a variável HIBERNATE_MODEassim:

HIBERNATE_MODE="shutdown"

Depois de fazer isso, o hibernate desligou a máquina na conclusão, como esperado. Uma explicação para o que a configuração HIBERNATE_MODEfaz está no manual do pm-hibernate :

Método padrão para desligar o sistema ao hibernar. Se não estiver definido, o sistema usará o padrão do kernel como valor padrão. Verifique / sys / power / disk para obter valores válidos. O valor padrão será cercado por [colchetes].

Meu padrão nesse arquivo era platform. A definição da variável acima shutdownsubstitui isso e obtém o que queremos que aconteça.

Informações e dicas relacionadas para que o hibernate funcione corretamente:

Quanto aos "problemas relacionados", todos parecem ter dicas de hibernação e depuração rápidas:

  1. Verifique se o comando sudo pm-hibernaterealmente faz alguma coisa. Caso contrário, nenhuma dessas outras dicas fará qualquer diferença. Se não funcionar, verifique se 1) o tamanho da sua partição de swap é maior que o da sua RAM e 2) a inicialização segura está desabilitada no BIOS.

  2. Somente quando esse comando funcionar, observe a integração do hibernate no seu sistema como desejar. Alguns comuns:

    • Adicione hibernação ao menu do Ubuntu: Esta parece ser a melhor resposta para mim. A documentação oficial também possui uma versão ligeiramente diferente.
      Nota: depois que o hibernate é adicionado ao menu Ubuntu, você também pode precisar corrigir a chamada alternativa sudo systemctl hibernate. Aparentemente, (pelo menos para o Ubuntu 16.04), a opção de menu do Ubuntu chama em sudo systemctl hibernatevez de sudo pm-hibernate. systemctl hibernatefoi corrigido para mim adicionando o seguinte conteúdo ao arquivo /etc/systemd/sleep.conf:

      [Sleep]
      HibernateMode = desligamento

      Se o arquivo ainda não existir, você poderá criá-lo. Mais informações aqui .

    • Altere o comportamento do botão liga / desliga (por padrão, ele é exibido no menu interativo): para alterá-lo para hibernar diretamente ou desligar, é necessário modificar a entrada de configurações associadas . Muitas outras respostas passam pelo caminho da GUI, se isso flutuar no seu barco. Para ver as opções disponíveis, usegsettings range org.gnome.settings-daemon.plugins.power button-power

BT
fonte
2

Ao ver sua última imagem e a EDIT 2 , entendo que o Ubuntu não consegue encontrar uma partição de swap no seu sistema. Por isso, sugiro que você crie uma partição Swap igual ou maior que o tamanho da RAM e tente novamente executando

sudo pm-hibernate

Você pode criar partição swap usando GParted, execute isto para instalá-lo

sudo apt-get install gparted
DigiGoon
fonte
2

Eu tive o mesmo problema depois de atualizar de 15.10 para 16.04:

  • Fechar a tampa não fez nada
  • A suspensão manual com o item de menu na bandeja do sistema resultou em um estado meio suspenso com a única saída para redefinir o sistema.

Eu resolvi esses problemas

  1. atualizar o kernel para 4.4.8 (após esta suspensão do menu funcionou para mim)
  2. Adicionando a linha HandleLidSwitchDocked=suspendao /etc/systemd/logind.conf (que fez a tampa mudar para funcionar novamente).

Eu acho que os dois problemas são bugs que devem ser corrigidos ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120 ).

penguinwizzard
fonte
Isso resolveu o problema somente para suspensão ou também para hibernação?
Enrico Maria De Angelis
0

O Hibernate foi desativado por padrão.

Tente isto

sudo pm-hibernate

Se o teste de hibernação funcionar, você poderá continuar usando o comando sudo pm-hibernate quando desejar hibernar.

Você também pode ativar a opção de hibernação nos menus. Para fazer isso, use seu editor de texto favorito para criar /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla. Adicione o seguinte ao arquivo e salve:

[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.hibernate-multiple-sessions
ResultActive=yes

Leia mais sobre a Hibernação 16.04 neste link

Desligar

sudo shutdown -h now

Reiniciar

sudo shutdown -r now
jarvis
fonte
Como escrevi, o sudo pm-hibernate funcionava muito bem antes de atualizar o formulário 15.10 para 16.04LTS. Portanto, o problema deve estar relacionado à versão 16.04LTS. Além disso, talvez eu tenha feito algo muito errado seguindo as instruções sem entendê-las. Você poderia me ajudar a corrigir esses problemas?
Enrico Maria De Angelis