Como configurar o sistema para o estado Suspend sedation quando fechar a tampa do laptop

Quando o seu laptop suspende o sistema, armazenando seu estado atual na RAM, ele passa a usar uma quantidade ínfima de energia (apenas o suficiente para manter a imagem do sistema).
No modo de suspensão, contudo, a sessão em que você está ou estava trabalhando não persiste no disco rígido. Portanto, quando a carga da bateria chega ao nível crítico, o sistema será forçado a desligar e você terá que passar por todo o processo de boot novamente.
Há 2 formas de resolver este problema:

  1. O modo clássico (e simples), que consiste na suspensão híbrida, na qual a máquina é suspensa e, ainda assim, guarda o estado atual no disco (como na hibernação). Funciona com a velocidade da suspensão e, quando a carga da bateria acaba, oferece a comodidade da hibernação (que é ainda mais rápida que um boot completo).
    Se você quer conhecer mais sobre esta solução leia os seguintes tutoriais:
    Para usuários Ubuntu 14.04 LTS ou anterior. sugiro a leitura do artigo Suspender, hibernar e suspender-híbrido.
    Como configurar para suspender, hibernar ou suspender-híbrido no systemd, para usuários Debian 8 ou Ubuntu 15.10 (ou superior) ou de qualquer outra distro que use o systemd.
  2. Se você preferir o modo suspend sedation, este texto é pra você. Boa leitura!

O que é suspend sedation

Para escrever este guia, estou usando o Debian 8.2 “Jessie” que, a exemplo do Ubuntu 15.10, faz uso do systemd — o que acarreta algumas mudanças e adições no sistema.
A proposta é usar o real-time wake timer para permitir que o sistema acorde da suspensão, após um tempo predeterminado, e ative a hibernação.
É nisto que consiste o suspend sedation, que faz uso de alguns dos recursos do systemd.

Como ativar o suspend sedation no Debian

Crie o arquivo /etc/systemd/system/suspend-sedation.service, com o seguinte conteúdo:

# /etc/systemd/system/suspend-sedation.service
[Unit]
Description=Hibernate after suspend
Documentation=https://bbs.archlinux.org/viewtopic.php?pid=1420279#p1420279
Documentation=https://wiki.archlinux.org/index.php/Power_management
Documentation=https://wiki.debian.org/SystemdSuspendSedation
Conflicts=hibernate.target hybrid-suspend.target
Before=suspend.target
StopWhenUnneeded=true

[Service]
Type=oneshot
RemainAfterExit=yes
Environment="ALARM_SEC=300"
Environment="WAKEALARM=/sys/class/rtc/rtc0/wakealarm"

ExecStart=/usr/sbin/rtcwake --seconds $ALARM_SEC --auto --mode no
ExecStop=/bin/sh -c '\
ALARM=$(cat $WAKEALARM); \
NOW=$(date +%%s); \
if [ "$NOW" -ge "$ALARM" ]; then \
  echo "suspend-sedation: Acordei - sem alarme definido. Hibernando..."; \
  systemctl hibernate; \
else \
  echo "suspend-sedation: Acordei antes do alarme. Despertar normal."; \
  /usr/sbin/rtcwake --auto --mode disable; \
fi \
'

[Install]
WantedBy=sleep.target

Depois de criar o arquivo, ative-o, através do seguinte comando:

sudo systemctl enable suspend-sedation
Created symlink from /etc/systemd/system/sleep.target.wants/suspend-sedation.service to /etc/systemd/system/suspend-sedation.service.

Se você estiver interessade em ver as mensagens de log deste script, use o journalctl:

journalctl -u suspend-sedation

ou verifique o arquivo /var/log/daemon.log:

cat /var/log/daemon.log | grep suspend-sedation

Discussão

Se você quiser alterar o script acima, não esqueça de repetir o processo de criação do symlink, depois de salvar as mudanças:

sudo systemctl disable suspend-sedation; sudo systemctl enable suspend-sedation

Esta solução foi desenvolvida pelo e12e (link no final) para usar no sistema com dual boot Windows/Linux. Funciona bem em sistemas com boot Linux Exclusive (meu caso). Devo relatar que tive problemas para aplicar esta solução com um monitor HDMI conectado ao notebook (ele não entra em modo de suspensão) — Tudo bem. Eu só fecho a tampa do notebook quando estou fora de casa e sem um segundo monitor conectado.

Referência

https://wiki.debian.org/SystemdSuspendSedation

Como configurar o notebook para suspender ou hibernar quando fechar a tampa no Debian e Ubuntu.

