Para onde suspender o híbrido?

16

Então, o que aconteceu com a suspensão híbrida, onde ela seria suspensa na RAM e no disco? Estava meio quente alguns anos atrás, mas parece que caiu. Existe alguma maneira de configurar isso nas versões recentes do Ubuntu?

Ryan C. Thompson
fonte
Qual o sentido da suspensão híbrida?
LassePoulsen
5
A suspensão híbrida ocorre quando o computador suspende para o disco e suspende para a RAM ao mesmo tempo. Assim, você obtém a velocidade rápida do resumo da suspensão para a RAM, mas não perde a sessão se perder a energia ou ficar sem bateria. Portanto, em princípio, é melhor do que suspender para ram ou suspender para disco sozinho. É por isso que me pergunto por que parece ter desaparecido das listas de recursos das distribuições modernas do Linux.
Ryan C. Thompson
Na guia "Ligado à bateria" no gerenciador de energia, vejo uma opção para "Quando a carga da bateria está criticamente baixa: Hibernar", talvez isso elimine a necessidade de uma suspensão híbrida?
Jorge Castro
11
@ Jorge: Outro caso de uso é se você precisar remover a bateria do laptop (ou desconectar o PC suspenso) por algum motivo. Se você estiver em suspensão híbrida, não importa. Se você estiver na suspensão regular da RAM, precisará retomar e suspender no disco.
Ryan C. Thompson

Respostas:

9

Existe um programa chamado pm-is-supportedque pode ser usado para verificar os recursos de suspensão do sistema.

No meu sistema, aqui estão os resultados (0 significa suportado, 1 significa não suportado):

$ pm-is-supported --suspend ; echo $?  
0  
$ pm-is-supported --hibernate ; echo $?
0
$ pm-is-supported --suspend-hybrid ; echo $?
1

A página de manual pm-is-supportedsugere que o s2both suporta suspensão híbrida. Instalei o s2both, disponível no uswsusppacote, mas ainda informa que a suspensão híbrida não é suportada. Eu tenho um palpite de que ele precisa de uma reinicialização porque atualizou a imagem initrd. Vou reiniciar e relatar. Deseje-me sorte .

Atualização: A execução sudo s2bothgravou o instantâneo no disco e suspendeu a RAM corretamente, no entanto, quando pressionei uma tecla para reiniciar o sistema reiniciado (e não restaurei o instantâneo do disco).

Eu acho que há algo errado com o uswsusppacote no ubuntu. O splashypacote (usado por uswsusp) tem um conflito de arquivo com o lsb-basequal foi deixado sem correção desde o Jaunty ( https://bugs.launchpad.net/ubuntu/+source/splashy/+bug/328089 )

Tente executar sudo s2bothou sudo pm-suspend-hybridveja se funciona no seu sistema.

Li Lo
fonte
Eu tentei s2bothe obtive os mesmos resultados que você. Também tentei mudar para um kernel do tuxonice e dizer ao pm-utils para usar o tuxonice e, em seguida, usar o híbrido do tuxonice suspend via pm-suspend-hybrid. A tela nunca foi ligada quando eu retomei, mas Control + Alt + Delete funcionou para reiniciar, então acho que realmente funcionou, mas não foi possível ativar a tela.
Ryan C. Thompson
Eu acho que não é suportado.
Ryan C. Thompson
0

Essa pergunta surge com bastante frequência no Google e acho que vale a pena esbarrar. Li explica híbrido suspender perfeitamente. No entanto, o s2both requer uswsusp (portanto, não usa suspensão no kernel), e o pm-hsuspend-hybrid faz a coisa errada porque não é mantido [1].

Veja como habilitar a suspensão híbrida sem problemas:

  • Substitua a chamada "suspend" para fazer um "hybrid_suspend" no pm-utils.
    % cat /etc/pm/config.d/00-use-suspend-hybrid
    # Sempre use suspend_hybrid em vez de suspend
    if ["$ METHOD" = "suspender"]; então
        MÉTODO = suspend_hybrid
    fi
  • Faça um backup de / usr / lib / pm-utils / pm-functions
  • Obtenha o patch aqui: https://bugs.freedesktop.org/attachment.cgi?id=68712
    • Este patch permite a suspensão híbrida, se disponível (ou seja, no kernels 3.6+)
  • Aplique-o usando 'patch -p0' ou mescle-o manualmente se isso falhar

Este método funciona para mim no meu Sony Vaio SVS.

PS: Reproduzindo o patch aqui, caso o arquivo seja excluído no futuro:

diff --git a / pm / pm-functions.in b / pm / pm-functions.in
--- a / pm / pm-functions.in
+++ b / pm / pm-functions.in
@@ -316,8 +316,28 @@ if [-z "$ HIBERNATE_MODULE"] && \
    {
        [-n "$ {HIBERNATE_MODE}"] && \
        grep -qw "$ {HIBERNATE_MODE}" / sys / power / disk && \
+ HIBERNATE_MODE_SAVE = $ (cat / sys / energia / disco) && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE ## * [}" && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE %%] *}" && \
        echo -n "$ {HIBERNATE_MODE}"> / sys / power / disk
        eco -n "disco"> / sys / power / state
+ RET = $?
+ echo -n "$ HIBERNATE_MODE_SAVE"> / sys / power / disk
+ retornar "$ RET"
+}
+ fi
+
+ # para kernels que suportam suspensão para ambos (ie suspensão híbrida)
+ # desde o kernel 3.6
+ se [-z "$ SUSPEND_HYBRID_MODULE"] && \
+ [-f / sys / power / disk] && \
+ grep -q disco / sys / power / state && \
+ grep -q suspend / sys / power / disk; então
+ SUSPEND_HYBRID_MODULE = "kernel"
+ do_suspend_hybrid ()
+ {
+ HIBERNATE_MODE = "suspender"
+ do_hibernate
    }
 fi

Fontes:

[1]: pm-utils é anterior à suspensão híbrida no kernel disponível nos kernels 3.6+. O que o pm-suspend-hybrid realmente faz é colocar sua máquina no modo de suspensão por 15 minutos por padrão e depois hibernar.

Rohan Dhruva
fonte