Как получить показания датчиков для новейшего оборудования?

10

Как мне лучше всего обновиться lm-sensorsдля работы с новейшим оборудованием?

У меня свежая установка сервера Ubuntu 10.10, и я получаю следующее:

$ 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.

Ссылка говорит мне , что этот чип поддерживается ядро 2.6.36 ( в то время как Ubuntu 10,10 использует 2.6.35) или с помощью драйвера автономного .

Какой самый простой способ обновить lm-sensor?

JG-Фауст
источник
3
Я понял это, но думаю, что это нужно HOWTO, поэтому я скоро опубликую ответ.
jg-faustus

Ответы:

11

Это основные альтернативы:

Подождите : если вы не считаете показания сенсоров критичными, вы можете просто подождать следующего релиза Ubuntu, который может включать поддержку чипа по умолчанию.

Автономный драйвер : если вы не хотите ждать, автономный драйвер может быть лучшим вариантом, так как он вносит минимальные изменения в остальную часть системы. Смотрите ниже, как установить его.

Обновите ядро : это несколько более рискованно, так как вы будете использовать неподдерживаемую и непроверенную комбинацию версии Ubuntu и версии ядра - обновление ядра может исправить поддержку сенсора, в то же время ломая что-то другое. Обновление ядра также может работать нормально, если вы готовы откатиться, если это не так.

Самый простой способ обновить ядро ​​- это использовать один из готовых пакетов ядра Ubuntu, см. Инструкции по сборке ядра на ubuntu.com .


Установка автономного драйвера

Прочтите руководство по компиляции Ubuntu , установите инструменты компиляции:

sudo apt-get install build-essential

Скачать исходный код драйвера

    wget [.h, .c and Makefile files]
  • Скомпилируйте, установите и загрузите новый модуль. Вот w83627ehfимя недавно скомпилированного драйвера, оно будет отличаться в разных системах.

    make all
    sudo make install
    sudo modprobe w83627ehf
    

Проверьте, что это работает

    $ 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 ...]

Добавить конфигурацию

Это все еще нуждается в конкретной конфигурации чипа, это сложная часть.

  • Повезло: найдите готовый конфиг на конфигурациях lm-sensors.org .
  • Поиск Google: найдите название чипа, и вы можете найти кого-то с таким же чипом и рабочим конфигом.
  • В крайнем случае: сравните со значениями в BIOS и сделайте обоснованное предположение о том, куда читать.
  • Конфигурация идет в /etc/sensors3.conf
  • Перезагрузите ( sudo sensors -s) или перезапустите ( sudo service lm-sensors restart), чтобы использовать новую конфигурацию.

Проверка постконфиг

    $ 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

Заставить его работать после перезагрузки

  • редактировать /etc/rc.local
  • Добавьте строку modprobe w83627ehf
  • (Замените w83627ehfна датчик для вашей системы. Обязательно поместите его перед exit 0строкой, которая завершает сценарий.)

Разумность проверить выход

  • Сравните sensorsлистинг с показаниями BIOS, убедитесь, что они находятся на уровне друг друга.
  • Если вы используете двойную загрузку с Windows, вы можете сравнить температуру процессора с Real Temp .

Калибровка отображаемых значений

  • Вы можете добавить строки, как compute in1 (56/10+1)*@, @/(56/10+1)для sensor3.conf. @это значение датчика. Первый расчет преобразует значение датчика в отображаемое значение, второй расчет преобразует его обратно.
  • Увидеть man sensors.conf
  • Получение точных температур потребует инфракрасного термометра и нескольких часов работы (см. Ответ takkat здесь ), но вы можете обычно получить "приблизительные" значения с меньшими усилиями.

Если вы знаете способ улучшить этот ответ, пожалуйста.

JG-Фауст
источник
1
ФАНТАЗИЧЕСКИЙ ответ! Спас мой день! : D
МестреЛион