Eu tenho um novo laptop System76 Lemur Pro com Ubuntu 20.04. Eu realmente quero amá-lo, mas estou descobrindo que ele está travando completa e totalmente várias vezes por semana, o que meio que atrapalha meus sentimentos. Estou em contato com o suporte do System76, mas também estou tentando resolver alguns problemas por conta própria. Sou relativamente novo no Linux e espero aprender não apenas como consertar minha máquina, mas também as etapas gerais de solução de problemas que seriam úteis no futuro.
O sistema : System76 Lemur Pro, i7, 40 GB de RAM, SSD único. Ubuntu 20.04. Todas as atualizações instaladas. Apenas os periféricos são um hub USB com mouse e teclado conectados e um monitor externo conectado via adaptador USB-C para DisplayPort. Nada exótico.
A falha : várias vezes por semana, volto ao meu laptop (geralmente de manhã, depois que ele fica ocioso a noite toda) para descobrir que ele não responde totalmente ao mouse/teclado. Usar ALT+F_ para tentar mudar para um terminal não faz nada. ALT + PRTSCR + REISUB não faz nada. Apertar o botão de energia não faz nada. Tentar ligar o LCD interno não faz nada. Apenas segurando o botão liga / desliga e redefinindo a máquina me permite recuperar. Isso aconteceu apenas uma vez enquanto eu estava usando ativamente a máquina e a área de trabalho do Gnome permaneceu visível, o mouse e o teclado travados, e cerca de 1/4 de segundo da música que eu estava ouvindo ficou preso em um loop. Nada além de hard reset trabalhou para recuperar.
O que eu tentei:
- CPU de teste de estresse. Eu monitorei as temperaturas da CPU enquanto executava um teste de estresse por vários minutos. As temperaturas nunca ultrapassaram os 80 e o ventilador da CPU entrou em ação para mantê-lo sob controle. Isso parece seguro, já que as temperaturas quentes/críticas foram listadas como 100.
- Executando o memtest. Looped por 5 vezes, tudo passou.
- Instalando quaisquer atualizações recomendadas pelo Ubuntu.
- Examinando os logs do sistema (/var/log/syslog). Esses logs simplesmente ficam em branco quando o sistema trava e ficam em branco até que eu o reinicie. Nada imediatamente antes do acidente parece terrivelmente interessante.
- Desativando o sono. Já estava desativado, mas pensei em mencionar isso.
Neste ponto, não tenho certeza de quais devem ser meus próximos passos. Existem outros logs que eu possa olhar? Outros diagnósticos que posso executar? Devo presumir que é um periférico e desconectar o teclado/mouse/monitor/hub um de cada vez para tentar isolar? Parece improvável que seja um periférico comum, mas quem sabe.
Edit: conforme solicitado, aqui estão os logs de /var/log/kern.log
antes de uma das falhas. Ele inclui muitas informações sobre a limitação da CPU sendo gerenciada. No entanto, essas mensagens ocorrem regularmente quando o computador está estável também...
Oct 22 07:52:00 system76-pc kernel: [44320.095989] mce: CPU4: Package temperature above threshold, cpu clock throttled (total events = 7775)
Oct 22 07:52:00 system76-pc kernel: [44320.095990] mce: CPU1: Package temperature above threshold, cpu clock throttled (total events = 4669)
Oct 22 07:52:00 system76-pc kernel: [44320.095992] mce: CPU3: Package temperature above threshold, cpu clock throttled (total events = 719)
Oct 22 07:52:00 system76-pc kernel: [44320.095992] mce: CPU6: Package temperature above threshold, cpu clock throttled (total events = 752)
Oct 22 07:52:00 system76-pc kernel: [44320.095994] mce: CPU7: Package temperature above threshold, cpu clock throttled (total events = 752)
Oct 22 07:52:00 system76-pc kernel: [44320.096970] mce: CPU2: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096972] mce: CPU0: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096972] mce: CPU5: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096973] mce: CPU3: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096974] mce: CPU6: Core temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096974] mce: CPU7: Core temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096975] mce: CPU4: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096976] mce: CPU1: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096977] mce: CPU6: Package temperature/speed normal
Oct 22 07:52:00 system76-pc kernel: [44320.096977] mce: CPU7: Package temperature/speed normal
Esta é uma resposta parcial, baseada em informações atuais, inclusive dos comentários.
Nos arquivos de log, há indicações de que altas temperaturas da CPU estão envolvidas, de modo que o sistema continua atingindo seu limite de temperatura de estrangulamento. No entanto, os testes de estresse da CPU não indicam nenhum problema.
Como teste, encontre o ponto operacional do sistema onde os problemas térmicos da CPU não são possíveis e execute dessa maneira por tempo suficiente para determinar o efeito na estabilidade do sistema. O custo deste teste será o desempenho. Mais tarde, um daemon térmico adequado (thermald, tlp, ...) deve ser investigado como forma de recuperar o desempenho máximo.
O driver de escala de frequência de CPU padrão para o i7-10510U é intel_pstate, e esta resposta foi escrita para esse driver. Verifique através de:
O teste de tortura de alto calor mprime (prime95) é usado como teste de estresse da CPU porque consome mais energia do que qualquer teste de estresse da CPU que já testei. Para proteger meu computador de exemplo, que não tem daemon térmico em execução, o ponto de operação desejado de cerca de 80 graus será encontrado no lado inferior. Primeiro, observe o percentual de frequência máxima da CPU atual, observe o mínimo também (o seu será diferente):
Pode não ser 100% se algum daemon térmico já estiver limitando as coisas. De qualquer forma, vou começar com 50%:
Em seguida, aumente gradualmente a porcentagem máxima de frequência da CPU, digamos em incrementos de 10%, e encontre o ponto operacional para cerca de 80 graus de temperatura do pacote do processador:
Portanto, para o meu sistema, limitar a frequência da CPU a 80% do máximo os manterá longe de qualquer limitação térmica adicional incorporada. Execute o sistema desta forma por algum tempo.
Este é um bug do Kernel associado ao gerenciamento de energia da CPU. É corrigido no kernel 5.8, que vem com o Ubuntu 20.10. Atualizei para 20.10, desativei todas as soluções alternativas e estou funcionando estável agora.
Se a atualização para 5.8/20.10 não for algo que você deseja fazer, você também pode contornar o bug impedindo que sua CPU entre em estados de baixa energia (isso reduzirá a vida útil da bateria, obviamente). Abra
/etc/default/grub
e adicioneintel_idle.max_cstate=1
ao conteúdo do valor paraGRUB_CMDLINE_LINUX_DEFAULT
. Salve, executesudo update-grub
e reinicie. Inverta o processo para reverter a solução alternativa.É possível que um valor de cstate maior que 1 ainda seja uma solução alternativa estável, mas nunca experimentei o suficiente para verificar.