lm_sensors (Português)

Status de tradução:
Esse artigo é uma tradução de
lm_sensors
. Data da última tradução: 2020-04-08. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Controle da velocidade do cooler
hddtemp
monitorix
lm_sensors
[
link inativo
2025-01-22 ⓘ]
(
Linux monitoring sensors
) é um aplicativo livre e de código aberto que fornece ferramentas e drivers para monitorar temperaturas, tensão e ventiladores. Este documento explica como instalar, configurar e usar o
lm_sensors
.
Instalação
Instale
o pacote
lm_sensors
.
Nota
Mais documentação está no
repositório GitHub
. No futuro, esses podem ser instalados, veja
FS#48354
.
Configuração
Use
sensors-detect
como root para detectar e gere uma lista de módulos de kernel:
Atenção
Não uso nada além das opções padrão (só pressionando
Enter
), a menos que você saiba exatamente o que você está fazendo. Veja
#Problemas na tela do laptop após a execução de sensors-detect
.
# sensors-detect
Ele pedirá para sondar vários hardwares. As respostas "seguras" são os padrões, então apenas pressionar
Enter
para todas as perguntas geralmente não causará nenhum problema. Isso criará o arquivo de configuração
/etc/conf.d/lm_sensors
que é usado por
lm_sensors.service
para carregar automaticamente os módulos do kernel na inicialização.
Quando a detecção é concluída, um resumo das sondas é apresentado.
Exemplo:
# sensors-detect
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): 
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No

...

Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Driver `lm90':
  * Bus `SMBus nForce2 adapter at 4d00'
    Busdriver `i2c_nforce2', I2C address 0x4c
    Chip `Winbond W83L771AWG/ASG' (confidence: 6)

Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no): 
ln -s '/usr/lib/systemd/system/lm_sensors.service' '/etc/systemd/system/multi-user.target.wants/lm_sensors.service'
Unloading i2c-dev... OK
Unloading cpuid... OK
Nota
Um serviço systemd é ativado automaticamente se os usuários responderem
YES
quando perguntados sobre a geração de
/etc/conf.d/lm_sensors
. Respondendo
SIM
também inicia automaticamente o serviço.
Execução de sensors
Exemplo de execução do
sensors
:
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +35.0°C  (crit = +105.0°C)
Core 1:       +32.0°C  (crit = +105.0°C)

w83l771-i2c-0-4c
Adapter: SMBus nForce2 adapter at 4d00
temp1:        +28.0°C  (low  = -40.0°C, high = +70.0°C)
                       (crit = +85.0°C, hyst = +75.0°C)
temp2:        +37.4°C  (low  = -40.0°C, high = +70.0°C)
                       (crit = +110.0°C, hyst = +100.0°C)
Lendo valores SPD de módulos de memória (opcional)
Para ler os valores de tempo de SPD de módulos de memória, instale o pacote
i2c-tools
. Uma vez instalado, carregue
módulo de kernel
eeprom
.
# modprobe eeprom
Finalmente, veja informações de memória com
decode-dimms
.
Aqui está uma saída parcial de uma máquina:
# decode-dimms
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in                             bank 1

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x583F)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 512
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     UDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
tCL-tRCD-tRP-tRAS                               7-7-7-33
Supported CAS Latencies (tCL)                   8T, 7T, 6T, 5T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      49.500 ns
Minimum Recovery Delay (tRFC)                   110.000 ns
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.500 ns
Minimum Four Activate Window Delay (tFAW)       30.000 ns

---=== Optional Features ===---
Operable voltages                               1.5V
RZQ/6 supported?                                Yes
RZQ/7 supported?                                Yes
DLL-Off Mode supported?                         No
Operating temperature range                     0-85C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              Yes
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         Not implemented
SDRAM Device Type                               Standard Monolithic

---=== Physical Characteristics ===---
Module Height (mm)                              15
Module Thickness (mm)                           1 front, 1 back
Module Width (mm)                               133.5
Module Reference Card                           B

---=== Manufacturer Data ===---
Module Manufacturer                             Invalid
Manufacturing Location Code                     0x02
Part Number                                     OCZ3G1600LV2G     

