Làm thế nào để có được nhiệt độ lõi của lõi haswell i7 trong i3status


12

Tôi muốn sử dụng i3status để hiển thị nhiệt độ CPU-Core của mình (haswell i7). Tuy nhiên, cài đặt:

order += "cpu_temperature 1"
#...
cpu_temperature 1{
        format = "T: %degree °C"
}
#

không hiển thị nhiệt độ lõi chính xác. Các số mà nó hiển thị dường như tương ứng với giá trị xsensors hiển thị cho temp1, nếu tôi thay đổi 1 thành 2 ở trên thì nó tương ứng với xsensors temp2. Thử 3 hoặc 4 không có tác dụng. Tuy nhiên tôi muốn có được nhiệt độ lõi thực sự của cả 4 lõi với trạng thái i3. Tôi có thể làm cái này như thế nào?

Câu trả lời:


17

i3status

Sử dụng i3statusTôi tin rằng bạn có thể thay đổi cấu hình của mình một chút để nó có được nhiệt độ lõi của CPU trực tiếp từ đó /sysbằng cách cung cấp đường dẫn đến giá trị của nó. Vì vậy, thay đổi quy tắc của bạn để một cái gì đó như thế này:

order += "cpu_temperature 1"
# and more if you like...
# order += "cpu_temperature 2"

#...   
cpu_temperature 1 {
        format = "T: %degrees °C"
        path = "/sys/devices/platform/coretemp.0/temp1_input"
}

# cpu_temperature 2 {
#        format = "T: %degrees °C"
#        path = "/sys/devices/platform/coretemp.0/temp2_input"
# }

Dưới đây là 4 cách khác để có được temp của bạn:

/ Proc

$ cat /proc/acpi/thermal_zone/THM0/temperature
temperature:             72 C

acpi

$ acpi -t
Thermal 0: ok, 64.0 degrees C

Từ acpitrang người đàn ông:

   -t |  --thermal
             show thermal information

/ sys

$ cat /sys/bus/acpi/devices/LNXTHERM\:01/thermal_zone/temp 
70000

lm_sensors

Nếu bạn cài đặt gói lmsensors như vậy:

Fedora / CentOS / RHEL:

$ sudo yum install lm_sensors

Debian / Ubuntu:

$ sudo apt-get install lm-sensors

Phát hiện phần cứng của bạn:

$ sudo sensors-detect

Bạn cũng có thể cài đặt các mô-đun bằng tay, ví dụ:

$ sudo modprobe coretemp
$ modprobe i2c-i801

GHI CHÚ: Phát hiện cảm biến sẽ phát hiện phần cứng cụ thể của bạn, vì vậy bạn có thể cần modprobe <my driver>thay thế cho lệnh thứ 2 ở trên.

Trên hệ thống của tôi, tôi có các mô-đun i2c sau đây được tải:

$ lsmod | grep i2c
i2c_i801               11088  0 
i2c_algo_bit            5205  1 i915
i2c_core               27212  5 i2c_i801,i915,drm_kms_helper,drm,i2c_algo_bit

Bây giờ hãy chạy sensorsứng dụng để truy vấn nhiệt độ kết quả:

$ sudo sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +68.0°C  (crit = +100.0°C)

thinkpad-isa-0000
Adapter: ISA adapter
fan1:        3831 RPM
temp1:        +68.0°C  
temp2:         +0.0°C  
temp3:         +0.0°C  
temp4:         +0.0°C  
temp5:         +0.0°C  
temp6:         +0.0°C  
temp7:         +0.0°C  
temp8:         +0.0°C  

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +56.0°C  (high = +95.0°C, crit = +105.0°C)

coretemp-isa-0002
Adapter: ISA adapter
Core 2:       +57.0°C  (high = +95.0°C, crit = +105.0°C)

Đây là trên Thinkpad T410 của tôi có i5 M560. Đây là một trong những lõi:

$ cat /proc/cpuinfo 
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 37
model name  : Intel(R) Core(TM) i5 CPU       M 560  @ 2.67GHz
stepping    : 5
cpu MHz     : 1199.000
cache size  : 3072 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips    : 5319.22
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

/proc/acpi/thermal_zonekhông tồn tại trong trường hợp của tôi (ubfox 13.04)
sinh viên

@student - OK Tôi thấy rằng bạn đang hỏi cách thực hiện với i3status một cách cụ thể, chưa bao giờ nghe nói về công cụ đó, hãy cho tôi một giây để tìm ra nó bằng cách sử dụng công cụ đó.
slm

@student - xem cập nhật.
slm

Cảm ơn, điều này làm việc. Với temp2_inputmột người có được nhiệt độ của lõi thứ hai và cứ thế ...
sinh viên

@student - NGỌT! BTW, cảm ơn vì đã sửa lỗi đánh máy của tôi!
slm

0

Trong trường hợp của tôi, tôi đã phải đọc giá trị từ:

/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input

Cấu hình i3status của tôi:

cpu_temperature 0 {
              format = "T: %degrees °C"
              path = "/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input"
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.