Desativar a suspensão no nível do kernel (independente da distribuição, DE e usuário logado ou tela de login)

2

Eu tenho um cartão gfx não muito funcional (nVidia geForce Go 7400) no meu antigo laptop que impede a tela de voltar a ligar depois de acordar da suspensão. O sistema (Ubuntu 14.10) recomeça, então eu posso ouvir sons, usar mouse, teclado, etc, mas a tela fica preta sem luzes, tão completamente desligada. Sempre que ele é suspenso acidentalmente, eu tenho que navegar cegamente para o menu de desligamento e desligá-lo, perdendo todos os dados não salvos.
Além disso eu só posso inicializar quando está frio, então eu tenho que esperar cerca de 15min antes que eu possa reiniciar, então esse problema é bem chato.

O que quero realizar agora é que o sistema não pode mais ser suspenso!
Deve ser uma solução que funcione em todas as distribuições Linux, com cada DE (eu uso Unity e LXDE atualmente) e globalmente para todos os usuários, incluindo nenhum usuário logado (unidade-saudação / lxde-greeter). Claro que tem que cobrir todos os possíveis gatilhos de suspensão, como fechar a tampa, inatividade por muito tempo, bateria fraca, clicar em opção no menu de desligamento, entrar no comando do terminal e o que quer que exista.

Obrigado pelas suas sugestões.

    
por Byte Commander 07.03.2015 / 18:30

1 resposta

3

Você pode desativar esses recursos de gerenciamento de energia em vários níveis, conforme explicado nesta resposta no ServerFault .

Nível da interface gráfica do usuário

No GNOME (mas deve funcionar com qualquer área de trabalho que suporte a iniciativa Freedesktop , assim com o Unity e o LXDE), você deve editar o seguinte arquivo:

sudoedit  /usr/share/polkit-1/actions/org.freedesktop.upower.policy

Uma seção diz respeito à função de suspensão e a outra à de hibernação. Cada um tem uma tag <allow_active> que você precisa definir como não:

<allow_active>no</allow_active>

Nível do teclado

Agora, para evitar o problema se o teclado tiver algumas chaves relacionadas a esses recursos, você deverá digitar o seguinte comando:

gconftool -s /apps/gnome-power-manager/buttons/hibernate -t string interactive

Tanto quanto me lembro, isso funciona também para o Unity desktop, mas não acho que funcione para o LXDE.

Nível da linha de comando

Ainda seria possível acionar uma suspensão ou hibernação a partir da linha de comando, eis como desativá-la.

Temos que criar um script executável em /etc/pm/sleep.d/ que cancelará qualquer ação de hibernação ou suspensão.

sudoedit /etc/pm/sleep.d/000cancel-hibernate-suspend

O conteúdo deste arquivo deve ser:

#!/bin/sh
# prevents hibernation and suspend
. "$PM_FUNCTIONS"
case "${1}" in
  suspend|hibernate)
    inhibit
    ;;
  resume|thaw)
    exit 0
    ;;
esac

Agora torne esse arquivo executável:

chmod 0755 /etc/pm/sleep.d/000cancel-hibernate-suspend
    
por 12.03.2015 / 10:27