...
Usando dados de sensores
Front-ends gráficos
Há uma variedade de front-ends para dados de sensores.
psensor
— Aplicativo GTK+ para monitorar sensores de hardware, incluindo temperaturas e velocidades do cooler. Monitora placa-mãe e CPU (usando lm-sensors), Nvidia GPUs (usando XNVCtrl) e harddisks (usando
hddtemp
ou libatasmart).
https://wpitchoune.net/psensor/
||
psensor
xsensors
— Interface X11 para o lm_sensors.
https://linuxhardware.org/xsensors/
[
link inativo
2021-11-13 ⓘ]
||
xsensors
Para
Ambientes de desktop
específicos:
Freon (Extensão do GNOME Shell)
— Extensão para exibir temperatura de CPU, temperatura do disco, temperatura da placa de vídeo, voltagem e RPM do cooler no
GNOME
Shell.
https://github.com/UshakovVasilii/gnome-shell-extension-freon
||
gnome-shell-extension-freon
AUR
GNOME Sensors Applet
— Miniaplicativo para o painel do
GNOME
para exibir leituras dos sensores do hardware, incluindo leituras de temperatura de CPU, velocidades de coolers e voltagem.
https://sensors-applet.sourceforge.net/
||
sensors-applet
lm-sensors (plugin de LXPanel)
— Monitora temperatura/voltagens/velocidades de cooler no
LXDE
por meio de lm-sensors.
https://danamlund.dk/sensors_lxpanel_plugin/
||
sensors-lxpanel-plugin
AUR
MATE Sensors Applet
— Exibe leituras de sensores de hardware no seu painel do
MATE
.
https://github.com/mate-desktop/mate-sensors-applet
||
mate-sensors-applet
Sensors (Plugin do painel do Xfce4)
— Plugin de sensores de hardware para o painel do
Xfce
.
https://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin
||
xfce4-sensors-plugin
Thermal Monitor (Miniaplicativo do Plasma 5)
— Miniaplicativo do Plasma para
KDE
para monitoramento de CPU, GPU e outros sensores de temperatura disponíveis.
https://github.com/kotelnik/plasma-applet-thermal-monitor
||
plasma5-applets-thermal-monitor-git
AUR
[
link quebrado
: package not found]
sensord
Existe um daemon opcional chamado
sensord
(incluído no pacote
lm_sensors
) que pode registrar dados em um banco de dados round robin (rrd) e depois visualizar graficamente. Veja a página man
sensord(8)
para detalhes.
Dicas e truques
Ajustando valores
Em alguns casos, os dados exibidos podem estar incorretos ou os usuários podem desejar renomear a saída. Casos de uso incluem:
Valores incorretos de temperatura devido a um deslocamento incorreto (isto é, os tempos são relatados 20°C mais altos do que os reais).
Usuários desejam renomear a saída de alguns sensores.
Os
cores
podem ser exibidos em uma ordem incorreta.
Todos os itens acima (e mais) podem ser ajustados sobrepondo as configurações do pacote em
/etc/sensors3.conf
criando
/etc/sensors.d/
foo
em que qualquer número de os ajustes substituirão os valores padrão. Recomenda-se renomear 'foo' para a marca e modelo da placa-mãe, mas esta nomenclatura de nomenclatura é opcional.
Nota
Não edite
/etc/sensors3.conf
diretamente, já que atualizações de pacotes vão sobrescrever quaisquer alterações, consequentemente perdendo-as.
Exemplo 1. Ajustante posições de temperatura
Este é um exemplo real de uma placa-mãe Zotac ION-ITX-A-U. Os valores de coretemp estão desativados em 20°C (muito alto) e são ajustados de acordo com as especificações da Intel.
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +57.0°C  (crit = +125.0°C)
Core 1:       +55.0°C  (crit = +125.0°C)
...
Execute
sensors
com a opção
-u
para ver quais opções estão disponíveis para cada chip físico (modo "raw"):
$ sensors -u
coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 57.000
  temp2_crit: 125.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 55.000
  temp3_crit: 125.000
  temp3_crit_alarm: 0.000
...
Crie o seguinte arquivo substituindo os valores padrão:
/etc/sensors.d/Zotac-IONITX-A-U
chip "coretemp-isa-0000"
  label temp2 "Core 0"
  compute temp2 @-20,@-20

  label temp3 "Core 1"
  compute temp3 @-20,@-20
