私は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のようなシステムではないLinuxディストリビューションに異なるアプローチがありますか?
ベストアンサー1
実際、温度はそうではありません。保存済みどこかに。/sys
はメモリファイルシステム、 のファイルから/sys
動的に計算された値を呼び出すカーネルのコードを読み込みます。
さまざまなディレクトリは、ハードウェアが温度を報告するさまざまな方法に対応しています。これらのファイルには、報告されるコンポーネントの温度を識別するtemp*_input
関連IDがあります。temp*_label
以下の場所は、/sys
ディストリビューションではなくカーネルのバージョンによって異なります。これは、データを読み取るプログラムの作成者が/sys
耐えなければならない困難です(はい)。