Como habilitar proteções para a temperatura da CPU

9

Minha área de trabalho tem um hábito desagradável. Quando tenho vários aplicativos de alta intensidade em execução e minha CPU está em uso máximo por um período de tempo, a temperatura do núcleo aumenta e o computador é desligado automaticamente.

Existe uma maneira de monitorar (escrever um script) a temperatura da minha CPU em segundo plano e receber algum tipo de aviso quando estiver acima de uma certa temperatura?

Estou executando o Opensuse com o dwm como meu gerenciador de janelas. Eu costumo usar sensorspara ver a temperatura da minha CPU.

n0pe
fonte
1
No Linux, ou algumas outras variantes unix? O método para obter a temperatura ou ser notificado sobre alterações de temperatura difere entre as variantes unix.
Gilles 'SO- stop be evil'
My bad @Gilles, adicionei informações à minha pergunta
n0pe
Depois de ver que a temperatura aumenta, você deve acelerar a CPU.
Nils

Respostas:

5

Você pode escrever um script para exibir sua temperatura na barra de status do dwm, por exemplo:

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

Sua sensorssaída pode ser mais complexa, dependendo da sua configuração: isso funciona em uma das minhas máquinas:

 awk '/temp1/ {print +$2"°C"}' <(sensors)

Se você aplicar patch nas cores de status , poderá fazer com que a saída mude de cor à medida que $tempatinge valores mais altos ...

O Arch Wiki tem uma introdução à configuração de um script básico da barra de status e o site dwm inclui um exemplo .xinitrc .

Você pode ver meu dwm-statusscript para obter mais detalhes: http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status

jasonwryan
fonte
Essa é realmente uma ótima idéia na qual eu não pensei. Eu realmente nunca tive tempo de brincar com a barra de status do dwm, então isso será divertido. Vou ver o que posso gerenciar e comentar de volta.
N0pe
Funcionou perfeitamente, e agora eu tenho uma barra de status bem personalizado :)
n0pe
Excelente: dá-lhe um pouco de espaço para trabalhar com ...
jasonwryan
2

Eu tenho exatamente o mesmo problema e o que eu uso é o pacote "cpufreqtools" (ou apenas "cpufreq" - não me lembro!).

Ele fornece dois comandos: cpufreq-info e cpufreq-set

O cpufreq-info lista a velocidade atual da CPU e as velocidades mínima e máxima. e as etapas disponíveis também.

O cpufreq-set é mais útil para você, porque você pode limitar a velocidade máxima que sua CPU alcançará.

Minha CPU propensa a superaquecimento tem as velocidades disponíveis de 800 MHz, 1,60 GHz e 1,80 GHz. SO, o que eu faço é limitá-lo a 1.60GHz assim:

cpufreq-set --max 1.60Ghz

Funciona como um encanto!

Se você é mais avançado em suas habilidades em Linux, pode até colocá-lo em um script de inicialização, para que seja sempre executado assim que o Linux for iniciado.

Boa sorte.

Daniel
fonte
cpufrequtils (ubuntu 16.04).
Green Tree
1

Eu criei um script para resolver diretamente esse tipo de problema de superaquecimento. Limite sua CPU com base na temperatura desejada. Ele é executado automaticamente em segundo plano como este:

sudo ./temp_throttle.sh 80

Esse comando fará com que os núcleos da CPU fiquem mais lentos quando atingirem 80 graus Celsius. Quando a temperatura cai, os núcleos da CPU podem funcionar mais rapidamente novamente. Você pode encontrar temp_throttle aqui .

Sepero
fonte
1
No futuro, não espere que todos executem o Ubuntu com sua política padrão sudo-everything. Mencione que é preciso permitir o script na configuração do sudo ou (melhor) apenas escreva que ele requer privilégios de root que podem ser alcançados através do sudo. Ou - no Linux - descreva os recursos (como na capabilities(7)página de manual) necessários.
Peterph