O sistema não hiberna; a tela pisca por alguns segundos e nada mais acontece


8

Acabei de atualizar meu Ubuntu 11.10 para 12.04. Estou com um problema de hibernação no meu novo 12.04.

Eu executo o seguinte comando

sudo pm-hibernate

mas meu sistema não hiberna, ou seja, meu sistema não desliga; em vez disso, a tela pisca por alguns segundos e retoma o estado anterior.

Como soluciono esse problema e habilito a hibernação no meu sistema?


Você verificou as configurações do BIOS
Mitch

2
@izx Eu também pensava assim ... mas, pensando bem, não deveria sudo pm-hibernatefuncionar antes que a hibernação fosse ativada no 12.04? Essa é a maneira recomendada de testá-lo antes de ativá-lo ... não é? o que estou perdendo?
Elias Kagan

@EliahKagan - Você está absolutamente certo - eu pulei rápido demais. sudo pm-hibernatedeve funcionar independentemente da configuração do polkit.
Ish

Respostas:


6

Algo na sua configuração de hardware é incompatível com a metodologia de hibernação do kernel. Infelizmente, isso é difícil de solucionar, a menos que o solucionador de problemas possua um sistema muito semelhante.

Você pode tentar a hibernação alternativa do TuxOnIce ( wikipedia ).

  • O TuxOnIce ( wiki | homepage ) é uma alternativa à tecnologia de hibernação integrada do kernel, e deve ser compatível com uma ampla gama de hardware, mais confiável e mais flexível.
  • É facilmente instalado e, se não funcionar, é removido com facilidade.
  • Requer a instalação do kernel personalizado do TuxOnIce , mas as instruções a seguir devem facilitar. Se você nunca abriu o terminal antes, pode querer agora :-)

    0. Requisitos

    O único requisito para o TuxOnIce é que sua partição de swap seja pelo menos tão grande quanto a quantidade de memória (RAM) que você possui. Você pode verificar isso:

  • Inicie o terminal com Ctrl+ Alt+T

  • Digite free -me você verá algo assim:

                 total de buffers compartilhados gratuitos usados ​​em cache
    Mem: 1024731 260 0 0 190
    - / + buffers / cache: 540 451
    Troca: 1536 6 1530
    
  • O número após Swap:(por exemplo, 1536) deve ser maior que o número após Mem:(por exemplo, 1024)

  • Se não for esse o caso, e sua troca for menor que sua memória, você deverá redimensionar e aumentar o tamanho da sua partição de troca ou configurar o TuxOnIce para usar um arquivo de troca especial. Isso está além do escopo desta resposta, mas se você fizer outra pergunta e mencioná-la nos comentários, responderei e explicarei como.

    1. Instalando o kernel TuxOnIce

  • Inicie o terminal com Ctrl+ Alt+T

  • Copie e cole o seguinte no terminal. Isso adiciona o TuxOnIce PPA e instala o kernel e os cabeçalhos personalizados.
    • sudo apt-add-repository ppa: tuxonice / ppa -y
      e depois que o ppa for adicionado:
    • sudo apt-get update
      sudo apt-get install tuxonice-userui linux-genérico-tuxonice -y 
      sudo apt-get install linux-headers-generic-tuxonice -y
  • Agora reinicie.
  • O Ubuntu agora deve iniciar com o kernel TuxOnIce . Se houver algum problema, mantenha Shiftpressionado na inicialização e você obterá o menu Grub. Use as teclas de seta para acessar Previous Linux Versions, pressione enter e pressione enter novamente para voltar ao kernel em funcionamento.

    2. Teste da funcionalidade de hibernação.

  • Abra alguns dos aplicativos que você normalmente usa, por exemplo, Firefox, Thunderbird, LibreOffice, etc.

  • Abra o terminal novamente, com Ctrl+ Alt+ T.
  • Digite sudo pm-hibernate, pressione Enter, digite sua senha.
  • Você deverá ver a tela de bloqueio por um segundo e, em seguida, a tela de progresso da hibernação do TuxOnIce, como a abaixo:

    insira a descrição da imagem aqui

    • Se o TuxOnIce funcionar, seu computador será desligado.
    • Inicie novamente e aguarde. O TuxOnIce deve continuar a partir do ponto em que você hibernou, incluindo todas as janelas que você abriu na posição que você abriu.
  • Se tudo isso funcionou, vá para a Etapa 3, que permite ativar o Hibernate no painel.

    3. Habilitando a hibernação no painel

  • Pressione Alt+ F2, digite o abaixo e pressione enter:

    gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
  • Cole o abaixo, pressione Ctrl+ Spara salvar e Ctrl+ Qpara sair do editor:

    [Reativar a hibernação por padrão]
    Identidade = usuário unix: *
    Ação = org.freedesktop.upower.hibernate
    ResultActive = yes

    insira a descrição da imagem aqui

  • Reinicie e você deverá ver a opção Hibernate, como mostrado abaixo:

    insira a descrição da imagem aqui

    4. Removendo o TuxOnIce

    • Se o TuxOnIce não funcionar para você, ou você simplesmente deseja removê-lo, inicie o terminal e digite:

       O sudo apt-get remove tuxonice-userui linux-genérico-tuxonice linux-headers-generic-tuxonice -y
    • e lembre-se de desativar a opção Hibernar no menu com:

      sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
    • Então reinicie.


