Sono híbrido indireto
Este é o método mais antigo: primeiro suspenda e depois ative a hibernação após um atraso (15 minutos por padrão). Use isso com um kernel Linux anterior à 3.6 ou, se preferir, ele não usa mais energia após 15 minutos.
Adicione o arquivo /etc/pm/config.d/00-use-suspend-hybrid
:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
# The delay after which hibernation gets triggered (default: 900 seconds, 15 minutes):
PM_HIBERNATE_DELAY=900
Convém garantir que o método híbrido seja suportado no seu sistema através do código a seguir. Se diz "0", deve funcionar:
sudo pm-is-supported --suspend-hybrid && echo $?
Suspensão híbrida real com Linux 3.6+
Se você possui um kernel do Linux 3.6, pode usar o seguinte, que será suspenso no disco e na RAM desde o início.
Adicione o arquivo /etc/pm/config.d/00-use-suspend-hybrid
:
# WORKAROUND: always set the default hibernate mode first (normal mode)
# (not required if you have the patch mentioned by Rohan below (http://askubuntu.com/a/344879/169))
HIBERNATE_MODE=platform
# Always use hibernate instead of suspend, but with "suspend to both"
if [ "$METHOD" = "suspend" ]; then
METHOD=hibernate
HIBERNATE_MODE=suspend
fi
# Make sure to use the kernel's method, in case uswsusp is installed etc.
SLEEP_MODULE=kernel
Isso sempre gravará a imagem no disco e depois será suspensa na RAM, com os benefícios de que a retomada será sempre rápida (contanto que a bateria não acabe) e que a máquina não acorde por um curto período de tempo (após PM_HIBERNATE_DELAY) hibernar de verdade.
A desvantagem é que o processo leva mais tempo (porque sempre hiberna para o disco) e que sua bateria pode acabar a longo prazo (por exemplo, após 12 horas).
resume
discussão/etc/default/grub.conf
. Também como usuário da nvidia eu tive que definirnomodeset
. Então, resultando entrada grub no meu caso é:GRUB_CMDLINE_LINUX_DEFAULT="nomodeset resume=UUID=uuidofswappartition"
. Não se esqueçagrub-update
. E também alguns módulos tem de ser descarregado de modo criado arquivo/etc/pm/config.d/00-unload_modules
com linhaSUSPEND_MODULES="ath5k r8169"
e apenas para ter certeza que eu também renomeado 00-use-suspender-híbrido para10-use-suspend-hybrid
Ubuntu 18.04 uma opção programada
No Ubuntu 18.04 tem uma nova opção programada. Em
systemd
é availiable um modo novosuspend-then-hibernate
. Isso começará com o modo de suspensão e depois passará para o modo de hibernação após um tempo fixo.No
hybrid-sleep
modo, a parte de hibernação só é efetiva quando a bateria está criticamente baixa e o sistema é desligado.Para começar a usar esta função, você precisa criar um arquivo
/etc/systemd/sleep.conf
com o próximo conteúdo:Isso vai do sono para a hibernação após 1 hora de sono. Você pode editar
HibernateDelaySec
para alterar o atraso para hibernar.Primeiro, teste se suspender e hibernar funciona usando o systemd
Abra um terminal pressionando Ctrl+ Alt+ Te digite:
Se funcionar, torne-o permanente.
Abra o arquivo
/etc/systemd/logind.conf
usando seu editor preferido. Você precisará chamar seu poder administrativo porsudo
,gksudo
oupkexec
editar este arquivo.Encontre as duas linhas:
Observe que essas linhas são comentadas
#
na frente delas. Asuspend
é a ação padrão. Remova#
e alteresuspend
parasuspend-then-hibernate
nessas duas linhas para que fiquem assim:Salve o arquivo. Efetue logout e efetue login novamente ou reinicie o
logind
serviço pelo comando:Atenção! sua sessão de usuário será reiniciada
Fonte: Tampa Fechada Suspender e Hibernar
Ubuntu 16.04 e superior
A solução por blueyed para o híbrido real suspensão com Linux 3.6+ não funcionou para mim. Eu suspeito que isso ocorre porque o Ubuntu 16.04 usa
systemd
e não usa o arquivo/etc/pm/config.d/00-use-suspend-hybrid
.Primeiro, teste se hibernação e sono híbrido funcionam usando o systemd
Abra um terminal pressionando Ctrl+ Alt+ Te digite:
Isso deve fazer o seu computador hibernar. Para tentar o sono híbrido, digite:
Se funcionar, torne-o permanente.
Abra o arquivo
/etc/systemd/logind.conf
usando seu editor preferido. Você precisará chamar seu poder administrativo porsudo
,gksudo
oupkexec
editar este arquivo.Encontre as duas linhas:
Observe que essas linhas são comentadas
#
na frente delas. Asuspend
é a ação padrão. Remova#
e alteresuspend
parahybrid-sleep
nessas duas linhas para que fiquem assim:Salve o arquivo. Saia e faça login novamente.
Nota:
suspend
ouhybrid-sleep
existe uma terceira opçãohibernate
,.Suspend
menu de engrenagem coloca o computador em suspensão normal, não em suspensão híbrida.Fonte: https://superuser.com/questions/719447/how-to-use-systemd-hybrid-sleep-instead-of-suspend-under-gnome-in-linux
Eu espero que isso ajude
fonte
Na versão 12.04, notei que, quando a hibernação é acionada (usando
PM_HIBERNATE_DELAY=XX
), o resumo / descongelamento dos scripts do shell não desativa a variável grub recordfail. Portanto, o grub não inicializa automaticamente.O tempo limite é definido como -1 e aguarda a seleção do usuário. Eu estou supondo que isso requer alguma edição de scripts no
/etc/pm/sleep.d/10_grub-common
. Sou novato, por isso não me interessou em descobrir a mudança exata, infelizmente.fonte
Essa pergunta surge com bastante frequência no Google e acho que vale a pena esbarrar. O método descrito aqui (imo) não é suspensão híbrida. É "hibernado após X minutos em suspensão". A suspensão híbrida verdadeira grava sua RAM no disco e entra em estado de baixa energia (modo de suspensão). Enquanto leva mais tempo, o resumo é instantâneo enquanto a máquina está com a bateria restante, caso contrário, retoma o disco rígido. Esse comportamento é o que a maioria das pessoas chama de suspensão híbrida e é usado por padrão nos laptops Windows e Mac mais recentes.
Veja como habilitar a suspensão híbrida real :
Este método funciona para mim no meu Sony Vaio SVS.
PS: Reproduzindo o patch aqui, caso o arquivo seja excluído no futuro:
Fontes:
fonte
Existe outra solução sem adicionar nenhum arquivo no config.d, apenas usando o wakealarm em / sys / class / rtc / rtc0. Faça uso de código obsoleto nas funções pm (/ usr / lib / pm-utils) após os comentários #since o kernel não suporta diretamente ..., ('porque o kernel atual (após algo de 3.6) suporta diretamente). Reverta esse código e insira a parte do_suspend () em vez de do_suspend_hybrid () e use o patch para pm-functions (até que eles o consertem).
Código obsoleto (suspenda e hiberne quando o suspend_hybrid for chamado):
Recomendado. Ainda mais fácil de usar uswsusp, ao mesmo tempo, maximiza os benefícios do s2both, ou seja, s2both ao suspender. Coloque o código revertido na parte do_suspend () do módulo uswsusp (/usr/lib/pm-utils/module.d).
Código revertido (suspend_hybrid quando a suspensão é chamada):
Com uswsusp, podemos ver o progresso de suspender / hibernar e o processo inverso exibido no texto, até podemos abortá-lo pressionando backspace. Sem o uswsusp, suspender / hibernar apenas parece desaparecer irritantemente, especialmente quando o wakealarm é acionado e executa o hibernar (s2disk em uswsusp). Defina o período de suspensão antes da hibernação no local usual no arquivo pm-functions.
Aqui está o mod uswsusp: (lembre-se, este módulo é chamado de pm-functions para que as variáveis inseridas sejam as mesmas)
fonte
A resposta do user68186 para o Ubuntu 16.04 não funcionou para mim. No entanto, a solução aqui foi.
Primeiro, verifique se a hibernação funciona. Então
Nas minhas configurações de energia, essas opções aparecem em branco, mas funcionam conforme o esperado.
fonte
No Ubuntu 18.04, é muito mais fácil. No systemd está disponível um novo modo de suspensão e hibernação . Para começar a usar esta função, você precisa criar um arquivo /etc/systemd/sleep.conf com o próximo conteúdo:
Então você pode testá-lo por comando:
(você pode editar o HibernateDelaySec para reduzir o atraso na hibernação). Se tudo funcionar bem, você pode alterar a ação Fechar tampa, para isso, é necessário editar o arquivo /etc/systemd/logind.conf
Você precisa encontrar a opção HandleLidSwitch = , descomente-a e mude para HandleLidSwitch = suspend-then-hibernate . Em seguida, você precisa reiniciar o serviço de logind (a sessão wirning! You user será reiniciada) pelo próximo comando:
Isso é tudo! Agora você pode usar esta boa função.
fonte