サードパーティソフトウェアなしで温度を確認するにはどうすればよいですか?


12

YouTube動画を見るとシステムがシャットダウンし続けるのでsensors-detect、システムで実行しています。lm-sensors

だから私はどのようにサードパーティのソフトウェアなしで手動でファンとCPUの温度を見つけることができるのだろうと思いますlm-sensorsか?どこに保存されているのかよくわかりません。

processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 16
model       : 6
model name  : AMD Athlon(tm) II X2 240e Processor
power management: ts ttp tm stc 100mhzsteps hwpstate

x86_64


どのバージョンのUbuntuを実行していますか?
wjandrea 2018

1
それはあなたのプロセッサに依存します。最近の多くのIntelプロセッサでは、ターボスタットプログラムがMSR(Machine Specific Registers)を読み取り、パッケージとコアの温度を表示します。質問を編集し、プロセッサを追加してモデルを作成します。それが私の知っているものである場合は、手動で行う方法でお答えします。
Doug Smythies 2018

追加したRAMに問題があります。RAMは1秒あたり1333メガ転送で、CPUは最大MHzです:2800.0000

11
サードパーティとはどういう意味ですか?Ubuntuのうち、どれがファーストパーティのソフトウェアだと思いますか?
muru

1
ユーザーがディストリビューションをインターセプトして使用する前に、Ubuntuが使用するパーティーの数は正確にはわかりません。一般的な側面では、UbuntuはLinuxオペレーティングシステムであることを知っています。これは私がファーストパーティと呼んだものであり、次に私とその後の質問が続きます。またはubtunuスポンサーや自発的なプログラマーソフトウェアの後で、正確にはわかりません。

回答:


12

それはあなたが望むもののように聞こえる/sys/class/hwmon/sys/class/thermal

これらは両方とも、必要なデータへの簡単なシェルベースのアクセスを提供します(hwmonディレクトリには他のセンサータイプも含まれます)。それぞれには、システムのセンサーインターフェイスごとに1つのディレクトリがあります(複数のセンサーがある場合があります)。

ただし、次の3つの点に注意してください。

  • 本当に悪いシステムでない限りsensors、1秒に1回でもコマンドを実行しても、認識できる効果はありません。実際、上記のディレクトリにあるファイルを定期的に読み取ると、さらに効果が高まる可能性があります。
  • グラフはここであなたの友達です。netdataやcollectdなどを実行して、リアルタイム(またはほぼリアルタイム)のデータを確認することをお勧めします。
  • 電圧も確認してください。システムの電力要件に対応できない電源装置が原因である可能性もあります。これは、システムに高負荷がかかっているときに電圧が大幅に低下することで示されます。

これは、「実際の温度[...]を手動で確認するにはどうすればよい[...]か」という実際の質問を処理するため、受け入れられる答えになるはずです。次に/proc/cpuinfo、AMDプロセッサを示すものもあります。OPがIntel固有の回答を受け入れた理由がわからないため、別のツールをインストールする必要がある
アーロンF

@AaronF:同意しない。OPが私に頼んだので、私はIntel特有の答えを書きました。他のツールをインストールする必要はありませんか?経由で/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_inputはなくMSR経由で直接パッケージ温度を読み取る理由は、私の作業のほとんどが非常にアイドル状態のシステムであり、後者の方法ではオーバーヘッドが大きくなり、結果として一貫して4〜5度高い結果が得られるためです。もちろん、負荷の高いシステムでも違いはありません。
Doug Smythies 2018

1
@DougSmythies私はあなたの答えが非常によく完全であると思ったので、投票を拒否したり、その下に否定的なコメントを残したりしなかったのです。マシン(Ubuntuを実行しています。他のディストリビューションがIntelを検出した場合、デフォルトでインストールされますか?)
Aaron F

@AaronF:msr-toolsが必要な追加パッケージであることを忘れていました。したがって、私の方法には、OPが望んでいない追加のツールも必要です。
Doug Smythies 2018

2
こんにちは、@ DougSmythiesとAaron Fです。最初にDougSmythiesを主要な回答として選択しました。彼が最初に支援を提供し、手動で温度を検索する方法と、手動ソリューションを使いやすい方法で使用する方法について、彼の回答は非常に明確だったからです。 mdmsrをサポートするプログラム。両方の回答が非常に有益であったため、実際には難しい決断でしたが、この回答が最良であることに両者が同意したためです。アーロンの最初の回答を元に戻しました。ご協力ありがとうございます。ハッピーハンティング

9

この答えは、Machine Specific Registers(MSR)に直接アクセスして、一部のIntelプロセッサのプロセッサ温度を手動で監視する方法の1つです。

最初に注意する点は、この場合、MSRから読み取られるのは限界温度であるTccに関連するため、実際の温度を決定するには追加の計算が必要です。

インテル®64およびIA-32アーキテクチャーソフトウェア開発者マニュアルを参照するか、場合によってはAMDと同等のものを参照してください。

私の場合、MSRのビット22〜16が0x1B1、つまりIA32_PACKAGE_THERM_STATUSに必要です。私の古いi7-2600KのTccは98度です。

温度(およびCPU周波数)を手動で監視する簡単なスクリプトを次に示します。