Neste texto, vou explicar como suspender um laptop e, depois de algum tempo, salvar o estado do sistema para o disco e desligar o computador completamente.
Se você achar útil, leia sobre as diferenças entre suspender, hibernar e suspender-híbrido.
A base de testes para este artigo é uma máquina Debian 8.2 “Jessie” — portanto, estas dicas podem servir em outras distribuições GNU/Linux, baseadas no Debian, como o Ubuntu 15.10 ou superior (que passou a usar o systemd).

Suspender ou hibernar ao fechar a tampa do notebook

Normalmente, esta função já vem ativada. O seu notebook já vai ter este comportamento, logo após a instalação do Debian.
Se este não for o caso, é possível que seu equipamento tenha alguma incompatibilidade que precise ser resolvida antes.
Você pode testar o seu hardware para saber se é compatível com hibernação/suspensão ou verificar se está usando sistema de swap corretamente (a hibernação depende o swap).
Para conseguir alterar o estado do equipamento (suspensão, hibernação ou híbrido) ao fechar a tampa, é necessário verificar se há uma determinada linha de comando ativada no arquivo /etc/systemd/logind.conf, que lê a opção “HandleLidSwitch=”.
Pra ser sucinto, você precisa “descomentar” (remover os ‘#’) as seguintes linhas:

HandleLidSwitch=hibernate
LidSwitchIgnoreInhibited=yes

A primeira linha, suporta as opções suspend, hibernate e hybrid-sleep.
A linha LidSwitchIgnoreInhibited=yes é necessária para passar pelo inhibit do GNOME.
Depois de alterar o logind.conf, rode o comando:

systemctl restart systemd-logind.service

Agora teste a configuração, fechando a tampa do notebook.

Referências

As diferenças entre suspender, hibernar e suspender-híbrido.
https://wiki.debian.org/SystemdSuspendSedation
https://wiki.archlinux.org/index.php/Power_management#Suspend_and_hibernate
http://williamhollacsek.com/blog/2015/05/11/ubuntu-1504-hibernate-on-lid-close-with-systemd

Como alterar o timeout do GRUB

O timeout é aquele intervalo, em segundos, em que o GRUB fica aguardando você decidir por algumas das suas opções.
A função do GRUB é manter um menu de inicialização do sistema e carregar a escolha do usuário.

GRUB quer dizer GRand Unified Bootloader.
O BootLoader é um software, cuja função é carregar o sistema operacional.
O Debian provê a versão v1 e v2 do GRUB.

GRUB boot loader on Debian
É comum ter mais de uma opção de sistema operacional ou de kernel listados no GRUB.
Quando ocorre uma atualização do seu kernel, o GRUB passa a incluir algumas das versões anteriores no menu, para permitir que você possa sempre iniciar seu sistema — no caso de algum de seus softwares ou parte do seu hardware ser incompatível com a nova versão, por exemplo.
Para mim, o tempo ideal é 0 (zero) — uma vez que, no meu notebook de trabalho só uso um sistema operacional (sempre na versão estável ou stable). Então não preciso fazer escolhas na inicialização do meu sistema.
Se você acredita que precisa de um tempo maior, acompanhe este breve tutorial e veja como alterar o tempo de espera do GRUB de acordo com as suas necessidades.

O arquivo de configuração do GRUB

Neste artigo, vou me basear no sistema operacional Debian GNU/Linux versão 8 “jessie” e no GRUB v2 (padrão na versão atual do Debian).
Você vai precisar de privilégios administrativos para realizar as tarefas, a seguir.

O GRUB passou a ser v2 a partir da versão de número 1.98.

Você vai precisar de privilégios administrativos para realizar as tarefas, a seguir.
Abra o arquivo de configuração e edite a linha em destaque, que contém “GRUB_TIMEOUT”:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

Altere o valor do timeout em GRUB_TIMEOUT=0 para o valor em segundos que você achar mais adequado.
Grave e feche o arquivo de configuração.
Por último, atualize o GRUB, de acordo com as alterações:

update-grub

Na próxima vez em que você iniciar o sistema, já vai poder ver o efeito da sua alteração.

Como instalar e configurar o sudo no Debian.

O comando sudo faz parte da cultura de algumas distribuições GNU/Linux (Ubuntu, por exemplo). Quem está migrando ou apenas experimentando o Debian, pode sentir bastante do conforto de poder executar tarefas administrativas, com a agilidade que o sudo proporciona.

Não é que eu seja purista (não sou e nem acho que seja uma coisa ruim), mas creio que a melhor experiência é proporcionada pela imersão — dispensar o máximo de experiências anteriores (pelo menos as que encerram preconceitos inúteis) e procurar entender a nova situação por si mesma.

Em outras palavras, procure entender a filosofia de construção do Debian e use-o de acordo com que seus desenvolvedores o conceberam. Mais pra frente, você pode (e deve) personalizar/customizar sua experiência, adequando as coisas ao redor à sua maneira de trabalhar.

O projeto Debian, que já soma mais de 20 anos, começou com um grupo pequeno, bastante unido, de hackers de Software Livre e cresceu gradualmente para se tornar uma comunidade grande e, provavelmente, a mais bem organizada de desenvolvedores e usuários.

Se você usa o ambiente desktop KDE, existe uma maneira de adicionar o usuário ao grupo admin, através da interface gráfica, que vale a pena conhecer.

Como se realiza atividades administrativas no Debian, sem o sudo?

No Debian, usa-se o comando su — que serve para nos autenticar como superusuário no sistema. Você precisa conhecer a senha do root, para usar o su.
Para se autenticar temporariamente como root e voltar, use o comando ‘su -c’. Veja um exemplo de como instalar o mpg123, no Debian:


su -c 'apt install mpg123'

Esta linha, faz com que o superusuário execute o comando entre aspas e depois devolva o prompt ao usuário atual.


Se quiser entender melhor as diferenças de uso entre o sudo e o su, leia este texto.
Um outra maneira, é abrir um terminal à parte, se logar como root, usando o comando su e executar todas as atividades administrativas lá dentro.
Um problema que eu vejo nesta abordagem é que é fácil esquecer que se está usando o terminal como root e seguir executando ‘trivialidades’ com poderes administrativos. Esta situação é uma ameaça para a segurança do seu sistema.

Como instalar o sudo no Debian

O sudo é uma maneira segura de executar rapidamente atividades administrativas, sem assumir de vez a armadura do superusuário.
O sudo permite que o administrador delegue funções administrativas, de forma seletiva, a outros usuários do sistema — assim eles não precisam ter conhecimento da senha de superusuário para realizar aquilo que estão autorizados a fazer.
Se tiver interesse em saber mais sobre o assunto, eu expliquei algumas outras diferenças entre o su e o sudo neste artigo.
Para instalar o sudo, caso ele não esteja ainda instalado, use o seguinte comando:


su -c 'apt install sudo'

Não esqueça: A senha pedida pelo su é sempre a do root.
Se você tentar usar o comando, em seguida, obterá um aviso:


sudo ls

Presumimos que você recebeu as instruções de sempre do administrador
de sistema local. Basicamente, resume-se a estas três coisas:

    #1) Respeite a privacidade dos outros.
    #2) Pense antes de digitar.
    #3) Com grandes poderes vêm grandes responsabilidades.

[sudo] password for justincase: 
justincase não está no arquivo sudoers. Este incidente será relatado.

O seja, é necessário informar ao sudoers os usuários que terão permissão para usar o sudo, no arquivo /etc/sudoers ou adicioná-los ao grupo sudo.
Vou mostrar os 2 métodos.

Como adicionar um usuário ao sudoers

Este método pode ser um pouco complicado e não é recomendado, por questões de segurança.
Vou explicar, apenas por questões de didática (estamos aqui para aprender, não é?).
Abra o arquivo /etc/sudoers


su -c 'nano /etc/sudoers'

Senha:

… e insira uma linha informando o seu nome de usuário e as permissões que ele terá, logo abaixo da linha contendo root ALL=(ALL:ALL) ALL:

justincase      ALL=(ALL:ALL) ALL

Substitua “justincase” pelo seu nome de usuário.
Veja na figura, abaixo, o local em que inseri esta linha. Se você quiser pode inserir este código ao final do arquivo também.
arquivo /etc/sudoers
Como já disse, a solução não é a ideal, mas funciona.
Eu prefiro o segundo método, descrito a seguir.

Como adicionar um usuário ao grupo sudo

Adicionar um usuário ao grupo sudo é a maneira mais rápida de resolver o problema.
No exemplo abaixo, mostro como me tornar root, adicionar o usuário ‘justincase’ ao grupo ‘sudo’ e sair do modo administrativo:


su -c 'adduser justincase sudo'

Não esqueça de substituir, acima, o nome de usuário ‘justincase’ pelo seu.
Tanto o primeiro como o segundo método pedem que você faça o login novamente. Se estiver usando o ambiente gráfico, encerre a sessão para se autenticar novamente.
Leia outras dicas e truques de uso do sudo.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Experimente, antes dos seus amigos, o Debian Stretch!

O Debian Stretch, em outras palavras, é a versão de testes do sistema operacional Debian GNU/Linux.
Esta é a versão que sucederá a atual distribuição Debian 8.0 (também chamada Jessie).
Trata-se do futuro Debian 9.0.
Neste artigo vou explicar por que ele tem este nome e mostrar alguns bons motivos para você começar a usá-lo agora.

Debian 9.0 StretchQuem é Stretch?
Quem acompanha o desenvolvimento do Debian, sabe que os nomes das distros são baseados nos personagens de Toy Story.
Stretch é um octopus de brinquedo, feito de borracha e ventosas distribuídas em seus braços. Seu corpo é cor púrpura, com glitter espalhado por toda a superfície.
É uma personagem feminina . Seu nome, na versão em português do filme, é Estica.
Na versão em inglês, a personagem é dublada pela atriz Whoopi Goldberg.
“Muito boa em ganhar jogos de azar. Acaba se tornando mensageira de Ken e Barbie quando eles passam a tomar contato com os brinquedos que foram para a casa de Bonnie”. (Wikipedia)

O ciclo de vida da distro Debian Stretch

O Debian testing é rolling release — ou seja, o sistema é atualizado continuamente e está em estado de desenvolvimento constante.
Ele só deixa este estado quando se torna stable.

Conheças as datas mais importantes do Stretch:

  • 09 de Novembro de 2014 — Anúncio do apelido ou codinome da distro Stretch
  • 26 de Abril de 2015 — Lançamento da distro Debian Jessie, início oficial da fase de desenvolvimento da Stretch
  • Verão de 2016 — Entre os meses de Julho e Agosto (verão nos EUA), os desenvolvedores estarão correndo para concluir a distro
  • 05 de Setembro de 2016 — A distro começa a entrar na fase final e os desenvolvedores começam a parar de introduzir novos recursos. Fase chamada Transition freeze
  • 05 de Novembro de 2016 — Softfreeze. Fase em que não se introduzem mais novos recursos. Os desenvolvedores se concentram em corrigir erros e caçar bugs
  • 05 de Dezembro de 2016 — The freeze. Tecnicamente, os desenvolvedores estão focados em eventuais erros críticos. Aproxima-se a data de lançamento do Stretch.
    O fato é que a Debian prima por lançar sua distro quando ela estiver pronta. Ou seja, não existe uma data fixa (pelo menos, não ainda) para seu lançamento

Debian Stretch

Motivos para usar o Debian testing

Neste momento (veja a data deste artigo), a distro Stretch está em uma fase de desenvolvimento testing — ela é mais estável que a Unstable.
Fora do ambiente de produção, há algumas boas razões para usar software em estágio beta ou alfa de desenvolvimento:

  • Testar e fornecer o feedback aos desenvolvedores é uma ótima forma de ajudar a aprimorar os aplicativos que você gosta. Neste caso, você precisa deixar sempre ligadas as opções que retornam informações de uso aos programadores.
  • Ao usar versões Beta e Alpha de programas, você entra em contato com os mais novos recursos, que só serão disponibilizados ao público geral na versão estável.
    De maneira geral, você irá desfrutar sempre de um ambiente de software mais moderno e avançado.
  • Distribuições no estado testing não tem bugs críticos ao lançamento relatados. Por outro lado, não recebem atualizações de segurança com a mesma prioridade que a stable.

Se você se sentir confortável, pode ir além e ajudar mais ativamente no projeto (ajudando a traduzir, sugerindo melhorias etc) — e, além de usufruir destas melhorias, pode levar crédito pelo seu trabalho.

Motivos para não usar o Stretch

Existe também alguns motivos para evitar software nesta fase de desenvolvimento.

Em máquinas de produção, você só deve instalar software estável. Para estes casos, portanto, a versão adequada do Debian é a Stable.

Uma vez que o desenvolvimento se encontra muito ativo, praticamente todo dia há correções de bugs e atualizações de aplicativos para baixar.
Se você se incomoda em atualizar constantemente (quase todo dia) o seu sistema, não deve usar o Stretch antes de sua versão estável ser lançada.
No que toca as atualizações de segurança, a prioridade é sempre a versão Stable.
O Stretch se beneficia do esforço do time de segurança em relação ao projeto do Unstable — contudo, há uma espera de, no mínimo, 2 dias antes da migração.
Algumas vezes as correções de segurança pode ser suspensas em função de eventos mais importantes, que concentram a maior parte dos esforços das equipes de desenvolvimento.
Portanto, se você precisa de um ambiente seguro, o seu Debian deveria ser o Stable.
Leia mais sobre Qual Debian Escolher.

Onde baixar o Debian testing

Veja, nos links abaixo, onde obter mais informações e como conseguir a sua distro:

O texto Onde baixar o seu Debian, traz uma relação extensa de onde encontrar as várias versões do Debian.
Have fun! 😉