Como obter leituras de sensor para hardware recente?

10

Como atualizo melhor lm-sensorspara trabalhar com hardware recente?

Tenho uma nova instalação do servidor Ubuntu 10.10 e obtenho o seguinte:

$ sudo apt-get install lm-sensors
$ sensors
No sensors found! [...] 
Try sensors-detect [...]
$ sudo sensors-detect
[...]
Driver 'to-be-written':
  * Chip "Nuvoton W83667HG-B Super IO Sensors" (confidence: 9)
Note: there is no driver for [this sensor] yet.
Check http://www.lm-sensors.org/wiki/Devices for updates.

O link informa que este chip é suportado no kernel 2.6.36 (enquanto o Ubuntu 10.10 está usando o 2.6.35) ou usando um driver independente .

Qual é a maneira mais simples de atualizar sensores lm?

jg-faustus
fonte
3
Eu descobri, mas acho que precisa de um HOWTO, então postarei uma resposta em breve.
jg-faustus

Respostas:

11

Estas são as principais alternativas:

Espere : se você não considera as leituras dos sensores críticas, pode esperar pelo próximo lançamento do Ubuntu, que pode incluir suporte para o chip por padrão.

Driver independente: se você não quiser esperar, um driver independente pode ser a melhor opção, pois faz alterações mínimas no restante do sistema. Veja abaixo como instalá-lo.

Atualize o kernel : Isso é um pouco mais arriscado, pois você estará executando uma combinação não suportada e não testada da versão do Ubuntu e da versão do kernel - a atualização do kernel pode corrigir o suporte do sensor enquanto quebra outra coisa. A atualização do kernel também pode funcionar bem, desde que você esteja preparado para reverter, caso contrário.

A maneira mais simples de atualizar o kernel é usar um dos pacotes de kernel pré-construídos do Ubuntu; consulte as construções do kernel do ubuntu.com para obter instruções.


Instalando um Driver Independente

Leia o HOWTO de compilação do Ubuntu , instale ferramentas de compilação:

sudo apt-get install build-essential

Faça o download do código fonte do driver

    wget [.h, .c and Makefile files]
  • Compile, instale e carregue o novo módulo. Aqui w83627ehfestá o nome do driver compilado recentemente, ele será diferente entre os sistemas.

    make all
    sudo make install
    sudo modprobe w83627ehf
    

Verifique se funciona

    $ sensors
    w83667hg-isa-0a10
    Adapter: ISA adapter
    in0:       +1.18 V  (min =  +0.62 V, max =  +1.47 V)   
    in1:       +1.11 V  (min =  +1.05 V, max =  +1.15 V)   
    [... snip ...]

Adicionar configuração

Ele ainda precisa de uma configuração específica de chip, essa é a parte mais difícil.

  • Caso de sorte: Encontre uma configuração pronta em configurações do lm-sensors.org .
  • Caça no Google: pesquise o nome do chip e você poderá encontrar alguém com o mesmo chip e uma configuração funcional.
  • Último recurso: compare com os valores no BIOS e faça um palpite sobre qual leitura vai aonde.
  • A configuração entra /etc/sensors3.conf
  • Recarregue ( sudo sensors -s) ou reinicie ( sudo service lm-sensors restart) para usar a nova configuração.

Verificando a pós-configuração

    $ sensors
    w83667hg-isa-0a10
    Adapter: ISA adapter
    VCore:       +1.18 V  (min =  +0.62 V, max =  +1.47 V)   
    Vtt:         +1.11 V  (min =  +1.05 V, max =  +1.15 V)   
    AVCC:        +3.34 V  (min =  +2.98 V, max =  +3.63 V)   
    +3.3V:       +3.34 V  (min =  +2.98 V, max =  +3.63 V)   
    IGD:         +1.56 V  (min =  +1.00 V, max =  +2.00 V)   
    3VSB:        +3.26 V  (min =  +2.98 V, max =  +3.63 V)   
    VBat:        +3.31 V  (min =  +2.54 V, max =  +3.46 V)   
    CPU Fan:    1834 RPM  (min =  301 RPM, div = 32)
    M/B Temp:    +30.0°C  (high = +55.0°C, hyst = +52.0°C)  sensor = thermistor
    CPU Temp:    +67.0°C  (high = +72.0°C, hyst = +70.0°C)  sensor = thermistor
    AUX Temp:    +27.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor

Faça funcionar após a reinicialização

  • Editar /etc/rc.local
  • Adicione a linha modprobe w83627ehf
  • (Substitua w83627ehfpelo sensor do seu sistema. Coloque-o antes da exit 0linha que termina o script.)

Sanidade verificar a saída

  • Compare a sensorslista com as leituras do BIOS, verifique se elas estão entre si.
  • Se você inicializar duas vezes com o Windows, poderá comparar as temperaturas da CPU com o Real Temp .

Calibrando valores de exibição

  • Você pode adicionar linhas como compute in1 (56/10+1)*@, @/(56/10+1)sensores3.conf. @é o valor do sensor. O primeiro cálculo converte um valor do sensor em valor exibido, o segundo cálculo o converte novamente.
  • Vejo man sensors.conf
  • A obtenção de temperaturas precisas exigiria um termômetro infravermelho e algumas horas de trabalho (consulte a resposta de takkat aqui ), mas normalmente você pode obter valores de "estádio" com menos esforço.

Se você souber uma maneira de melhorar esta resposta, por favor.

jg-faustus
fonte
1
Resposta FANTÁSICA! Salvou o meu dia! : D
MestreLion