Agora, chamar
sensors
mostra os valores ajustados:
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +37.0°C  (crit = +105.0°C)
Core 1:       +35.0°C  (crit = +105.0°C)
...
Exemplo 2. Renomeando rótulos
Este é um exemplo real em um Asus A7M266. O usuário deseja nomes mais detalhados para os rótulos de temperatura
temp1
e
temp2
:
$ sensors
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
...
temp1:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
temp2:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
...
Crie o seguinte arquivo para substituir os valores padrão:
/etc/sensors.d/Asus_A7M266
chip "as99127f-*"
  label temp1 "Mobo Temp"
  label temp2 "CPU0 Temp"
Agora, chamar
sensors
mostra os valores ajustados:
$ sensors
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
...
Mobo Temp:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
CPU0 Temp:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
...
Exemplo 3. Renumerando núcleos para sistemas com várias CPUs
Este é um exemplo real de uma estação de trabalho HP Z600 com Xeons duplos. A numeração real dos núcleos físicos está incorreta: numerada 0, 1, 9, 10, que é repetida na segunda CPU. A maioria dos usuários espera que as temperaturas do núcleo relatem em ordem sequencial, ou seja, 0,1,2,3,4,5,6,7.
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core 1:       +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core 9:       +66.0°C  (high = +85.0°C, crit = +95.0°C)
Core 10:      +66.0°C  (high = +85.0°C, crit = +95.0°C)

coretemp-isa-0004
Adapter: ISA adapter
Core 0:       +54.0°C  (high = +85.0°C, crit = +95.0°C)
Core 1:       +56.0°C  (high = +85.0°C, crit = +95.0°C)
Core 9:       +60.0°C  (high = +85.0°C, crit = +95.0°C)
Core 10:      +61.0°C  (high = +85.0°C, crit = +95.0°C)
...
Agora, execute
sensors
com a opção
-u
para ver quais opções estão disponíveis para cada chip físico:
$ sensors -u coretemp-isa-0000
coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 61.000
  temp2_max: 85.000
  temp2_crit: 95.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 61.000
  temp3_max: 85.000
  temp3_crit: 95.000
  temp3_crit_alarm: 0.000
Core 9:
  temp11_input: 62.000
  temp11_max: 85.000
  temp11_crit: 95.000
Core 10:
  temp12_input: 63.000
  temp12_max: 85.000
  temp12_crit: 95.000
$ sensors -u coretemp-isa-0004
coretemp-isa-0004
Adapter: ISA adapter
Core 0:
  temp2_input: 53.000
  temp2_max: 85.000
  temp2_crit: 95.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 54.000
  temp3_max: 85.000
  temp3_crit: 95.000
  temp3_crit_alarm: 0.000
Core 9:
  temp11_input: 59.000
  temp11_max: 85.000
  temp11_crit: 95.000
Core 10:
  temp12_input: 59.000
  temp12_max: 85.000
  temp12_crit: 95.000
...
Crie o seguinte arquivo substituindo os valores padrão:
/etc/sensors.d/HP_Z600
chip "coretemp-isa-0000"
  label temp2 "Core 0"
  label temp3 "Core 1"
  label temp11 "Core 2"
  label temp12 "Core 3"

chip "coretemp-isa-0004"
  label temp2 "Core 4"
  label temp3 "Core 5"
  label temp11 "Core 6"
  label temp12 "Core 7"
Agora, chamar
sensors
mostra os valores ajustados:
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core0:        +64.0°C  (high = +85.0°C, crit = +95.0°C)
Core1:        +63.0°C  (high = +85.0°C, crit = +95.0°C)
Core2:        +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core3:        +66.0°C  (high = +85.0°C, crit = +95.0°C)