Você deve mencionar este link: askubuntu.com/questions/178712/… na resposta se o usuário não tiver troca suficiente.
kiri

4

Isso funcionou para mim. Em um console, execute:

sudo apt-get install uswsusp 

Em seguida, você pode tentar suspender seu computador com:

sudo s2ram

ou hibernar com

sudo s2disk

Se isso funcionar para você, basta reiniciar e você poderá hibernar mais tarde a partir do botão usual (no canto superior direito do Unity Desktop e selecionando Hibernar).

Fiz um breve tutorial deste e de outros problemas para o Dell XPS 13 Developer Edition disponível aqui .


Simples e funciona bem. Há um erro de digitação no entanto, o nome do pacote é uswsusp. Além disso, a hibernação não funcionou na primeira tentativa: desligou e depois inicializou normalmente depois. Aposto que isso é o tradicional "reiniciar para atualizar a configuração".
Norswap

uau, isso é fácil, a hibernação funcionou no meu Dell Latitude E6400 com o Ubuntu 14.04 beta.
Andrea Zonca

Eu não tinha problemas com hibernação em 8.04. Tenho certeza de que muitos usuários avançados o fazem funcionar perfeitamente sem "hacks".
usar o seguinte comando

1

Eu tive esse problema antes. Se a sua partição de troca for menor que a quantidade de memória que você deseja armazenar no disco rígido ao hibernar, você poderá obter esse problema.

Você pode redimensionar sua partição de troca ou usar um arquivo de troca (é muito mais fácil se você não tiver espaço livre para redimensionar sua partição de troca).

Aqui está como fazê-lo:

  1. Abra uma janela do terminal (pressione Ctrl+ Alt+ Tou selecione Aplicativos> Acessórios> Terminal ) ou efetue login no servidor remoto usando o cliente ssh.

  2. Criar arquivo de armazenamento

    Digite o seguinte comando para criar um arquivo de permuta de 512 MB (tamanho do bloco de 1024 * 512 MB = 524288):

    sudo dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
    

    Saídas de amostra:

    524288+0 records in
    524288+0 records out
    536870912 bytes (537 MB) copied, 3.23347 s, 166 MB/s
    
    • if=/dev/zerosignifica ler do arquivo / dev / zero. /dev/zeroé um arquivo especial que fornece caracteres nulos para criar um arquivo de armazenamento chamado /swapfile1.
    • of=/swapfile1significa gravar arquivo de armazenamento em /swapfile1.
    • bs=1024 significa ler e escrever 1024 bytes de bytes por vez.
    • count=524288 significa Copiar apenas blocos de entrada 523288 BLOCOS.
  3. Arquivo de troca seguro

    Configure a permissão de arquivo correta por motivos de segurança, digitando:

    sudo chmod 0600 /swapfile1
    

    Um arquivo de troca legível pelo mundo é uma enorme vulnerabilidade local. O comando acima garante que apenas o usuário root possa ler e gravar no arquivo.

  4. Configurar uma área de troca do Linux

    Digite o seguinte comando para configurar uma área de troca do Linux em um arquivo:

    sudo mkswap /swapfile1
    

    Saídas de amostra:

    Setting up swapspace version 1, size = 524284 KiB
    no label, UUID=0e5e7c60-bbba-4089-a76c-2bb29c0f0839
    
  5. Ativar o arquivo de troca

    Por fim, para ativar o /swapfile1espaço de troca imediatamente, digite:

    sudo swapon /swapfile1
    
  6. Atualizar /etc/fstabarquivo Para ativar /swapfile1após a reinicialização do sistema Linux, adicione uma entrada ao /etc/fstabarquivo. Abra este arquivo usando um editor de texto como o vi:

    sudo vi /etc/fstab
    

    Anexe a seguinte linha:

    /swapfile1 none swap sw 0 0
    

    Salve e feche o arquivo. Na próxima vez que o Linux surgir após a reinicialização, ele habilita o novo arquivo de troca automaticamente.

  7. Como faço para verificar se a troca está ativada ou não?

    Basta usar o freecomando:

    free -m
    

Aqui está o link de onde obtive este tutorial: Adicionar um arquivo de troca


Um arquivo de troca não precisa estar /etc/fstabpresente e isso não é necessário para habilitá-lo.
Zanna

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.