Aqui está o meu problema:
Eu tenho um laptop executando o Arch e continuo em casa. Ele tem uma boa bateria de 4 horas, mas às vezes minha filha está brincando perto de onde é guardada e acaba puxando o plugue. Bem, quando chego em casa 5 horas depois, meu laptop teve um desligamento difícil.
Além disso, às vezes vou deixá-lo suspenso e esquecê-lo por um dia ou mais - o mesmo problema.
Aqui está a minha proposta:
Então, meu pensamento era que eu poderia fazer um trabalho cron que fosse executado a cada 15 ou 30 minutos ou algo assim, verificando a duração da bateria. Se a duração da bateria for <N minutos restantes, eu poderia hibernar o laptop. Isso funcionaria bem se meu laptop estivesse no modo normal 'ligado'. Mas se eu estou suspenso, nem tanto. Portanto, minha pergunta é dupla - existe uma maneira melhor de fazer isso e, se não, é possível fazer algum tipo de monitoramento no modo de suspensão - basicamente apenas execute esse trabalho cron?
Aqui está o que funcionou:
Seguindo as instruções uswsusp no wiki do Arch, instalei o uswsusp no AUR . Usando o seguinte comando:
wayne@jughead:~$ swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 530140 56744 -1
Eu descobri que /dev/sda2
era o nome da minha partição de troca. Então eu coloquei isso no meu/etc/suspend.conf
snapshot device = /dev/snapshot
resume device = /dev/sda2
Adicionei uresume no meu mkinitcpio.conf aqui:
HOOKS="base udev autodetect pata scsi sata resume uresume filesystems usbinput fsck"
Eu criei /etc/pm/config.d/module
e coloquei
SLEEP_MODULE=uswsusp
iniciar.
Como meu laptop não foi reconhecido ( # s2ram --test
exibido Machine unknown
), tive que usar a --force
opção.
Em /usr/lib/pm-utils/module.d/uswsusp
I também mudou todas as s2ram
opções para s2both
.
rtcwake
? Essa resposta pode ser inspiradora.