#! /bin/dash
#
# temp_mon3 Smythies 2016.10.05
#       a simplified version of temp_mon2,
#       for monitoring temp.
#       Note: it is on purpose that -a is not used.
#       Also CPU0 frequency (1 is good enough, when all
#       are loaded).
#
# temp_mon2 Smythies 2016.09.29
#       Monitor Package temperatures.
#       Use clock modulation to control temps.
#       i.e. simulate the second to last level
#       of defense.
#       Use simple primatives.
#       run as sudo
#       hardcoded for my tcc of 98 degrees.
#
echo ... begin package temperature monitoring ...

#
# In case I forgot (which I often do)

modprobe msr

#
# first let the drastic effect of the sudo command decay
# Done later in temp_mon3.

#
# some stuff

COMMAND="rdmsr --bitfield 22:16 -u 0x1B1"
COMMAND2="cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq"

#
# then get on with it

while [ 1 ];do
  sleep 4
  TEMP_RAW=$(eval $COMMAND)
  CPU0_FREQ=$(eval $COMMAND2)
  TEMP_ACT=$((98-TEMP_RAW))
  echo "$TEMP_ACT   $CPU0_FREQ"
done

そして、ここにいくつかのサンプル出力があります。しばらくすると、CPU負荷が追加されます(温度は31度から73度になります)。

$ sudo ./temp_mon3
[sudo] password for doug:
... begin package temperature monitoring ...
31   1605275
31   1605154
32   1605164
30   1605148
31   1605176
51   3511279
54   3511278
55   3511279
57   3511283
58   3511279
60   3511278
61   3511284
63   3511279
64   3511280
64   3511280
66   3511280
67   3511278
68   3511280
68   3511281
69   3511278
71   3511280
70   3511281
71   3511281
71   3511280
72   3511276
72   3511277
73   3511283
73   3511279
^C

なぜ使うのeval
wjandrea 2018

@ダグ:msrを使用するための素晴らしい答え!しかし、適切なmsrレジスタ0x19cではありませんか?そして、温度はTEMP = TCC-[0x19c bits 22:16]です。したがって、最初にTCCを読む必要があります。
abu_bua

@abu_bua:0x19cが機能するかどうかはわかりませんが、使用しているものは機能します。そしてはい、プロセッサからTCCを読み取るよりも優れたソリューションではなく、プロセッサ用にTCCをハードコーディングしました。
Doug Smythies

1
インストールしましたsudo apt install msr-toolsか?
abu_bua

1
msr-toolsがパッケージです。それは次のようになりますman rdmsrし、man wrmsrパッケージ内の個々のコマンドの2のために。
Doug Smythies 2018

5

私はあなたが本当に何をしたいのか分かりません。lm-sensorプログラム(およびsensorsコマンド)は、libsensorライブラリを使用します。Ubuntu 18.04を使用する場合、それはlibsensors4、バージョン3.4.0-4です。これは、sysディレクトリに表示される温度を読み取るライブラリと同じです。

要約すると、センサーは良い選択です。継続的に温度を監視するには

watch -n 1 sensors

プログラムを作成する場合は、でlibsensorsを確認するman libsensorsか、で確認する必要があります/usr/share/doc/。含める必要があります#include <sensors/sensors.h>。これは、使用するsensors.confファイルを/etc/sensors3.confおよび/または/etc/sensors.conf/etc/sensors.d/使用されている場合、さらに(ユーザー)設定がにあります。

一部のセンサーがないと思われる場合は、/sys/class/thermalまたはリンクされた/sys/devices/virtual/thermalディレクトリを確認してください。

すべてのサーマルゾーンの温度を取得するには、

$ cat /sys/devices/virtual/thermal/thermal_zone?/temp

77000
66000
67000

温度はmiCelcius(mC)で測定され、77.0、66.0、67,0°Cを超える場合。

継続的に視聴するには

watch -n 1 cat /sys/devices/virtual/thermal/thermal_zone?/temp

このディレクトリには、冷却(ファン)デバイスに関する情報と、PIDレギュレーターのプログラミング方法も記載されています。

また、一部の過熱保護は非常にハードウェアベースでコーディングされていることをお伝えします(これは良いアイデアです)。データはBIOSに配置されます。


プログラムがあることは知っていますが、手動でetempを見つける方法を探していました

1
手動でどういう意味ですか?温度を出力するものはすべてプログラムです。
abu_bua

私は、thermal_zoneを持っていない私が持っているすべてを1 cooling_device0と2ですが、彼らは唯一のcur_stateデバイスmax_state電源サブシステムの種類UEVENT、ファイルの一時を保持いけない

curおよびmax状態は0および10です

正確には何thermal_zonesですか?私の4コアインテルCPUは1つしかないようですthermal_zonesensorsただし、4つのコア温度すべてを正しくリストしています)。
グウィネス・ルウェリン

5

デフォルトのUbuntuリポジトリーからPsensor(psensor)をインストールし、温度がユーザーが決定した最大値を超えるたびにアラートサウンドを自動的に再生するようにPsensorを構成します。これの目的は、システムにアプリケーションのオーバーヘッドを追加することなく、システムがシャットダウンする前に警告音を鳴らすことです。

Psensorは、デスクトップの右上にある時計の横の通知領域に小さな温度計のアイコンとして表示されます。温度計のアイコンをいつでも右クリックして、ハードウェアの温度を表示できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.