Como faço para suspender o trabalho em um HP DV4T?

6

A suspensão não funciona no meu laptop. Quando o laptop tenta suspender, a tela é desligada rapidamente, algum texto com aparência do sistema aparece por um instante, a tela é desligada novamente, a tela é ligada novamente e eu estou em um aviso de tela bloqueada.

Eu tentei:

  1. O botão suspenso no menu de unidade
  2. sudo pm-suspend
  3. sudo acpitool -s
  4. dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
  5. Excluindo /etc/pm/sleep.d (como sugerido aqui )
  6. sudo modprobe -r tpm_tis
  7. Modfying / proc / acpi / wakeup para alternar tudo, exceto o botão de energia para desativado.
  8. Colocando SUSPEND_MODULES="alx" em /etc/pm/config.d/modules
  9. Escrevendo um script que força a placa gráfica a se reinicializar usando um "chute" de chvt1 e chvt7 e colocando-a em /etc/pm/sleep.d/20_custom-ehci_hcd (a resposta de @Sushantp606 abaixo)
  10. Tentando o mesmo que o item 9 de uma maneira diferente (a terceira parte da resposta do @Sushantp606 abaixo)
  11. %código%
      

    Este kernel não tem suporte ao KMS. Máquina é desconhecida. Esta máquina   pode ser identificado por:       sys_vendor="Hewlett-Packard"       sys_product="PC notebook HP Pavilion dv4"       sys_version="F.24"       bios_version="F.24"

Nada disso resolveu o problema. # 9 mudou um pouco o comportamento (pedalou mais rapidamente entre tentar dormir e acordar).

Alguma sugestão do que posso fazer em seguida?

    
por JoshuaD 29.11.2013 / 19:04

5 respostas

2

Esta página pode ajudar: link

Hibernação (suspender para o disco) O recurso de hibernação (suspender para o disco) grava o conteúdo da RAM na partição de permuta antes de desligar a máquina. Portanto, sua partição de swap deve ser pelo menos tão grande quanto seu tamanho de RAM. A implementação de hibernação atualmente usada no Ubuntu, swsusp, precisa de uma partição swap ou suspensa. Não é possível usar um arquivo de troca em um sistema de arquivos ativo.

    
por Mohsen 30.11.2013 / 00:15
2

Agora, como você já tentou quase tudo, vale a pena um bom e efetivo anser. Bem, esta questão é de alguma forma relacionada com a placa gráfica, não vai para suspender e é por isso que nada funciona.Por isso, há soluções que mencionei para concordar que experimentá-lo um por um.

Crie um módulo de arquivo em /etc/pm/config.d por -

sudo gedit /etc/pm/config.d/modules

e cole o seguinte comando nele -

SUSPEND_MODULES="alx"

Isso forçará o módulo alx a ser descarregado e recarregado com a suspensão, e seu problema será resolvido com isso, se não excluir essa linha e ir para a próxima parte.

Este vai funcionar com certeza. como força a placa gráfica a se reinicializar usando um bom chute antigo de chvt1 e chvt7. Então vamos começar com 20_custom-ehci_hcd da seguinte forma -

gksudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd

forneça a senha e cole o seguinte no gedit

#!/bin/sh
VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1
unbindDev() {
echo -n > $DEV_LIST 2>/dev/null
for driver in $DRIVERS; do
DDIR=$DRIVERS_DIR/${driver}_hcd
for dev in 'ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"'; do
echo -n "$dev" > $DDIR/unbind
echo "$driver $dev" >> $DEV_LIST
done
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
# done
done
}
bindDev() {
 if [ -s $DEV_LIST ]; then
while read driver dev; do
DDIR=$DRIVERS_DIR/${driver}_hcd
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
#done
while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
echo -n "$dev" > $DDIR/bind
if [ ! -L "$DDIR/$dev" ]; then
sleep $BIND_WAIT
 else
break
fi
MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
done
done < $DEV_LIST
fi
rm $DEV_LIST 2>/dev/null
chvt 1
chvt 7
}
EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "" in
hibernate|suspend)
unbindDev;;
resume|thaw)
bindDev;;
esac

Salve e, em seguida, forneça a permissão por -

sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd

Reinicie por -

sudo reboot

e agora verifique. ele funcionará com certeza, mas se o seu kernel recusar esse script, substitua o código inteiro pelo seguinte -

#!/bin/sh
# File: "/etc/pm/sleep.d/20_custom-ehci_hcd".
TMPLIST=/tmp/ehci-dev-list
case "" in
hibernate|suspend)
;;
resume|thaw)
chvt 1
chvt 7
;;
esac

sua suspensão já estaria funcionando, essa resposta é coletada no UbuntuForum.

Last Work Arround para isso, você precisa instalar um pequeno aplicativo que é uswsusp, instale-o seguindo o comando -

sudo apt-get install uswsusp

Após a conclusão da instalação, verifique a suspensão pelo seguinte -

sudo s2ram

Seu PC precisa ir suspender agora.

E para hibernação -

sudo s2disk

Agora, se funcionar, remova os Scripts e os comandos anteriormente padrão seguindo, mas antes de fazer qualquer coisa, faça backup por -

sudo cp /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux.bak

sudo cp /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux.bak

Agora vamos substituir os arquivos e comandos antigos por -

hal-system-power-suspend-linux
hal-system-power-hibernate-linux

então

sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux

e cole o seguinte -

#!/bin/sh
/sbin/s2ram –force

e para hibernar -

sudo nano /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux

e cole o seguinte -

