Saya punya laptop (thinkpad) dengan 2 CPU. Saat ini saya dapat membaca suhu cpu dari file di bawah ini dengan cat (1):
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
Pertanyaan saya adalah mengapa kernel menyimpan informasi ini di banyak tempat yang berbeda dan mana yang merupakan file "standar" untuk membaca suhu cpu?
Apakah ini terjadi karena systemd (saya menggunakan Arch Linux) atau distro Linux non-systemd seperti Slackware memiliki pendekatan yang berbeda?
sumber
Pertama,
/sys/class
adalah cara yang mudah untuk menemukan sesuatu di/sys
. Anda akan menemukan semua yang ada di dalamnya sebenarnya adalah symlink; Saya cukup yakin bait pertama Anda terhubung dengan bait ketiga Anda.Bait ke-2 adalah kernel yang membaca suhu langsung dari CPU / chipset. Bait ke-3 adalah kernel yang mendapatkan nilai dari BIOS melalui ACPI. Sementara di sistem Anda mereka mungkin memberikan jawaban yang sama, mereka tidak perlu (misalnya, BIOS bisa menggunakan sensor yang berbeda, rata-rata beberapa bersama-sama, atau menerapkan beberapa penyesuaian papan khusus).
Akhirnya, setiap bait memiliki dua bacaan yang berbeda karena ada dua termometer. Atau setidaknya, API perangkat keras memungkinkan untuk itu.
sumber
Lihat file * _label untuk melihat apa yang dilaporkan - inilah i5 saya:
(grep "" hanya digunakan sebagai "kucing dengan nama file")
Jadi, inilah suhu total CPU, ditambah suhu per inti.
Pada sistem multi-CPU yang lebih besar, Anda dapat melihat lusinan entri.
sumber