Como depurar suspender?

24

Estou usando o Ubuntu há cerca de cinco anos e ainda não consigo suspendê-lo quando quero. É muito irritante que eu possa programar uma tempestade, hackear a máquina de várias outras maneiras e, no entanto, quando tento fazer com que ela suspenda ou depure a suspensão, falho miseravelmente.

Eu preciso de ajuda.

Onde começo a encontrar o problema? O que eu faço para consertar isso? Eu estou colocando uma recompensa por isso, porque eu literalmente perdi horas da minha vida para este problema, e deixar meu computador ligado o tempo todo é terrível.

Os sintomas:

  • Pressionar suspender leva meu computador a um estado em que ele tem um cursor piscante, os ventiladores estão funcionando, parece que o HD foi desligado (eu acho) e não posso fazer nada para trazê-lo de volta desse estado (curto de um hard reboot).
  • Possivelmente relacionado: Meus fãs continuam mesmo depois de um desligamento, e mesmo assim, eu tenho que apertar o botão liga / desliga por cinco segundos antes que eu possa iniciá-lo novamente.
  • Eu não sei em quais logs olhar para depurar o problema, e imagino que eles seriam eliminados na reinicialização de qualquer maneira.

Por favor, ajude. Isso me deixa completamente louco, e eu tenho vivido com isso há mais de um ano.

    
por mlissner 05.12.2010 / 02:06

3 respostas

19

De link

  • O maior problema é o hardware gráfico
  • tente suspender sem dispositivos restritos (nvidia, fglrx)
  • O
  • kernel não sabe como lidar com dispositivos gráficos
  • BIOS
  • sabe como restaurar o estado dos gráficos
    • via modo segmentado de 16 bits, C000: xxxx contém o vídeo ROM visível de 64k.
    • iniciando a execução em C000: 0003, normalmente re-POSTs no BIOS de vídeo (/ usr / sbin / vbetool post)
      • mais difícil no modo de 64 bits, já que as chamadas de 16 bits precisam ser emuladas.
      • alguma memória está na faixa de 3-4G, o que requer remapeamento quando emulando para evitar atingir o kernel que é mapeado no mesmo espaço. o BIOS de vídeo pode ter paginado o código POST fora da janela do C000 o nvidia BIOS reescreve a ROM para apenas retornar para parar o re-POSTing tente suspender do console (via /etc/acpi/sleep.sh)
    • verifique se você está desconectado do Xorg (ou execute o sleep.sh com o argumento "force")
    • se o BIOS de vídeo não for deixado em um estado normal, o retorno ao Xorg pode travar o hardware
    • testa o capslock no currículo (se nenhum capslock, kernel pendurado)
    • se a luz de fundo não voltar, a BIOS de vídeo provavelmente não reinicializou
    • se a tela estiver em branco, mas tiver uma luz de fundo, tente pressionar Enter ou alternar entre terminais virtuais
    • tente no modo de usuário único (adicionando "single" às opções de inicialização do kernel do grub)
    • para detalhes sobre as ações, tente bash -x /etc/acpi/sleep.sh > /root/sleep.log 2 > & amp; 1
    • veja as informações do dmidecode que correspondem às configurações em /usr/share/acpi-support/*.config
    • se o console do modo de usuário único suspender ou retomar falhar
    • Rastreio PM (echo "1" > / sys / power / pm_trace) que gravará os hashes do dispositivo no temporizador do sistema
    • tentar suspender
    • após a falha, na reinicialização, examine a saída do dmesg para entradas de "hash do dispositivo" para rastrear o dispositivo que suspendeu o sistema durante a retomada.
    • ciente de que isso irá redefinir o clock do sistema, e o fsck irá pirar ("passou sem um fsck por 31337 dias"). Considere tune2fs -c 0 / dev / your / filesystems.
por Henrik 30.01.2011 / 01:26
4

Você pode encontrar muitas orientações / conselhos aqui e aqui .

A partir de sua descrição, parece que sua ACPI não está funcionando corretamente, ou os drivers do kernel estão impedindo uma suspensão completa. O segundo link mostra como lidar com esse tipo de problema.

    
por evgeny 05.12.2010 / 04:05
2

Os sintomas:

  • Pressionar suspender leva meu computador a um estado em que ele tem um cursor piscante, os ventiladores estão funcionando, parece que o HD foi desligado (eu acho) e não posso fazer nada para trazê-lo de volta desse estado (curto de um hard reboot).
  • Possivelmente relacionado: Meus fãs continuam mesmo depois de um desligamento, e mesmo assim, eu tenho que apertar o botão liga / desliga por cinco segundos antes que eu possa iniciá-lo novamente.
  • Eu não sei em quais logs olhar para depurar o problema, e imagino que eles seriam eliminados na reinicialização de qualquer maneira.

Meu site acessa muitos problemas do Linux é o Arch Linux. Aqui está o que é postado sobre suspender / retomar problemas semelhante ao seu:

Ativos instantâneos da suspensão

Para alguns sistemas Intel Haswell com o chipset LynxPoint e LynxPoint-LP, os acordos instantâneos após a suspensão são relatados. Eles estão ligados a implementações errôneas do BIOS ACPI e como o módulo xhci_hcd o interpreta durante a inicialização. Como um work-around relatou sistemas afetados são adicionados a uma lista negra (denominada XHCI_SPURIOUS_WAKEUP ) pelo kernel caso-a-caso. [ 2 ]

A retomada instantânea pode acontecer, por exemplo, se um dispositivo USB estiver conectado durante a suspensão e os acionadores de ativação da ACPI estiverem ativados. Uma solução viável para tal sistema, se ainda não estiver na lista negra, é desabilitar os gatilhos de ativação. Um exemplo para desativar a ativação por USB é descrito a seguir. [ 3 ]

Para ver a configuração atual:

$ cat /proc/acpi/wakeup

Device  S-state   Status   Sysfs node
...
EHC1      S3    *enabled  pci:0000:00:1d.0
EHC2      S3    *enabled  pci:0000:00:1a.0
XHC       S3    *enabled  pci:0000:00:14.0

...

Os dispositivos relevantes são EHC1 , EHC2 e XHC (para USB 3.0). Para alternar seu estado, você precisa ecoar o nome do dispositivo para o arquivo como root.

# echo EHC1 > /proc/acpi/wakeup
# echo EHC2 > /proc/acpi/wakeup
# echo XHC > /proc/acpi/wakeup

Isso deve resultar em suspensão trabalhando novamente. No entanto, essas configurações são apenas temporárias e devem ser definidas a cada reinicialização. Para automatizar isso, dê uma olhada nos arquivos systemd # Writing unit . Consulte o thread do BBS para obter uma solução possível e mais informações.

O artigo inteiro do Arch Linux, sobre Suspend / Resume, é uma ótima referência para muitas áreas:

1 Low level interfaces
    1.1 kernel (swsusp)
    1.2 uswsusp
2 High level interfaces
    2.1 systemd
3 Hibernation
    3.1 About swap partition/file size
    3.2 Required kernel parameters
        3.2.1 Hibernation into swap file
    3.3 Configure the initramfs
4 Troubleshooting
    4.1 ACPI_OS_NAME
    4.2 VAIO Users
    4.3 Suspend/hibernate doesn't work, or not consistently
    4.4 Wake-on-LAN
    4.5 Instantaneous wakeups from suspend
    
por WinEunuuchs2Unix 29.06.2018 / 04:13