coretemp-isa-0004
Adapter: ISA adapter
Core4:        +53.0°C  (high = +85.0°C, crit = +95.0°C)
Core5:        +54.0°C  (high = +85.0°C, crit = +95.0°C)
Core6:        +59.0°C  (high = +85.0°C, crit = +95.0°C)
Core7:        +60.0°C  (high = +85.0°C, crit = +95.0°C)
...
Implantação automática de lm_sensors
Os usuários que desejam implantar lm_sensors em várias máquinas podem usar o seguinte para aceitar os valores padrão para todas as perguntas:
# sensors-detect --auto
Solução de problemas
Módulo K10Temp
Alguns processadores K10 têm problemas com seu sensor de temperatura. Da documentação do kernel (
linux-<version>/Documentation/hwmon/k10temp
):
Todos esses processadores possuem um sensor, mas para o soquete F ou AM2+, o sensor pode retornar valores inconsistentes (errata 319). O driver se recusará a carregar nessas revisões, a menos que os usuários especifiquem o parâmetro do módulo
force=1
.
Devido a razões técnicas, o driver pode detectar apenas o tipo de soquete da placa-mãe, não os recursos reais do processador. Portanto, os usuários de um processador AM3 em uma placa-mãe AM2+ podem usar com segurança o parâmetro
force=1
.
Em máquinas afetadas, o módulo relatará "unreliable CPU thermal sensor; monitoring disabled". Para forçar o monitoramento mesmo assim, você pode executar o seguinte:
# rmmod k10temp
# modprobe k10temp force=1
Confirme se o sensor é de fato válido e confiável. Se estiver, pode editar
/etc/modprobe.d/k10temp.conf
e adicionar:
options k10temp force=1
Isso vai permitir o módulo para carregar na inicialização.
Placas-mãe Asus B450/X399/X470 com Ryzen CPU
Algumas placas-mãe recentes da Asus usam um chip ITE IT8665E, para acessar os sensores de temperatura, ventilador e tensão, pode ser necessário o módulo
asus-wmi-sensors
.
Instale
asus-wmi-sensors-dkms-git
AUR
[
link quebrado
: package not found]
e carregue o
módulo de kernel
asus-wmi-sensors
. O módulo usa a interface UEFI e pode exigir uma atualização do BIOS em algumas placas
[1]
.
Como alternativa, o módulo
it87
lê os valores diretamente do chip, instale
it87-dkms-git
AUR
e carregue o
módulo de kernel
it87
.
Placas-mãe Asus Z97/Z170/X570
Com algumas placas-mãe recentes da Asus, o acesso ao ventilador e ao sensor de tensão pode exigir que o
módulo de kernel
nct6775
esteja carregado.
Além disso, adicione-o aos parâmetros do kernel de inicialização:
acpi_enforce_resources=lax
Placas-mãe Gigabyte B250/Z370
Algumas placa-mãe da Gigabyte usam o chip ITE IT8686E, ao qual o driver it87 do kernel não dá suporte, até maio de 2019
[2]
. Porém, há suporte na versão do upstream do driver de kernel
[3]
. A variante dkms está contida em
it87-dkms-git
AUR
.
Gigabyte GA-J1900N-D3V
Essa placa-mãe usa o chip ITE IT8620E (útil também para ler voltagens, temperatura da placa principal, velocidade do cooler). Até outubro de 2014, lm_sensors não tem suporte de driver para o chip ITE IT8620E
[4]
[
link inativo
2024-10-12 ⓘ]
[5]
. Os desenvolvedores do lm_sensors tinham um relatório de que o chip é um pouco compatível com o IT8728F para a parte de monitoramento de hardware. No entanto, a partir de agosto de 2016,
[6]
lista o IT8620E como suportado.
Você pode carregar o módulo em tempo de execução com modprobe:
$ modprobe it87 force_id=0x8728
Ou você pode
carregar os módulos
durante o processo de inicialização criando os seguintes arquivos:
/etc/modules-load.d/it87.conf
it87
/etc/modprobe.d/it87.conf
options it87 force_id=0x8603
Quando o módulo estiver carregado, você pode usar a ferramenta
sensores
para testar o chip.
Você também pode usar
fancontrol
para controlar os "speedsteps" de do cooler do gabinete.
Problemas na tela do laptop após a execução de sensors-detect
Isso é causado por lm_sensors mexendo nos valores Vcom da tela enquanto sondam sensores. Já foi discutido e resolvido nos fóruns:
https://bbs.archlinux.org/viewtopic.php?id=193048
. No entanto, certifique-se de ler o tópico cuidadosamente antes de executar qualquer um dos comandos sugeridos.