web-dev-qa-db-ja.com

最近のハードウェアのセンサー測定値を取得する方法は?

最近のハードウェアで動作するように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.

link は、このチップがカーネル2.6.36から(Ubuntu 10.10が2.6.35を使用している間)または スタンドアロンドライバー を使用してサポートされていることを示しています。

Lm-sensorsを更新する最も簡単な方法は何ですか?

10
j-g-faustus

これらは主な代替手段です。

待ってください:センサーの読み取りが重要であると思わない場合は、次のUbuntuリリースを待つことができます。これにはデフォルトでチップのサポートが含まれる場合があります。

スタンドアロンドライバー:待機したくない場合は、システムの残りの部分に最小限の変更を加えるため、スタンドアロンドライバーが最適なオプションである可能性があります。インストール方法については、以下をご覧ください。

カーネルのアップグレード:これは、Ubuntuバージョンとカーネルバージョンのサポートされていない、テストされていない組み合わせを実行するため、ややリスクが高くなります-カーネルのアップグレードにより修正される場合がありますセンサーは他の何かを壊しながらサポートします。カーネルのアップグレードも、うまくいかない場合にロールバックする準備ができていれば、うまくいくかもしれません。

カーネルをアップグレードする最も簡単な方法は、Ubuntuのビルド済みカーネルパッケージの1つを使用することです。手順については buntu.com kernel builds を参照してください。


スタンドアロンドライバーのインストール

buntuコンパイルHOWTO を読んで、コンパイルツールをインストールします。

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 configurations で既製の設定を見つけます。
  • 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でデュアルブートする場合、CPU温度を Real Temp と比較できます。

表示値の調整

  • compute in1 (56/10+1)*@, @/(56/10+1)などの行をsensors3.confに追加できます。 @はセンサー値です。最初の計算はセンサー値を表示値に変換し、2番目の計算はそれを元に戻します。
  • man sensors.confをご覧ください
  • 正確な温度を取得するには、赤外線温度計と数時間の作業が必要です( takkatの回答 を参照)が、通常はできます少ない労力で「球場」値を取得します。

この答えを改善する方法を知っているなら、してください。

11
j-g-faustus