Configurar aviso da temperatura da CPU no Conky
Dica publicada em Linux / Miscelânea
Configurar aviso da temperatura da CPU no Conky
No
O
A CPU costuma aparecer na saída do comando sensors: coretemp, k10temp, zenpower ou outro driver.
Exemplo:
pch_skylake-virtual-0
Adapter: Virtual device
temp1: +39.5°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +38.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +37.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +37.0°C (high = +80.0°C, crit = +100.0°C)
Core 2: +38.0°C (high = +80.0°C, crit = +100.0°C)
Core 3: +36.0°C (high = +80.0°C, crit = +100.0°C)
Caso não tiver, instale o pacote:
Caso colocar hwmon 0 e/ou hwmon 1 o
Para ver os hwmon:
hwmon0 hwmon1
Para qual é a CPU, veja na saída de:
A saída pode ser coretemp, pch_skylake, k10temp, etc, depende do fabricante.
Por exemplo, aqui:
pch_skylake
coretemp
As saídas acima indicam que pch_skylake é o chipset da placa-mãe e coretemp é a CPU. Compare a saída do comando sensors com as saídas dos comandos cat, o que bater com a saída do comando sensors é a CPU; ou pesquise na internet pelo nome.
A temperatura real da CPU está na saída do comando sensors:
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +46.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +46.0°C (high = +105.0°C, crit = +105.0°C)
Exemplo funcional do
Em temp deve ficar temp 2 e temp 3, mas confirme com:
Por exemplo, aqui:
Package id 0
Core 0
Core 1
Core 2
Core 3
temp1 é CPU Package id 0
temp2 é Core 0
temp3 é Core 1
etc...
Use sempre hwmon pelo nome (coretemp, k10temp, etc). Não use hwmon 0, hwmon 1, etc.
Alerta da CPU piscando quando a temperatura estiver maior do que 75°C:
Em awk '/Package id 0/
Coloque a saída do comando sensors logo após a linha Adapter, por exemplo:
Adapter: ISA adapter
Core 0: +46.0°C (high = +105.0°C, crit = +105.0°C)
Vai awk '/Core 0/.
E em:
Adapter: ISA adapter
Package id 0: +38.0°C (high = +80.0°C, crit = +100.0°C)
Vai awk '/Package id 0/.
Tenha o cuidado de verificar a marca e o modelo do teu processador porque tem processadores que trabalham fácil com 70°C, então adapte o limite do aviso para tuas necessidades, senão o WARNING aparecerá toda hora.
Conky não é aconselhado utilizar:
${hwmon 0 temp 1}
${hwmon 0 temp 3}
O
hwmon pode não ser a CPU.
A CPU costuma aparecer na saída do comando sensors: coretemp, k10temp, zenpower ou outro driver.
Exemplo:
$ sensors
pch_skylake-virtual-0
Adapter: Virtual device
temp1: +39.5°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +38.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +37.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +37.0°C (high = +80.0°C, crit = +100.0°C)
Core 2: +38.0°C (high = +80.0°C, crit = +100.0°C)
Core 3: +36.0°C (high = +80.0°C, crit = +100.0°C)
Caso não tiver, instale o pacote:
$ sudo apt install lm-sensors #ou dnf, pacman, zypper, etc
Caso colocar hwmon 0 e/ou hwmon 1 o
Conky não consegue identificar onde está a temperatura da CPU.
Para ver os hwmon:
$ ls /sys/class/hwmon/
hwmon0 hwmon1
Para qual é a CPU, veja na saída de:
$ cat /sys/class/hwmon/hwmon0/name
$ cat /sys/class/hwmon/hwmon1/name
A saída pode ser coretemp, pch_skylake, k10temp, etc, depende do fabricante.
Por exemplo, aqui:
$ cat /sys/class/hwmon/hwmon0/name
pch_skylake
$ cat /sys/class/hwmon/hwmon1/name
coretemp
As saídas acima indicam que pch_skylake é o chipset da placa-mãe e coretemp é a CPU. Compare a saída do comando sensors com as saídas dos comandos cat, o que bater com a saída do comando sensors é a CPU; ou pesquise na internet pelo nome.
A temperatura real da CPU está na saída do comando sensors:
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +46.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +46.0°C (high = +105.0°C, crit = +105.0°C)
Exemplo funcional do
Conky:
${color white}Temperatures:
${color white}Core 0:$color ${hwmon coretemp temp 2}°C
${color white}Core 1:$color ${hwmon coretemp temp 3}°C
Em temp deve ficar temp 2 e temp 3, mas confirme com:
$ cat /sys/class/hwmon/hwmon1/temp*_label
Por exemplo, aqui:
$ cat /sys/class/hwmon/hwmon1/temp*_label
Package id 0
Core 0
Core 1
Core 2
Core 3
temp1 é CPU Package id 0
temp2 é Core 0
temp3 é Core 1
etc...
Use sempre hwmon pelo nome (coretemp, k10temp, etc). Não use hwmon 0, hwmon 1, etc.
Bônus
Mostrar alerta piscando quando a temperatura do SD/HD for maior do que 50°:
${if_match ${execi 60 hddtemp /dev/sda | awk '{print $NF}' | sed 's/[^0-9]//g'} > 50}\
${if_match ${updates} % 2 == 0}${color red}${else}${color yellow}${endif}\
WARNING - HDD TEMPERATURE IS TOO HIGH\
${color}\
${endif}
Alerta da CPU piscando quando a temperatura estiver maior do que 75°C:
${if_match ${execi 5 sensors | awk '/Package id 0/ {print $4}' | sed 's/[+°C]//g'} > 75}\
${if_match ${updates} % 2 == 0}${color red}${else}${color yellow}${endif}\
CUIDADO - A CPU ESTÁ DERRETENDO!!!\
${color}\
${endif}
Em awk '/Package id 0/
Coloque a saída do comando sensors logo após a linha Adapter, por exemplo:
Adapter: ISA adapter
Core 0: +46.0°C (high = +105.0°C, crit = +105.0°C)
Vai awk '/Core 0/.
E em:
Adapter: ISA adapter
Package id 0: +38.0°C (high = +80.0°C, crit = +100.0°C)
Vai awk '/Package id 0/.
Conky estilizado para emitir alertas de acordo com as temperaturas
Regras:- < 70 °C = normal (não mostra nada)
- 70-84 °C = alerta amarelo
- >= 85 °C = alerta vermelho piscando
${execi 5 sensors | awk '/Core/ {gsub("[+°C]","",$3); sum+=$3; n++} END {if (n>0) printf "%d", sum/n}'}
${if_match ${execi 5 sensors | awk '/Core/ {gsub("[+°C]","",$3); sum+=$3; n++} END {if (n>0) printf "%d", sum/n}'} >= 70}\
${if_match ${execi 5 sensors | awk '/Core/ {gsub("[+°C]","",$3); sum+=$3; n++} END {if (n>0) printf "%d", sum/n}'} >= 85}\
${if_match ${updates} % 2 == 0}${color red}${else}${color}${endif}\
CUIDADO - O PROCESSADOR ESTÁ DERRETENDO!!!\
${else}\
${color yellow}CPU temperature high\
${endif}\
${color}${endif}
Tenha o cuidado de verificar a marca e o modelo do teu processador porque tem processadores que trabalham fácil com 70°C, então adapte o limite do aviso para tuas necessidades, senão o WARNING aparecerá toda hora.