LinuxがCPU温度を非常に多くのファイルに保存するのはなぜですか?


10

2 CPUのラップトップ(thinkpad)を持っています。現在、cat(1)を使用して以下のファイルからCPU温度を読み取ることができます。

cat /sys/class/thermal/thermal_zone0/temp
cat /sys/class/thermal/thermal_zone1/temp

cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input
cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_input

cat /sys/devices/LNXSYSTM:00/LNXCPU:00/thermal_cooling/subsystem/thermal_zone1/temp
cat /sys/devices/LNXSYSTM:00/LNXCPU:01/thermal_cooling/subsystem/thermal_zone0/temp

私の質問は、カーネルがこの情報を非常に多くの異なる場所に保存する理由と、CPUの温度を読み取るための「標準」ファイルはどれですか?

これはsystemd(私はArch Linuxを使用しています)またはSlackwareのような非systemd Linuxディストリビューションが原因で起こっているのですか?

回答:


12

実際、温度はどこにも保存されていません。/sysインメモリファイルシステムであり、のファイルから読み取ると、/sys値を即座に計算するカーネルのコードが呼び出されます。

さまざまなディレクトリは、ハードウェアが温度を報告できるさまざまな方法に対応しています。temp*_inputファイルが関連付けられているtemp*_label識別し、コンポーネントの温度が報告されていること。

配下の場所/sysは、カーネルバージョンごとに異なる傾向があります(ディストリビューションごとではありません)。これは、データを読み取るプログラムの作成者が共存し/sysなければならない困難です()。


おかげで、それは私の正確な問題でした。(私はi3とi3statusを使用し、時々cpu温度パスを変更する必要があります)そのとき、これを行うための小さなプログラムを書くことにしました。
yaku

7

1つ目/sys/classは、で物を見つけるのに便利な方法/sysです。中身はすべて実際にはシンボリックリンクです。最初のスタンザが3番目のスタンザにシンボリックリンクされていると確信しています。

2番目のスタンザは、CPU /チップセットから直接温度を読み取るカーネルです。3番目のスタンザは、ACPIを介してBIOSから値を取得するカーネルです。システム上では同じ答えが得られる場合がありますが、必ずしもそうである必要はありません(たとえば、BIOSが異なるセンサーを使用したり、数個を平均したり、ボード固有の調整を適用したりする場合があります)。

最後に、温度計が2つある可能性があるため、各スタンザには2つの異なる読み取り値があります。または、少なくとも、ハードウェアのAPIはそれを可能にします。


お返事をありがとうございます。これは物事をより明確にします。しかし、2つのコアを持つ別のラップトップでは、パスが異なる場合がありますか?(たとえば、/ sys / devices / platform / coretemp.0 / hwmon / hwmon1 / temp0_input /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_inputになりますか?)。
yaku

@yakuはい、パスは異なる場合があります。たとえば、ラップトップには、ハードディスクやノースブリッジなどの冷却ゾーンがあります。
derobert 2014年

3

* _labelファイルを見て、何が報告されているかを確認してください。これが私のi5です。

$ grep "" /sys/devices/platform/coretemp.?/hwmon/hwmon?/temp?_label
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_label:Physical id 0
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_label:Core 0
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_label:Core 1

(grep ""は単に "ファイル名の付いた猫"として使用されます)

したがって、これはCPUの合計温度とコアあたりの温度です。

より大きなマルチCPUシステムでは、数十のエントリが表示される場合があります。

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