Como você controla como funciona a suspensão híbrida?

0

Eu gostaria que o hybrid suspend funcionasse de uma certa maneira.

Se eu adicionar o código

# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
PM_HIBERNATE_DELAY=XX

para

/etc/pm/config.d/00-use-suspend-hybrid

em que XX é o número de segundos até que o computador hiberne, XX indica o número de segundos até que o computador grave o estado da RAM no disco ou até que o computador realmente entre no modo de hibernação ou ambos?

Eu gostaria de usar uma suspensão híbrida na qual quando eu fecho a tampa do meu laptop, o estado da RAM é gravado no disco e mantido na RAM no momento em que eu fecho a tampa do laptop, e depois dos XX segundos o computador entra em hibernação (elimina o conteúdo da RAM da RAM). Se isso não é o que o código acima faz, alguém pode me dar o código que vai fazer isso? Obrigado!

Código retirado desta pergunta: Como uso o pm-suspend-hybrid por padrão em vez de pm-suspend?

UPDATE: eu testei isso por mim, simplesmente tirando a bateria do meu laptop cerca de trinta segundos depois de usar suspensão híbrida, fechando a tampa. Quando eu iniciei o backup, o sistema inicializou normalmente. Isso também ocorreu quando omiti o

PM_HIBERNATE_DELAY=XX

linha e quando eu corri

sudo pm-suspend-hybrid

do terminal. Portanto, pode-se concluir que o sistema NÃO grava o estado da RAM no disco assim que ele é suspenso.

Estou correto nesta suposição?

Se eu for, gostaria de saber como fazer a suspensão híbrida gravar o estado da RAM no disco quando o computador for suspenso, não depois que o temporizador expirar.

Eu sei que essa questão está mais vaidosa do que qualquer outra coisa, mas foi postada por um mês sem sequer um comentário. Há algum lugar em que alguém saiba que posso ir aonde eu possa encontrar uma solução para mim?

    
por Josh 20.11.2012 / 07:05

3 respostas

1

De link (parafraseado) aparece ser duas versões diferentes do sono híbrido. Um que suspende a RAM e disco ao mesmo tempo; e outro que primeiro suspende para a RAM, depois acorda o computador após PM_HIBERNATE_DELAY para depois suspender para o disco e (aparentemente) desligar o computador . O antigo parece ser dependente da versão do Kernel e é suportado apenas no 3.6+. Eu entendo que o Ubuntu 12.10 usa o kernel Linux 3.5, então o último parece ser sua única opção sem atualização (que eu suponho que já tenha sido feito).

Você não declara o que você definiu PM_HIBERNATE_DELAY em seus testes, de acordo com a página mencionada na sua pergunta , mas Acredito, de acordo com o pm-suspend / pm-hiberate / pm-suspend-hybrid man A página , removendo uma definição explícita do mesmo, definiria o atraso da seqüência de ativação para hibernação e desativação em 15 minutos (900 segundos):

PM_HIBERNATE_DELAY [=900]
       If you are using kernel suspend/resume and invoke
       pm-suspend-hybrid, this environment variable controls how many
       seconds the system will wait after going into suspend _before waking
       back up and hibernating_. By default, this is set to 900 seconds (15
       minutes).

Você também não menciona se tem, portanto, também sugeriria que seria prudente verificar, na página mencionada na sua pergunta , essa suspensão híbrida é suportada pelo seu hardware, estabelecendo o resultado de sudo pm-is-supported --suspend-hybrid ; echo $? is 0

Além disso, talvez note que, aparentemente, há um bug no KDE 4.3, onde se Suspensão Híbrida não estiver disponível, a suspensão padrão para RAM é usada (não tenho certeza se isso é sem aviso explícito) ... link . Este artigo também contém outras informações úteis relacionadas ao sono / sono híbrido / afins.

PS Uma implementação diferente de Dlego Callejo 's answer , está em link

    
por user66001 08.06.2013 / 16:29
1

Eu encontrei do que no meu dispositivo (ASUS 1215b), o currículo falhou porque o NetworkManager suspen falhou ...

Depois de algumas debbuging, descobri que o comando dbus_set no arquivo /usr/lib/pm-utils/sleep.d/55NetworkManager falhou. Em seguida, substituí o conteúdo das duas funções nesse arquivo ( suspend_nm() e resume_nm() ), com:

#!/bin/sh
# If we are running NetworkManager, tell it we are going to sleep.
# TODO: Make NetworkManager smarter about how to handle sleep/resume
#       If we are asleep for less time than it takes for TCP to reset a
#       connection, and we are assigned the same IP on resume, we should
#       not break established connections.  Apple can do this, and it is
#       rather nifty.

. "${PM_FUNCTIONS}"

suspend_nm()
{
    # Tell NetworkManager to shut down networking
        printf "Having NetworkManager put all interaces to sleep... The AixMaN Way..."
    service network-manager stop && echo Done. || echo Failed.
}

resume_nm()
{
    # Wake up NetworkManager and make it do a new connection
    printf "Having NetworkManager wake interfaces back up... The AixMaN Way..."
    service network-manager start && echo Done. || echo Failed.
}

case "$1" in
    hibernate|suspend)
        suspend_nm
        ;;
    thaw|resume)
        resume_nm
        ;;
    *) exit $NA
        ;;
esac
    
por DIego Callejo 08.03.2013 / 13:02
0

Eu adicionei a resposta à sua pergunta sobre a ativação da suspensão híbrida aqui: link

    
por Rohan Dhruva 13.09.2013 / 00:44