#!/bin/sh
/sbin/s2disk

Espero que desta vez tenha ajudado você.

    
por Sukupa91 05.12.2013 / 22:36
2

A página de ajuda da comunidade do Ubuntu sugere o seguinte para ativar a hibernação com partição de permuta criptografada :

Preparação:

  1. Seu computador já deve estar configurado para criptografia. Caso contrário, siga as instruções em Criptografia pós-instalação primeiro.

  2. Pense em uma senha (ou passphrase) para sua partição swap. Você pode usar o mesmo que o seu login - mas não faça isso se outras pessoas tiverem contas no seu computador!

  3. Descubra qual é a sua partição swap criptografada.

     swapon --summary
    

    Você deve ver uma saída semelhante a:

     Filename                        Type            Size    Used    Priority
     /dev/mapper/cryptswap1          partition       1998844 0       -1
    

    Se você não vê cryptswap1, a partição está descriptografada ou não está criptografada no padrão do Ubuntu,

  4. Agora,

     sudo cryptsetup status cryptswap1
    

    A saída deve ser semelhante a

     /dev/mapper/cryptswap1 is active and is in use.
       type:    PLAIN
       cipher:  aes-cbc-essiv:sha256
       keysize: 256 bits
       device:  /dev/sda1
       offset:  0 sectors
       size:    3997696 sectors
       mode:    read/write
    

    Anote o dispositivo . O exemplo diz /dev/sda1 - , mas o seu pode ser outra coisa , por exemplo /dev/sdb3 .

  5. Fazer backup .

Como configurar a hibernação

  1. Desativar troca.

     sudo swapoff /dev/mapper/cryptswap1
    
  2. Desfaça o mapeamento existente.

     sudo cryptsetup luksClose /dev/mapper/cryptswap1
    
  3. Configure o swap novamente, mas desta vez com a senha escolhida. O comando solicitará duas vezes sua senha. Substitua /dev/sdXN pelo dispositivo do Ponto de preparação 4 . (O comando a seguir é exibido na tela do navegador, mas é um único comando que você precisa digitar.)

     sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --verify-passphrase --key-size 256 /dev/sdXN
    

    O resultado deve ser:

     WARNING!
     ========
     This will overwrite data on /dev/sda1 irrevocably.
     Are you sure? (Type uppercase yes):
     Enter LUKS passphrase:
     Verify passphrase:
    

    Digite YES e insira sua senha duas vezes, conforme solicitado.

  4. Mapeie o swap. Substitua /dev/sdXN pelo dispositivo do ponto de preparação 4.

      sudo cryptsetup luksOpen /dev/sdXN cryptswap1
    
  5. Configure a partição como swap.

     sudo mkswap /dev/mapper/cryptswap1
    
  6. Ligue o swap (para que ele comece a funcionar novamente).

     sudo swapon --all
    
  7. Verifique se está funcionando.

     swapon --summary
    

    Você deve ver uma saída semelhante a essa (os números podem ser diferentes).

     Filename                        Type            Size    Used    Priority
     /dev/mapper/cryptswap1          partition       1996796 0       -1
    
  8. Usando gksudo com seu editor favorito (o padrão para o Ubuntu é gedit ), edite o arquivo /etc/crypttab (por exemplo, executar gksudo gedit /etc/crypttab ). Comente a linha existente adicionando # à frente (ou apenas exclua a linha) e adicione a seguinte linha. Substitua /dev/sdXN pelo dispositivo do ponto de preparação 4.

     cryptswap1   /dev/sdXN   none   luks
    
  9. Edite o arquivo /usr/share/initramfs-tools/scripts/local-top/cryptroot . Procure a linha a seguir (deve ser a linha 288, mas isso pode mudar com o tempo):

     message "cryptsetup: unknown error setting up device mapping"
    

    Pule para a próxima linha em branco (deve ser 291, antes de FSTYPE = '') e insira a linha a seguir. Substitua /dev/sdXN pelo dispositivo do ponto de preparação 4.

     /sbin/cryptsetup luksOpen /dev/sdXN cryptswap1
    
  10. Edite o arquivo /etc/acpi/hibernate.sh . Na primeira linha em branco, insira a seguinte linha.

     DEVICE='/dev/mapper/cryptswap1'
    

    Edite o arquivo /etc/initramfs-tools/conf.d/resume . Substitua a linha RESUME existente pela seguinte linha.

     RESUME=/dev/mapper/cryptswap1
    

    Registre essas alterações.

     sudo update-initramfs -u -k all
    

    O Ubuntu desativa a opção Hibernar no menu. Restaure da seguinte maneira. Crie (usando o gksudo com seu editor favorito) o arquivo: /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla (por exemplo, executar gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla )

    Preencha o arquivo com o seguinte texto e salve.

     [Re-enable hibernate by default]
     Identity=unix-user:*
     Action=org.freedesktop.upower.hibernate
     ResultActive=yes
    
  11. Reinicie a máquina.

por precise 08.12.2013 / 05:00
1

Modifique / proc / acpi / wakeup

Mude tudo para desativado, exceto para PWRB (ou equivalente) para que a única coisa que possa ativar o seu PC seja o botão liga / desliga.

Aproveite

    
por DeeJayh 05.12.2013 / 21:55
1

verifique se há um bug no kernel ( link ) anterior ao I acho que é 3,11 o que causa esse problema. Você pode atualizar o kernel sem atualizar o sistema Como atualizar o kernel para a última versão mainline sem qualquer distro-upgrade?

    
por matpol 11.12.2013 / 11:05

Tags