Comment obtenir la température à cœur des cœurs Haswell i7 dans i3status

12

Je veux utiliser i3status pour afficher mes températures CPU-Core (haswell i7). Cependant le réglage:

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

n'affiche pas la bonne température à cœur. Les chiffres qu'il affiche semblent correspondre à la valeur affichée par xsensors pour temp1, si je change le 1 en 2 ci-dessus, cela correspond à xsensors temp2. Essayer 3 ou 4 n'a aucun effet. Cependant, je veux obtenir les véritables températures à cœur des 4 cœurs avec le statut i3. Comment puis-je faire ceci?

étudiant
la source

Réponses:

17

i3status

En utilisant i3statusJe pense que vous pouvez modifier légèrement votre configuration afin qu'elle obtienne directement la température centrale du processeur /sysen fournissant un chemin vers sa valeur. Alors changez votre règle en quelque chose comme ceci:

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"
# }

Voici 4 autres façons d'obtenir votre temp:

/ proc

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

acpi

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

Depuis la acpipage de manuel:

   -t |  --thermal
             show thermal information

/ sys

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

lm_sensors

Si vous installez le package lmsensors comme ceci:

Fedora / CentOS / RHEL:

$ sudo yum install lm_sensors

Debian / Ubuntu:

$ sudo apt-get install lm-sensors

Détectez votre matériel:

$ sudo sensors-detect

Vous pouvez également installer les modules manuellement, par exemple:

$ sudo modprobe coretemp
$ modprobe i2c-i801

REMARQUE: Le détecteur de détection devrait détecter votre matériel spécifique, vous devrez donc peut-être le faire modprobe <my driver>pour la 2e commande ci-dessus.

Sur mon système, les modules i2c suivants sont chargés:

$ 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

Maintenant, exécutez l' sensorsapplication pour interroger les températures résultantes:

$ 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)

C'est sur mon Thinkpad T410 qui a i5 M560. Voici l'un des cœurs:

$ 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:
slm
la source
/proc/acpi/thermal_zonen'existe pas dans mon cas (ubuntu 13.04)
étudiant
@student - OK, je vois que vous demandez comment le faire avec i3status en particulier, je n'ai jamais entendu parler de cet outil, donnez-moi une seconde pour le comprendre en utilisant cet outil.
slm
@student - voir les mises à jour.
slm
Merci, cela fonctionne. Avec l' temp2_inputun obtient la température du deuxième noyau et ainsi de suite ...
étudiant
@student - SWEET! BTW, merci d'avoir corrigé ma faute de frappe!
slm
0

Dans mon cas, j'ai dû lire la valeur de:

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

Ma configuration i3status:

cpu_temperature 0 {
              format = "T: %degrees °C"
              path = "/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input"
}
ElektryczneNozyce
la source